对syslogng进行了介绍
可能没有用过的朋友还是不太了解,下面讲一个例子
cat /etc/syslog-ng/syslog-ng.conf
#Syslog-ng configuration file
options {
long_hostnames(off);
#long_hostnames(yes|no) :是chain_hostnames的别名,已不建议使用
sync(100);
#sync(n) :缓存多少行的信息再写入文件中,0为不缓存,局部参数可以覆盖该值。
stats(43200);
#stats(n) :多少时间(秒)写入两行STATUS信息供,默认值是:600
create_dirs(yes);
#create_dirs(yes创建目录
compress(yes);
#压缩
log_fifo_size(200);
#设置输出队列的大小
# 为了防止发送日志的daemon程序阻塞,syslog-ng一直在读取其向内的日志通道。如果输出队列已满,就可能造成日志消息的丢失。因此,设置输出队列的大小非常重要,你可以设置全局输出队列的大小,也可以为每个日志消息驱动器设置输出队列的大小。
};
#src
source src { unix-stream("/dev/log"); internal(); pipe("/proc/kmsg"); udp(ip(0.0.0.0) port(514)); };
#定义消息源src,从udp514端口接收
#Linux 一个叫作/dev/log的SOCK_STREAM unix套接字
#通常,内核会把自己的消息送到一个特殊的文件(BSD系统是/dev/kmsg,Linux系统是/proc/kmsg)
# internal();所有syslog-ng内部产生的日志消息。
#pipe,fifo 打开指定的管道或者FIFO设备,读取日志信息
#for realtime alert
destination d_realtime_alert { udp("0.0.0.0" port(7777)); };
destination d_realtimepass_alert { udp("0.0.0.0" port(8888)); };
#定义目的地d_realtime_alert,把日志消息发送到指定的UDP端口7777
#定义目的地d_realtimepass_alert,把日志消息发送到指定的UDP端口8888
destination d_passport { file("/opt/syslog-ng/log/passport_log"); };
#把日志消息写入指定的文件
destination d_maildlogin { udp("0.0.0.0" port(9801)); };
#destination d_maildlogin { file("/opt/syslog-ng/log/oplog/$YEAR.$MONTH.$DAY.$HOUR.log" create_dirs(yes)); };
#用变量来创建文件,这样每小时自动生成一个日志文件,实现分割
#192.168.132.203
filter f_192.168.132.203 { host("192.168.132.203"); };
#定义过滤器,匹配来自192.168.132.203的日志消息
log { source(src); filter (f_192.168.132.203); destination(d_passport); };
#把消息源、过滤器、消息目的组合起来就形成一条完整的指令。日志路径中的成员是顺序执行的。凡是来源于指定的消息源,匹配所有指定的过滤器,并送到指定的地址
destination d_webmail_stat_log { file("/opt/syslog-ng/log/oplog/$YEAR.$MONTH.$DAY.$HOUR.log" create_dirs(yes)); udp("localhost" port(2005)); udp("localhost" port(2004)); };
#同时记录到文件和发送到UDP端口2005,2004
#Webmail Statistic
filter f_webmail_stat { program("oplog"); };
#program(parm) :启动指定的程序oplog,并把日志消息发送到该进程的标准输入
以上是接收日志。发送端可以是程序,也可以是系统自带的syslogd
cat /etc/syslog.conf
local6.* @192.168.20.85
阅读(760) | 评论(0) | 转发(0) |