搭建syslog-ng服务器
1. 从syslog-ng官网下载自己合适的版本,可以是src源文件,也可以是rpm包
2. 安装rpm包,安装后的位置默认为/opt/syslog-ng下
rpm -i syslog-ng-3.1.2-1.rhel5.x86_64.rpm
3. 修改配置文件,vi /opt/syslog-ng/etc/syslog-ng.conf
@version: 3.0
options {
create_dirs(yes);
ts_format(bsd);
};# sources
source s_local {
# message generated by Syslog-NG
internal();
# standard Linux log source (this is the default place for the syslog() function to send logs to)
unix-stream("/dev/log");
# messages from the kernel
file("/proc/kmsg" program_override("kernel: "));
udp(ip(0.0.0.0) port(514));
};
# destinations
destination d_messages { file("/var/log/messages"); };log {
source(s_local);
destination(d_messages);
};filter f_login { program("sso");};
log { source(s_local); filter (f_login); destination(d_login); };
destination d_login { file("/maildata/orilog/login/$YEAR$MONTH$DAY$HOUR$MIN.log" create_dirs(yes) template("$UNIXTIME|$HOST|$LEVEL|$MSG\n") );};filter f_register { program("register");};
log { source(s_local); filter (f_register); destination(d_register); };
destination d_register { file("/maildata/orilog/register/$YEAR$MONTH$DAY$HOUR$MIN.log" create_dirs(yes));};
4.启动syslog-ng服务
/etc/init.d/syslog-ng start
5. 一些配置项说明
- source中定义udp(ip(0.0.0.0) port(514)),是监听514的UDP端口,为了接收其它服务器远程打来的syslog
- program是根据msg的前缀来进行过滤,比如program("sso"),将匹配以sso:开头的msg,注意sso后面必须要有:
- match是根据msg消息的内容进行过滤,支持正则,比如:match("aaa[|]bbb")
- template定义自己的syslog日志的输出模板,替换默认的模板,如:template("$UNIXTIME|$HOST|$LEVEL|$MSG\n")
- destination中还可以将msg转发到其它的syslog服务器上,如:destination d_sso {file("/opt/log/sso/$YEAR$MONTH$DAY.log" );udp("192.168.x.x" port(514));};