log日志远程统一记录

今天终于解决掉了所有遇到的问题,现在将解决方案及遇到的问题在此记录一下,以免遗忘。

这次花费了不少时间,最大的坑是centos6中自带的rsyslog是5.x版本,而官网上早已经发布到了7.x版本,而我一直按7.x文档来学习,真是坑爹啊。

好了,

下面是rsyslog的配置。

配置repo

在/etc/yum.repos.d下新建文件 rsyslog.repo

[rsyslog_v7]
name=Adiscon CentOS-$releasever - local packages for $basearch
baseurl=http://rpms.adiscon.com/v7-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
gpgkey=http://rpms.adiscon.com/RPM-GPG-KEY-Adiscon
protect=1

1、打开udp,514端口

vi /etc/rsyslog.conf

注释掉下面两句前面的‘#’号

$ModLoad imudp
$UDPServerRun 514

2、在/etc/rsysconfig.d/下新建文件igame.conf

$EscapeControlCharactersOnReceive off

$template TraditionalFormat2,"%msg%\n"
$template TraditionalFormat3,"%syslogtag% %msg%\n"

        if re_match($syslogtag,'^moon[0-9]+-[a-zA-Z]+.log$') then {
                $ActionFileDefaultTemplate TraditionalFormat2
                $template DynFile2,"/opt/logs/router-log/%syslogtag:R,ERE,1,DFLT:(.*)-.*.log--end%/%timegenerated:1:10:date-rfc3339%/%syslogtag:R,ERE,1,DFLT:.*-(.*).log--end%.log"
                *.* -?DynFile2
                stop
        } else {
                if re_match($syslogtag,'^moon[0-9]+$') then {
                        $ActionFileDefaultTemplate TraditionalFormat3
                        $template DynFile3,"/opt/logs/router-log/moon-alert.log"
                        *.* -?DynFile3
                        stop
                }

        }

 

$EscapeControlCharactersOnReceive off

这句用来避免log中的’\t’被当做控制命令被转换为#011

logback中的配置

	<appender name="journal" class="ch.qos.logback.classic.net.SyslogAppender">
		<syslogHost>${logback.syslogHost}</syslogHost>
		<port>${logback.syslogPort}</port>
		<facility>LOCAL7</facility>
		<suffixPattern>${MODULE}-journal.log %date [%thread] %logger{0}\(%L\) %p %msg
		</suffixPattern>
	</appender>
发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>