1、介绍 syslog消息发送到Collector的UDP 514端口,不需要接收方应答,RFC3164建议 Device 也使用514作为源端口。规定syslog消息的UDP报文不能超过1024字节,并且全部由可打印的字符组成。完整的syslog消息由3部分组成,分别是PRI、HEADER和MSG。大部分syslog都包含PRI和MSG部分,而HEADER可能没有。
#syslog格式详细描述 blog.csdn.net/fivedoumi/a…
Linux C中提供一套系统日记写入接口,包括三个函数:openlog,syslog和closelog。 调用openlog是可选择的。如果不调用openlog,则在第一次调用syslog时,自动调用openlog。调用closelog也是可选择的,它只是关闭被用于与syslog守护进程通信的描述符。
#openlog(ident, option, facility)(打开日志设备) : ident - 标记,添加到每行日志前,通常用当前程序名。 option - 选项,常用值为LOG_PID即包含每个消息的PID,更详细信息参考man syslog。 facility - 记录日志的程序的类型,配置文件可根据不同的登录类型来区别处理消息,常用值LOG_DAEMON即其它系统守护进程,一般为自己创建的守护进程。更详细信息参考man syslog。
#下面是facility常用的选项 kern 内核信息,首先通过 klogd 传递; user 用户进程; mail 邮件; daemon 后台进程; authpriv 授权信息; syslog 系统日志; lpr 打印信息; news 新闻组信息; uucp 由uucp生成的信息 cron 计划和任务信息。 mark syslog 内部功能用于生成时间戳 local0----local7 与自定义程序使用,例如使用 local5 做为 ssh 功能
- 通配符代表除了 mark 以外的所有功能
#syslog(int priority, const char *message, arguments...); 生成日志:
priority - 优先级,说明消息的重要性,可取值如下: LOG_EMERG 系统不可用 LOG_ALERT 消息需立即处理 LOG_CRIT 重要情况 LOG_ERR 错误 LOG_WARNING 警告 LOG_NOTICE 正常情况,但较为重要 LOG_INFO 信息 LOG_DEBUG 调试信息
facility.level action
#facility.level为选择条件本身分为两个字段,之间用一个小数点(.)分隔。action和facility.level之间使用TAB隔开。前一
不同的地方。在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)把它们分隔开。action字段所表示的活动具有许多灵活性,特别是,可以使用名称管道的作用是可以使 syslogd 生成后处理信息。
#closelog() 只是关闭被用于与syslog守护进程通信的描述符。
2、转发 ruleset www.rsyslog.com/doc/master/… RainerScript www.rsyslog.com/doc/master/… input www.rsyslog.com/doc/master/… action www.rsyslog.com/doc/master/… prifilt www.rsyslog.com/doc/v8-stab… queue
3、action facility.xxx: 表示大于等于xxx级别的信息 facility.=xxx:表示等于xxx级别的信息 facility.!xxx:表示在xxx之外的等级的信息
- 记录到普通文件或设备文件:: . /var/log/file.log # 绝对路径
. /dev/pts/0
测试: logger -p local3.info ‘KadeFor is testing the rsyslog and logger ‘ logger 命令用于产 生日志
- 转发到远程:: . @192.168.0.1 # 使用UDP协议转发到192.168.0.1的514(默认)端口
. @@192.168.0.1:10514 # 使用TCP协议转发到192.168.0.1的10514(默认)端口
- 发送给用户(需要在线才能收到):: . root
. root,kadefor,up01 # 使用,号分隔多个用户
.-crit :omusrmsg: #将重要消息发送给现在用户
-
忽略,丢弃:: local3.* ~ # 忽略所有local3类型的所有级别的日志
-
执行脚本:: local3.* ^/tmp/a.sh # ^号后跟可执行脚本或程序的绝对路径