Syslog-ng作为syslog的下一代日记记录工具,兼容于syslog协议,可通过定义规则,实现高级过滤功能,可以构建灵活的、可靠的中央日志服务器。
配置文件基于以下架构:
1 2 3 | log { source( ); filter( l); destination( ); }; #通过关联数据源、过滤规则、目标操作组成一个完整的消息路径。 #数据源、过滤规则、目标操作分别定义。 |
数据源定义source:
1 2 3 4 5 6 7 8 9 | source <sourcename> { 日志源; 日志源; ... }; #日志源可用参数: file (filename) : 从指定的文件读取日志信息 unix-dgram (filename) : 从SOCK_DGRAM模式的unix套接字接收日志消息 unix-stream (filename) : 从SOCK_STREAM模式的unix套接字接收日志消息 udp ( (ip),(port) ) :从UDP端口接收日志 tcp ( (ip),(port) ) : 从TCP端口接收日志 internal() : syslog-ng内部产生的日志 pipe(filename),fifo(filename) : 从指定的管道或者FIFO设备,读取日志信息 |
应用示例:
1 2 | source net {udp();}; 从UDP 514端口接收日志 |
过滤参数定义:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | filter <filtername> { 过滤参数; }; #过滤参数可用: facility(,): 根据facility(设备)选择日志消息,使用逗号分割多个facility level(,): 根据level(优先级)选择日志消息,使用逗号分割多个level,或使用“..”表示一个范围 program(regexp): 日志消息的程序名是否匹配一个正则表达式 host(regexp): 日志消息的主机名是否和一个正则表达式匹配 match(regexp): 对日志消息的内容进行正则匹配 filter(): 调用另一条过滤规则并判断它的值 #过滤参数操作式: and 和 or 或者 not 不包含 #facility(设备)可用消息类型 auth 用户认证 authpriv 有特权的用户认证 cron cron守护进程 daemon 各种系统守护进程 ftp ftp守护进程 kern 内核消息 local0-local7 保留用于本地用法 lpr 打印机 mail 邮件 news 新闻 syslog 内部syslog uucp uucp系统 user 各种用户程序来的消息 #Level等级: emerg 最严重的错误 (如system panic) alert 需要立即处理的严重错误 crit critical warming err 普通错误 warn 警告信息 notice 比较不严重的信息 info 普通信息 debug 除错信息 |
应用举例:
1 2 | filter f_local { facility(authpriv) or level(notice); }; #定义过滤规则f_local包含authpriv所有消息和其它设备notice级别以上消息 |
目标操作定义destination:
1 2 3 4 5 6 7 8 9 10 | destination <name> { 目标操作; 目标操作; ... ;}; #目标操作常用参数: file (filename) :写入指定文件 unix-dgram (filename) :写入SOCK_DGRAM模式的unix套接字 unix-stream (filename) :写入SOCK_STREAM模式的unix套接字 tcp (ip),(port) :以TCP协议发送指定主机端口 udp (ip),(port) :以UDP协议发送指定主机端口 usertty(username) :把日志消息发送到已经登陆的指定用户终端 pipe(filename),fifo(filename) :把日志消息发送到指定的管道或者FIFO设备 program(parm) :启动指定的程序,并把日志消息发送到该进程的标准输入 |
应用示例:
1 2 3 4 | destination d_kern { file("/var/log/kern"); } 定义目标规则d_kern写入日志到文件/var/log/kern destination d_udp { udp("127.0.0.1" port(514)); }; 定义目标规则d_udp发送日志到相应IP端口 |