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     #開啓日誌服務


五、服務器端驗證是否接收到日誌,至於在服務端什麼文件中,取決於服務端設置。
相關文章
相關標籤/搜索