rsyslog
tomcat 服务器:
192.168.32.215
input(type="imfile"
File="/usr/local/apache-tomcat-7.0.55_8082/logs/catalina.out"
Tag="zjtest-api01"
Severity="info"
Facility="local5")
local5.* @@192.168.32.76:514
rsyslog 日志服务器:
192.168.32.76
$EscapeControlCharactersOnReceive off #关闭rsyslog默认转译ASCII<32的所有怪异字符,包括换行符等
$template nginx-zjzc01,"/rsyslog/data/nginx/zjzc/nginx_access01_log.%$year%-%$month%-%$day%" #定义TC:日志存放路径
$template nginx-zjzc02,"/rsyslog/data/nginx/zjzc/nginx_access02_log.%$year%-%$month%-%$day%" #定义TCBeta:日志存放路径
$template nginx-uat01,"/rsyslog/data/nginx/uat/nginx_access01_log.%$year%-%$month%-%$day%" #定义TCBeta:日志存放路径
$template tocFormat,"'%syslogtag%','%FROMHOST-IP%','%msg%'
" #定义toc日志format
$template uat-zjzc01,"/rsyslog/data/mysql/uat/mysql01_slow_log.%$year%-%$month%-%$day%" #定义TCBeta:日志存放路径
$template zjtest-api01,"/rsyslog/data/tomcat/zjtest/api01_log.%$year%-%$month%-%$day%" #定义TCBeta:日志存放路径
:rawmsg,contains,"nginx-zjzc01" -?nginx-zjzc01;tocFormat #接受TC:日志,并应用tocFormat格式
:rawmsg,contains,"nginx-zjzc02" -?nginx-zjzc02;tocFormat #接受TCBeta:日志,并应用tocFormat格式
:rawmsg,contains,"uat-nginx" -?nginx-uat01;tocFormat #接受TCBeta:日志,并应用tocFormat格式
:rawmsg,contains,"uat-mysql01" -?uat-zjzc01;tocFormat
:rawmsg,contains,"zjtest-api01" -?zjtest-api01;tocFormat
正常情况下,192.168.32.215上的日志能发送到日志服务器
v-test-app01:/usr/local/apache-tomcat-7.0.55_8082/logs> >catalina.out
v-test-app01:/usr/local/apache-tomcat-7.0.55_8082/logs> tail -f catalina.out
用这种方式截断日志,就会破坏rsyslog 发送日志
需要重启tomcat端的rsyslog 服务,才能继续同步
下面介绍使用:Linux下Tomcat日志定期清理 及 logrotate 配置
v-test-app01:/root# vim /etc/logrotate.conf
/usr/local/apache-tomcat-7.0.55_8082/logs/catalina.out {
#rotate 7 表示保留7天的备份文件
rotate 14
#daily 表示每天整理一次
daily
#copytruncate 表示先复制log文件的内容,然后再清空
copytruncate
#compress 表示压缩备分文件
compress
notifempty
missingok
}
/usr/sbin/logrotate -f /etc/logrotate.conf
这样清理日志就可以正常同步