syslog本地和远程日志分离

syslog远程日志分离

今天开启syslog接收远程日志后,发现日志不仅仅记录在指定的文件中,并且在messages中也记录了一份。

查了查如何让日志不重复记录,终于找到这样的解决方法,本方法支持 syslog和rsyslog。从最开始说起。

第一步:配置syslog或者rsyslog服务

对于rsyslog

#vi /etc/sysconfig/rsyslog

将SYSLOGD_OPTIONS修改为

SYSLOGD_OPTIONS="-c 2 -r -m 0 -x"

-c 2 的意思是:

# syslogd options are deprecated since rsyslog v3
# if you want to use them, switch to compatibility mode 2 by "-c 2"

-r 意思是接收远程日志

-x 是关闭自动解析对方日志服务器的FQDN信息,这能避免DNS不完整所带来的麻烦,要和-r一起用。

-m 0 # -m 0 disables 'MARK' messages.



对于syslog

#vi /etc/sysconfig/syslog

SYSLOGD_OPTIONS="-r -m 0 -x"



重拉syslog 或者 rsyslog



第二步,修改syslog或者rsyslog服务的配置文件

对于rsyslog:

#vi /etc/rsyslog.conf

开启UDP和TCP(配置默认是注释掉的,删掉#开启即可)

# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

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

在 #### RULES #### 下添加自定义的类型和级别以及指定的输出文件路径,比如:

# Log all the web messages in one place.

local0.* -/var/log/web/web-access.log



重拉后发现还是会记录动啊messages中去,因此修改messages行配置如下:

!local0.*;*.info;mail.none;authpriv.none;cron.none /var/log/messages

即在行首添加一个“!local0.*;”配置,意思是说,local0下所有级别的日志不记录到messages中去。



重拉后生效。

你可能感兴趣的:(记录,如何,的)