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、安裝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協議。

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

3、創建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
備註:可以過濾掉特定的日誌到文件

4、重啓rsyslog服務,日誌採集開始工作
[root@localhost ~]# systemctl stop rsyslog
[root@localhost ~]# systemctl start rsyslog

二、服務器配置

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

1、修改/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

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

3、防火牆允許514端口,並重啓防火牆,關閉selinux

4、重啓日誌服務
[root@localhost ~]# systemctl stop rsyslog.service #關閉日誌服務
[root@localhost ~]# systemctl start rsyslog.service #開啓日誌服務

5、服務器端驗證是否接收到日誌,至於在服務端什麼文件中,取決於服務端設置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章