syslog-ng 是另外一种流行的日志管理的解决方案,它是一个商业软件,包括收费版和开源版。

步骤一:启用EPEL源(略);

步骤二:删除系统自带的rsyslog并yum安装syslog-ng yum remove rsyslog yum install syslog-ng

步骤三: syslog-ng服务端配置:/etc/syslog-ng/syslog-ng.conf

全局配置:options options { flush_lines (0); #设置一次发送多少条日志,默认为0即收到日志就发送 time_reopen (10); log_fifo_size (1000); #单条日志大小 long_hostnames (off); use_dns (no); #不依赖DNS服务器 use_fqdn (no); create_dirs (yes);#存储日志的位置 keep_hostname (yes); };

设置日志来源、端口、协议、最大连接数,以及存储的位置。 source demo_source { tcp(ip(0.0.0.0) port(514) max-connections(1000)); }; destination d_central { file("/var/log/central/$HOST/$PROGRAM"); };

设置过滤器filter(可选): filter f_loadbalance { host(lb.example.com) and match("Deny"value( "MESSAHE" )); }; #将负载均衡器中含有Deny字样的日志过滤出来。

设置规则,将demo_source中的日志存储到d_central中: log { source(demo_source); destination(d_central); };

保存并重启syslog-ng服务 /etc/init.d/syslog-ng restart

syslog-ng客户端配置: destination d_syslog { tcp("syslog-ng",port(514)); }; log { source(s_sys); destination(d_syslog); };

重启syslog-ng服务 /etc/init.d/syslog-ng restart

常见的syslog程序不止rsyslog和syslog-ng,还有老牌的syslog、facebook开源的scribe等。但是在性能和开发进度上,rsyslog和syslog-ng优势明显。而且rsyslog作为centos默认的日志程序,配置简单,故为首选。