centos 7.2往rsyslog服务器端发送apache日志

CentOS 6开始,日志服务由syslogd变成了rsyslogd,在配置rsyslogd前须要了解下系统日志的8个级别:

0 EMERG(紧急):可能致使系统不可用的状况
1 ALERT(警报):必须立刻解决的问题
2 CRIT(严重错误):比较严重的状况
3 ERR(错误):运行出现错误
4 WARNING(警告):可能会影响系统功能的状况
5 NOTICE(注意):普通提示信息,不影响系统
6 INFO(普通讯息):通常信息
7 DEBUG(调试):程序调试用



1、客户端配置linux

一、安装rsyslog
[root@localhost ~]# rpm -qa | grep rsyslog
rsyslog-7.4.7-12.el7.x86_64
[root@localhost ~]# yum install rsyslog
[root@localhost ~]# vi /etc/rsyslog.conf
*.* @192.168.1.106:514
注:日志默认使用udp协议,使用@@则使用tcp协议。


二、新建/var/spool/rsyslog目录
[root@localhost ~]# mkdir -v /var/spool/rsyslog


三、建立Apahce日志文件采集配置
新建rsyslog的子配置文件,他一般在/etc/rsyslog.d下,须要/etc/rsyslog.conf去包含这个目录下的子配置文件:
备注:不支持变量,刚开始apache日志文件名带天天的日期。想用变量获取当天日期,可是发现次日依然获取的第一天的变量。因此更改apache设置,固定写入到access.log文件中,而后用logrotate进行分割。
[root@localhost ~]# vim /etc/rsyslog.d/apache-biglog.conf
$ModLoad imfile
$InputFilePollInterval 10
$WorkDirectory /var/spool/rsyslog
$PrivDropToGroup adm

## Apache访问日志文件路径
$InputFileName /usr/local/apache/logs/access.log
$InputFileTag apache-access
$InputFileStateFile stat-apache-access
$InputFileSeverity info
$InputFilePersistStateInterval 25000
$InputRunFileMonitor

## Apache错误日志文件路径
$InputFileName /usr/local/apache/logs/error_log
$InputFileTag apache-error
$InputFileStateFile stat-apache-error
$InputFileSeverity error
$InputFilePersistStateInterval 25000
$InputRunFileMonitor

## 指定日志格式模板:
$template BiglogFormatApache,"%msg%\n"

## 注意rsyslog日志服务器接收地址:
if $programname == 'apache-access' then @192.168.1.106:514;BiglogFormatApache
if $programname == 'apache-access' then ~
if $programname == 'apache-error' then @192.168.1.106:514;BiglogFormatApache
if $programname == 'apache-error' then ~
apache日志设置以下:
[root@localhost rsyslog]# cat /etc/httpd/httpd.conf | egrep "Custom|ErrorLog" | grep -v "#"
ErrorLog "/usr/local/apache/logs/error_log"
    CustomLog /usr/local/apache/logs/access.log  combined
备注:能够过滤掉特定的日志到文件
 

四、重启rsyslog服务,日志采集开始工做
[root@localhost ~]# systemctl stop rsyslog
[root@localhost ~]# systemctl start rsyslog




2、服务器配置apache

服务器端修改/etc/rsyslog.conf文件以及/etc/sysconfig/rsyslog文件。

一、修改/etc/rsyslog.conf
[root@localhost ~]# vi /etc/rsyslog.conf
#Provides UDPsyslog reception
$ModLoad imudp
$UDPServerRun514
#### GLOBAL DIRECTIVES ####
#从远程客户端接收的日志写入到以它们IP命名的单个文件夹中
$template IpTemplate,"/var/log/%FROMHOST-IP%.log"
*.* ?IpTemplate
& ~

以打开日志服务监听,输入netstat –lunp可见rsyslog监听于514端口(默认端口)
或者归类的更加详细
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template DynamicFile,"/var/log/ttlogs/%$YEAR%/%$MONTH%/%$DAY%/%fromhost-ip%-test.log"
*.* ?DynamicFile


二、修改/etc/sysconfig/rsyslog
[root@localhost ~]# vi /etc/sysconfig/rsyslog  #文件中,需修改
SYSLOGD_OPTIONS="-m240 -r"
其中-r表示接受外部日志的写入。


三、防火墙容许514端口,并重启防火墙,关闭selinux


四、重启日志服务
[root@localhost ~]# systemctl stop  rsyslog.service    #关闭日志服务
[root@localhost ~]# systemctl start  rsyslog.service     #开启日志服务


五、服务器端验证是否接收到日志,至于在服务端什么文件中,取决于服务端设置。
相关文章
相关标签/搜索