rsyslog日志服务器搭建

一、作用

rsyslog可以用来搜集服务器的系统日志。

二、安装

在centos7中,rsyslog已经默认安装。如果没有安装的话,通过yum安装即可

三、配置

配置主要分为服务端配置和客户端配置。配置文件的路径:/etc/rsyslog.conf

服务端的配置:

1、client向server传输日志可以通过UDP和TCP两种方式,我这里通过UDP传输,所以将UDP的配置打开,如果使用TCP则将TCP的配置打开即可

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
# $ModLoad imtcp
# $InputTCPServerRun 514

2、配置日志存放的路径、日志文件的命名、日志的格式

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # 配置使用的格式化日志的模版
$template Remote,"/data/rsyslog/syncdir/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" # 设置远程日志存放路径和文件格式
:fromhost-ip, !isequal, "127.0.0.1" ?Remote  # 如果是本机日志则不记录

3、由于我搜集的client数量较多,并且client传过来的message等日志同样会记录在server的messages日志文件中,我选择将这些日志输出的配置全部注释掉。当然也可以写一个脚本,定时清理该目录下的日志文件。

# *.info;mail.none;authpriv.none;cron.none                /var/log/messages
# authpriv.*                                              /var/log/secure
# mail.*                                                  -/var/log/maillog
# cron.*                                                  /var/log/cron

4、服务端做完这些配置后,重启一下rsyslog就可以了

systemctl restart rsyslog

client端配置:

1、客户端只需要在配置文件中加入一行即可,表示所有的日志都通过UDP传输到IP为10.42.149.57的服务端,如果使用TCP传输则把@写成@@即可

*.*                                                     @10.42.149.57

2、重启服务即可完成配置

systemctl restart rsyslog

四、问题记录

1、server服务器磁盘极短时间内被日志打满?

原因是我在服务端也做了客户端的配置,导致服务端的日志会向自己发送日志,同时我没有关闭本地日志文件存放的配置,这样会导致日志文件成指数增长,迅速将磁盘写满,解决方法也很简单,将client相关配置去掉,然后将本地日志文件的配置注释掉,问题就解决了。

2、搜集到的日志文件太大了怎么办?

可以使用gzip压缩文件将日志压缩归档,测试gzip压缩比可以达到1:15  

 

 

 

 

  

 

原文地址:https://www.cnblogs.com/LAlexH/p/14841826.html