Linux系統級日誌系統
linux日誌系統,在不同的發行版本名字不同。本質一樣都是對系統執行非正常狀態的記錄。。。
rhel5.x syslog
rhel6.x rsyslog service rsyslog status
rhel7.x systemd-journald和rsyslog
00、日誌等級
編碼優先順序嚴重性
0 emerg 系統不可用。
1 alert 必須立即採取措施。
2 crit 嚴重狀況。
3 err 非常嚴重錯誤狀況。
4 warning 警告狀況。
5 notice 正常但重要的事件。
6 info 資訊性事件。
7 debug 除錯級別訊息。
8 none 日誌不記錄
01、日誌等級符號
. ∶代表『比後面還要高的等級(含該等級)都被記錄下來』 mail.info >=info 級別的日誌都記錄
.=∶代表所需要的等級就是後面接的等級而已, mail.=info 僅僅記錄info級別的日誌
.!∶代表不等於,亦即是除了該等級外的其他等級都記錄 mail.!info !=info除去info不記錄,其他都記錄
例子:
news.*;cron.* /var/log/cronnews #news及cron的所有日誌資訊都輸出到cronnews
news.=warn;cronn.=warn /var/log/cronnews.warn #news及cron的warn資訊都輸出到cronnews.warn
messages 這個檔案需要記錄所有的資訊,但是就是不想要記錄 cron, mail 及 news 的資訊
可以有兩種寫法,分別是∶ *.* = 所有資訊!
*.*;news,cron,mail.none /var/log/messages
*.*;news.none;cron.none;mail.none /var/log/messages
注意:使用,分隔時,那麼等級只要接在最後一個即可。如果是以『;』來分的話,那麼就需要將服務與等級都寫上去!
02、檢視系統預設的日誌系統
# 來自 RHEL5 的相關資料
[[email protected] ~]# vi /etc/syslog.conf
#kern.* /dev/console
# 只要是 kernel 產生的訊息,全部都送到 console 去!
# 這個專案預設是關閉的!不過,只要您願意,可以開啟就是了!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# 在已知各服務的訊息中,不要記錄到這個檔案當中!
# 例如 mail 我們已經預設要記錄在 /var/log/maillog (底下),
# 所以自然不要在記錄 mail 到這個 /var/log/messages 檔案中!
# 然後其他的訊息全部都記錄到 /var/log/messages 當中!
# 所以這個檔案相當的重要!沒有被規定到的訊息都可以在這裡找到!
authpriv.* /var/log/secure
# 這個就是經過一些身份確認的行為之後,需要記錄身份的檔案!
# 什麼是身份確認呢?例如 pop3 收信要輸入帳號與密碼、 ssh 與 telnet, ftp
# 等等的服務需要輸入帳號與密碼,這些都會在 /var/log/secure 裡面記錄!
# 他可也是相當重要的一個檔案呢!
mail.* -/var/log/maillog
# 只要跟 mail 有關的(不論是 pop3 還是 sendmail )都會被紀錄到這個檔案中!
cron.* /var/log/cron
# 還記得例行性命令那一章節嗎?!對!就是那個 crontab 的東西,
# 那東西的服務程式名稱就是 cron !執行 cron 的結果都記錄於此!
*.emerg *
# 任何時候發生的警告訊息都會顯示給線上的所有人!那個 * 就是目前線上的所有人!
# 這個就是利用 wall 之類的方式傳輸訊息的啊!
uucp,news.crit /var/log/spooler
# 記錄新聞錯誤高於 crit 的等級的資訊,寫入 spooler 當中!
local7.* /var/log/boot.log
# 將開機的當中的訊息給他寫入 /var/log/boot.log 這個檔案當中呦!
基本上,每個版本的 syslog.conf 差異是頗大的,所以,每個登入檔記錄的資料其實不很固定
曾經使用過 Mandriva 的話,他的 syslogd 設定資訊有點像這樣∶
# 1. 先設定好所要建立的檔案設定!
[[email protected] ~]# vi /etc/syslog.conf
*.info /var/log/admin.log
# 2. 重新啟動 syslog 呢!
[[email protected] ~]# /etc/init.d/syslog restart
[[email protected] ~]# ll /var/log/admin.log
-rw------- 1 root root 122 Oct 23 22:21 /var/log/admin.log
# 瞧吧!建立了這個檔案出現!
chattr +a /var/log/messages #新增隱藏屬性,只能追加不能刪除
charttr -a /var/log/message #去除追加屬性
lsattr /var/log/messages #檢視檔案隱藏屬性
03、RHEL6.X日誌系統rsyslog
[[email protected] etc]# cat rsyslog.conf # rsyslog v5 configuration file # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html #### MODULES #### $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog # provides kernel logging support (previously done by rklogd) #$ModLoad immark # provides --MARK-- message capability # Provides UDP syslog reception #$ModLoad imudp #$UDPServerRun 514 # Provides TCP syslog reception #$ModLoad imtcp #$InputTCPServerRun 514 #### GLOBAL DIRECTIVES #### # Use default timestamp format $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # File syncing capability is disabled by default. This feature is usually not required, # not useful and an extreme performance hit #$ActionFileEnableSync on # Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf #配置的日誌檔案,自定義的日誌 #### RULES #### # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* -/var/log/maillog # Log cron stuff cron.* /var/log/cron # Everybody gets emergency messages *.emerg * # Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log # ### begin forwarding rule ### # The statement between the begin ... end define a SINGLE forwarding # rule. They belong together, do NOT split them. If you create multiple # forwarding rules, duplicate the whole block! # Remote Logging (we use TCP for reliable delivery) # # An on-disk queue is created for this action. If the remote host is # down, messages are spooled to disk and sent when it is up again. #$WorkDirectory /var/lib/rsyslog # where to place spool files #$ActionQueueFileName fwdRule1 # unique name prefix for spool files #$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) #$ActionQueueSaveOnShutdown on # save messages to disk on shutdown #$ActionQueueType LinkedList # run asynchronously #$ActionResumeRetryCount -1 # infinite retries if host is down # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional #*.* @@remote-host:514 # ### end of the forwarding rule ### # A template to for higher precision timestamps + severity logging $template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-te xt%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n" :programname, startswith, "spice-vdagent" /var/log/spice-vdagent.log;SpiceTmpl