用rsyslog的缘由:
1.防止系统崩溃无法获取系统日志分享崩溃原因,用rsyslog可以把日志传输到远程的日志服务器上
2.使用rsyslog日志可以减轻系统压力,因为使用rsyslog可以有效减轻系统的磁盘IO
3.rsyslog使用tcp传输非常可靠,可以对日志进行过滤,提取出有效的日志,rsyslog是轻量级的日志软件,在大量日志写的情况下,系统负载基本上在0.1以下
一、安装前准备
1.下载rsyslog-5.6.2
2.准备两台机器(linux或者unix),一台客户端,一台服务端
服务端和客户端的安装步骤:
- #指定安装目录
-
./configure --prefix=/Application/rsyslog
-
-
#编译
-
make
-
-
#安装
-
make install
-
#添加lib
-
echo "/Application/rsyslog/lib/rsyslog" >> /etc/ld.so.conf
-
#更新lib
-
ldconfig
-
-
#产生配置文件
-
cp /etc/syslog.conf /etc/rsyslog.conf
#产生服务文件
vi /etc/init.d/rsyslog
#启动服务
- #产生服务文件
-
chmod +x /etc/init.d/rsyslog
- #启动前先把syslog停止
- service syslog stop
-
service rsyslog start
#配置服务端
vi /etc/rsyslog.conf #在文件开始加上,同时确保514端口能够被客户端用tcp访问
- #指定日志文件的拥有者
-
$FileOwner apache
-
#使用tcp方式
-
$ModLoad imtcp # needs to be done just once
-
#tcp接收连接数为500个
-
$InputTCPMaxSessions 500
-
#tcp接收信息的端口
-
$InputTCPServerRun 514
-
-
#为信息加上日志时间
-
$template logformat,"%TIMESTAMP:::date-mysql% %FROMHOST-IP%%msg%\n"
-
#定义的日志文件的名称,按照年月日
-
$template DynFile,"/Application/sdns/log/%$year%%$month%%$day%.log"
-
#把包含sdns_log标志的信息写到DynFile定义的日志文件里
-
:rawmsg, contains, "sdns_log" ?DynFile;logformat
-
#这个表示丢弃包含sdns_log标志的信息
-
:rawmsg, contains, "sdns_log" ~
#配置客户端
vi /etc/rsyslog.conf #在文件开始加上
- #把包含sdns_log的信息通过tcp发到192.168.1.2 @@表示tcp @表示udp
-
:rawmsg, contains, "sdns_log" @@192.168.1.2
-
#这个表示丢弃包含sdns_log标志的信息,防止这个信息写到本机的/var/log/message
-
:rawmsg, contains, "sdns_log" ~
测试:
在客户端上执行
logger -p user.info "sdns_log 34334"
在服务端的/Application/sdns/log/目录里是否有日志产生
阅读(8238) | 评论(3) | 转发(2) |