rsyslog是一个用来管理系统日志的开源程序,是早前syslog的升级版,对原有的日志系统进行了功能的扩展。
rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器。另外就是可以配置为客户端,用来过滤和发送内部日志数据到本地文件夹(如/var/log)或一台远程rsyslog服务器上。
一、rsyslog特性
多线程
支持通过TCP,SSL,TLS,RELP协议实现日志数据的可靠传输
支持输出日志到MySQL, PGSQL, Oracle等多种关系型数据中
强大的过滤器,可实现过滤系统信息中的任意部分
自定义输出格式
适用于企业级别日志记录需求
二、rsyslog配置
rsyslog的主配置文件:/etc/rsyslog.conf
1、定义过滤和输出规则的格式为:
facility.priority Target
⑴facility:设施,产生日志消息的子系统,从功能或程序上分类
可选值:auth,authpriv,cron,daemon,ftp,kern,lpr,mail,mark,news,security,syslog,user,uucp,local0~local7
指定设施时可以使用通配符:
*:所有
f1,f2,f3,...:列表
!:取反
⑵priority:日志级别
从低到高依次为:debug(7),info(6),notice(5),warning(4),err(3),crit(2),alert(1),emerg(0)
通配符:
*:所有级别
none:没有任何级别
示例:
mail.info:info级别及比info级别更高级别的日志消息都会被记录
mail.=info:仅记录info级别
mail.!info:除了info级别的都会被记录
*.info:所有facility的info(及以上)级别
mail.*:mail的所有级别
mail.notice;news.info:
mail,news.info:mail和news的info(及以上)级别
⑶Target:
文件路径:例如/var/log/messages
系统日志是比较重要的信息,一般是同步写入磁盘,但这样也会影响性能,路径前若带有“-”则表示异步写入
用户:*,当前系统上所有已登录的用户
日志服务器:@SERVER_IP
管道:| COMMAND
2、启用日志服务器功能
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
3、日志消息的格式
时间 主机 进程(PID): 事件
配置日志服务器示例:[root@node2 ~]# rpm -q rsyslog #linux系统上默认已安装rsyslog
rsyslog-5.8.10-10.el6_6.x86_64
[root@node2 ~]# rpm -ql rsyslog
/etc/logrotate.d/syslog
/etc/pki/rsyslog
/etc/rc.d/init.d/rsyslog #服务脚本
/etc/rsyslog.conf #主配置文件
/etc/rsyslog.d
/etc/sysconfig/rsyslog
/lib64/rsyslog
...
[root@node2 ~]# vim /etc/rsyslog.conf
...
#### MODULES ####
$ModLoad imuxsock # provides