1.修改/etc/sysconfig/syslog文件:
引用
-r : 打开接受外来日志消息的功能,其监控514 UDP端口;
-x : 关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦;
-m : 修改syslog的内部mark消息写入间隔时间(0为关闭),例如240为每隔240分钟写入一次“--MARK--”信息;
-h : 默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开,所有接受到的信息都可根据syslog.conf中定义的@主机转发过去。
通过man syslogd可获得更详细的帮助,而具体到实际配置文件为:
引用
SYSLOGD_OPTIONS="-r-x-m 0"
保存后,重启服务即可:# service syslog restart
此时,客户机只要通过修改syslog.conf,定义动作为@主机或IP,即可发送日志信息到本服务器中。
(在构建集中的日志服务器时,请务必配合ntp时间服务,以保证信息的有效性,避免不必要的麻烦)
2.首先需要在日志服务器Server端开启远程服务。修改配置文件:/etc/rsyslog.conf
以下为开启UDP连接:
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
以下为开启TCP连接:
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
修改完成后需要重启rsyslog服务。执行命令 # restart rsyslog
3.filter(日志筛选)
filter是rsyslog的一大亮点,通常情况下,我们并不是所有的日志都要收集,比如我们只需要error以下级别的日志、或者我们再要包含特定内容的日志。灵活运用filter我们可以很轻易地实现这些需求。
下面举几个例子,使用方法手册里有详细介绍:
1:msg, contains, "test_message" /var/log/test.log
2:&~
如果日志内容包含”test_message”就存放在/var/log/test.log中,”&~”的意思是丢弃,不做后续处理。即使后面还有”:msg, contains,“test_message” /var/log/test2.log”,这条日志也不会再存在test2.log中。
1:if $msg contains \'test_message\' then /var/log/test.log
2:&~
上面的例子的另一种写法,用if的好处是可以定义一些复杂的条件匹配
filter非常的实用,syslog中仅仅定义的local0~local7几个用户自定义的facility。使用filter我们轻松解决自定义facility不够用的问题
linux syslog 日志采集系统搭建 (2)
内容版权声明:除非注明,否则皆为本站原创文章。