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 #開啓日誌服務 五、服務器端驗證是否接收到日誌,至於在服務端什麼文件中,取決於服務端設置。