介绍
- 一般syslog,syslog-ng,rsyslog用于收集系统日志,scribe和fluentd用于收集业务日志,rsyslog和syslog-ng也可以收集业务日志,并可定制和过滤、筛选。LogAnalyzer和LogZilla是分析系统日志,并用web界面展示的的工具,一般只用在syslog,syslog-ng,rsyslog日志系统中。
- rsyslog可以理解为增强版的syslog,在syslog的基础上扩展了很多其他功能,如数据库支持(Mysql, PostgreSQL、Oracle等)、日志内容筛选、定义日志格式模板等。除了默认的udp协议外,rsyslog还支持tcp协议来接收日志。
下载
rsyslog:wget http://www.rsyslog.com/files/download/rsyslog/rsyslog-7.2.6.tar.gz
需要的库libestr:wget http://libestr.adiscon.com/files/download/libestr-0.1.4.tar.gz
需要的库libee:wget http://www.libee.org/files/download/libee-0.4.1.tar.gz
需要的库json-c:wget https://github.com/json-c/json-c/archive/master.zip
yum install libuuid-devel
安装
先手动指定下lib库和PKG_CONFIG_PATH
vi /etc/ld.so.conf,加入/usr/local/lib
运行ldconfig生效。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/pkgconfig
解压libestr,进入解压目录:./configure;make;make install
解压libee,进入解压目录:./configure;make;make install
解压json-c,进入解压目录:sh autogen.sh;./configure;make;make install
解压rsyslog,进入解压目录:./configure --prefix=/usr/local/rsyslog --enable-mysql;make;make install
配置
把源文件目录下的platform/redhat/rsyslog.conf 复制到/usr/local/rsyslog/etc
vi /usr/local/rsyslog/etc/rsyslog.conf
#开启集中日志服务器功能(SYSLOGD_OPTIONS="-m 0 -r" 该方式新版本已经无效)
module(load="imudp")
input(type="imudp" port="514")
#定义自己的输出格式模板(时间格式类似2011-10-01 23:11:29 ,显示IP)
$template sl,"[%$NOW% %TIMESTAMP:8:15%] %FROMHOST-IP% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\\n"
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #系统默认的输出格式
#详细定义官方文档:doc\\rsyslog_conf_templates.html,doc/property_replacer.html
#使用模板
local6.* /var/log/test.log;sl
启动
停止系统的syslog:service syslog stop;chkconfig syslog off
启动rsysloig:/usr/local/rsyslog/sbin/rsyslogd -f /usr/local/rsyslog/etc/rsyslog.conf -x #-f指定配置文件 -x 不做dns解析
关闭rsyslog:pkill rsyslogd
客户端配置
只要在客户端配置文件中:相应日志类型中的输出地址改为日志服务器即可,如下:
local6.* @192.168.1.210 #@192.168.1.210 使用udp @@192.168.1.210 使用tcp
输出到服务器后存放的位置是由服务器端的rsyslog的配置决定的。
例子
服务端存放位置例子:
:fromhost-ip, isequal, "192.168.1.220" /var/log/rsyslog/192.168.1.220.auth.log;sl
:fromhost-ip, isequal, "192.168.1.220" ~
local6.* /var/log/test.log
local4.info /var/log/rsyslog/192.168.1.221.squid.log;sl (squid使用LOCAL4 syslog设备)
:fromhost-ip, isequal, "192.168.1.221" /var/log/rsyslog/192.168.1.221.auth.log;sl
:fromhost-ip, isequal, "192.168.1.221" ~
#或者这样:
if $fromhost-ip == '192.168.1.221' and $syslogtag startswith 'squid' then /var/log/rsyslog/192.168.1.221.squid.log;sl
if $fromhost-ip == '192.168.1.221' and ( $syslogtag startswith 'sshd' or $syslogtag startswith 'sudo' ) then /var/log/rsyslog/192.168.1.221.auth.log;sl
if $fromhost-ip == '192.168.1.221' then ~
#$fromhost-ip $syslogtag 这类标签就是前面模板sl定义的 执行操作可以是:contains,isequal,startswith. 详细:man rsyslog.conf
如果您喜欢本站,点击这儿可以捐赠本站
这些信息可能会帮助到你: 联系作者 | 报毒说明
修改版本软件,加群提示等均为修改者自留,非本站信息,注意鉴别
这些信息可能会帮助到你: 联系作者 | 报毒说明
修改版本软件,加群提示等均为修改者自留,非本站信息,注意鉴别
评论(0)