Linux日志服務介紹
1. 在Linux系統,大部分日志都是由syslog日志服務驅動和管理的
syslog服務由兩個重要的配置檔案控制管理,分别是/etc/syslog.conf主配置檔案和/etc/sysconfig/syslog輔助
配置檔案, /etc/init.d/syslog是啟動腳本,這裡主講主配置檔案/etc/syslog.conf:
/etc/syslog.conf 語句結構:
[root@xhot ~]# grep -v "#" /etc/syslog.conf //列出非#打頭的每一行
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
.emerg
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
選擇域(消息類型.錯誤級别) 動作域
2. 消息類型:auth,authpriv,security;cron,daemon,kern,lpr,mail, mark,news,syslog,user,uucp,local0~local7.
錯誤級别:(8級)debug,info,notice,warning|warn;err|error;crit,alert,emerg|panic
動作域:file,user,console,@remote_ip
舉如上的/etc/syslog.conf檔案三個例子:
表示info級别的任何消息都發送到/var/log/messages日志檔案,但郵件系統、驗證系統
和計劃任務的錯誤級别資訊就除外,不發送(none表示禁止)
cron.* /var/log/cron 表示所有級别的cron資訊發到/var/log/cron檔案
.emerg 表示emerg錯誤級别(危險狀态)的所有消息類型發給所有使用者
Linux日志伺服器配置
此伺服器的配置非常簡單,隻是修改一個檔案的一個地方,然後重新開機服務即可:
[root@xhot ~]# grep -v "#" /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0 -r" //隻要在這裡添加“-r”就行咯
KLOGD_OPTIONS="-x"
SYSLOG_UMASK=077
[root@xhot ~]# service syslog restart
關閉核心日志記錄器: [确定]
關閉系統日志記錄器: [确定]
啟動系統日志記錄器: [确定]
啟動核心日志記錄器: [确定]
對于發送消息到伺服器的OS,隻要在寫/etc/syslog.conf主配置檔案的時候,作用域
為@server-ip就行了,比如針對218.192.87.24這台日志伺服器,把一台ubuntu系統的所有
info級别的auth資訊發給日志伺服器,那麼對于ubuntu系統的/etc/syslog.conf檔案最後一
行添加 auth.info @218.192.87.24 就OK了
日志轉儲服務
系統工作到了一定時間後,日志檔案的内容随着時間和通路量的增加而越來越多,
日志檔案也越來越大。而且當日志檔案超過系統控制範圍時候,還會對系統性能
造成影響。轉儲方式可以設為每年轉儲、每月轉儲、每周轉儲、達到一定大小轉儲。
在Linux系統,經常使用“logrotate”工具進行日志轉儲,結合cron計劃任務,可以輕松
實作日志檔案的轉儲。轉儲方式的設定由“/etc/logrotate.conf”配置檔案控制:
[root@xhot ~]# cat /etc/logrotate.conf
# see "man logrotate" for details //可以檢視幫助文檔
# rotate log files weekly
weekly //設定每周轉儲
# keep 4 weeks worth of backlogs
rotate 4 //最多轉儲4次
# create new (empty) log files after rotating old ones
create //當轉儲後檔案不存儲時建立它
# uncomment this if you want your log files compressed
#compress //以壓縮方式轉儲
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d //其他日志檔案的轉儲方式,包含在該目錄下
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp { //設定/var/log/wtmp日志檔案的轉儲參數
monthly //每月轉儲
create 0664 root utmp //轉儲後檔案不存在時建立它,檔案所有者為root,
所屬組為utmp,對應的權限為0664
rotate 1 //轉儲一次
}
# system-specific logs may be also be configured here.
舉兩個例子:
為/var/log/news/目錄下的所有檔案設定轉儲參數,每周轉儲,轉儲2次,轉儲
時将老的日志檔案放到/var/log/news/old目錄下,若日志檔案不存在,則跳過。完成後重新開機
news新聞討論區服務,轉儲時不壓縮。那麼可以在/etc/logrotate.conf檔案的最後添加如下:
/var/log/news/*{
monthly
rotate 2
olddir /var/log/news/old
missingok
postrotate
kill -HUP <code>cat /var/run/inn.pid</code>
endscript
nocompress
另一個例子:為/var/log/httpd/access.log和/var/log/httpd/error.log日志設定轉儲參數。轉儲
5次,轉儲時發送郵件給root@localhost使用者,當日志檔案達到100KB時才轉儲,轉儲後重新開機
httpd服務,那麼可以直接在/etc/logrotate.conf檔案的最後添加如下:
/var/log/httpd/access.log /var/log/http/error.log{
rotate 5
mail root@localhost
size=100k
sharedscripts
/sbin/killall -HUP httpd
自定義日志轉儲(/etc/logrotate.d/*)
通過下面一個例子将所有類型錯誤級别為info的日志轉儲到/var/log/test.log日志檔案中,并設定
/var/log/test.log達到50KB後進行轉儲,轉儲10次,轉儲時壓縮,轉儲後重新開機syslog服務:
1、修改/etc/syslog.conf檔案使得如下:
[root@xhot ~]# tail -1 /etc/syslog.conf //檢視該檔案的最後一行
*.info /var/log/test.log
2、重新開機syslog服務:
[root@xhot ~]# /sbin/service syslog restart
3、建立/etc/logrotate.d/test.log日志轉儲參數配置檔案,添加如下:
[root@xhot ~]# vim /etc/logrotate.d/test.log
[root@xhot ~]# cat /etc/logrotate.d/test.log
/var/log/test.log{
rotate 10
size = 50k
compress
killall -HUP syslog
4、檢視檔案/etc/cron.daily/logrotate確定如下:
[root@xhot ~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
5、檢視轉儲後的檔案
[root@xhot log]# pwd
/var/log
[root@xhot log]# ls test.log*
…… //結果等要轉儲的時候會發現壓縮檔案和原本的test.log檔案
syslog是一個被UNIX和Linux廣泛使用的日志系統,Linux系統中大部分的日志檔案都是通過它進行管理的。本節将對syslog的功能及配置、日志檔案的檢視和管理,以及syslog中預設配置的日志檔案進行介紹。
12.2.1 syslog簡介
syslog是一個曆史悠久的日志系統,幾乎所有的UNIX和Linux作業系統都是采用syslog進行系統日志的管理和配置。Linux系統核心和許多程式會産生各種錯誤資訊、警告資訊和其他的提示資訊。這些資訊對管理者了解系統的運作狀态是非常有用的,是以應該把它們寫到日志檔案中去。而執行這個過程的程式就是syslog。syslog可以根據資訊的來源以及資訊的重要程度将資訊儲存到不同的日志檔案中,例如,為了友善查閱,可以把核心資訊與其他資訊分開,單獨儲存到一個獨立的日志檔案中。在預設的syslog配置下,日志檔案通常都儲存在“/var/log”目錄下。syslog的守護程序為syslogd,系統啟動時,預設會自動運作syslogd守護程序。
如果要手工啟動,可以使用如下指令:
/sbin/syslogd
在修改syslog配置後,需要重新啟動syslogd守護程序才能使新的配置生效。其指令如下所示。
Red Hat Enterprise Linux 5.2安裝後預設就已經在syslog中定義了一些日志檔案,這些日志的位置以及它們的說明如表12.2所示。
日 志 文 件
說明
/var/log/message
系統啟動後的資訊和錯誤日志,是Red Hat Linux中最常用的日志之一
/var/log/secure
與安全相關的日志資訊
/var/log/maillog
與郵件相關的日志資訊
/var/log/cron
與定時任務相關的日志資訊
/var/log/spooler
與UUCP和news裝置相關的日志資訊
/var/log/boot.log
守護程序啟動和停止相關的日志消息
本文轉自 yuri_cto 51CTO部落格,原文連結:http://blog.51cto.com/laobaiv1/2052127,如需轉載請自行聯系原作者