linux syslog 日志采集系统搭建 (2)

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不够用的问题

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgdgjj.html