配置linux syslog日誌伺服器 目前,linux依舊使用syslogd作為日誌監控程序,而在主流的linux發行版中依舊使用syslog這個比較老的日誌伺服器套件。對syslog進行必要的配置能減少很多麻煩,並且可更有效的從系統日誌監控到系統的狀態。理解並完善乙個syslog的配置,對於系統管理員來說顯得尤為重要。
一、配置檔案
以紅旗dc server 5.0為例,預設的日誌伺服器就是sysklog套件:# rpm -qa|grep sysklogd
sysklogd-1.4.1-26_el
其主要的配置檔案有兩個:
/etc/sysconfig/syslog這裡定義syslog服務啟動時可加入的引數。
/etc/syslog.conf這個是syslog服務的主要配置檔案,根據定義的規則導向日誌資訊。
二、設定主配置檔案
/etc/syslog.conf根據如下的格式定義規則:
facility.level action
裝置.優先順序 動作facility.level 欄位也被稱為seletor(選擇條件),選擇條件和動作之間用空格或tab分割開。
#號開頭的是注釋,空白行會自動跳過。
1、facility
facility定義日誌訊息的範圍,其可使用的key有:auth -由 pam_pwdb 報告的認證活動。
authpriv -包括特權資訊如使用者名稱在內的認證活動
cron -與 cron 和 at 有關的計畫任務資訊。
daemon -與 inetd 守護程序有關的後台程序資訊。
kern -核心資訊,首先通過 klogd 傳遞。
lpr -與列印服務有關的資訊。
mail -與電子郵件有關的資訊
mark - syslog內部功能用於生成時間戳
news -來自新聞伺服器的資訊
syslog -由 syslog 生成的資訊
user -由使用者程式生成的資訊
uucp -由 uucp 生成的資訊
local0-local7 -與自定義程式使用
* 萬用字元代表除了 mark 以外的所有功能除mark為內部使用外,還有security為乙個舊的key定義,等同於auth,已經不再建議使用。
2、level級別
level定義訊息的緊急程度。按嚴重程度由高到低順序排列為:emerg -該系統不可用,等同panic
alert -需要立即被修改的條件
crit -阻止某些工具或子系統功能實現的錯誤條件
err -阻止工具或某些子系統部分功能實現的錯誤條件,等同error
warning -預警資訊,等同warn
notice -具有重要性的普通條件
info -提供資訊的訊息
debug -不包含函式條件或問題的其他資訊
none -沒有重要級,通常用於排錯
* 所有級別,除了none其中,panic、error、warn均為舊的識別符號,不再建議使用。
在定義level級別的時候,需要注意兩點:1)優先順序是由應用程式在程式設計的時候已經決定的,除非修改原始碼再編譯,否則不能改變訊息的優先順序;
2)低的優先順序包含高優先順序,例如,為某個應用程式定義info的日誌導向,則涵蓋notice、warning、err、crit、alert、emerg等訊息。(除非使用=號定義)3、selector選擇條件
通過小數點符號「.」把facility和level連線在一起則成為selector(選擇條件)。
可以使用分號「;」同時定義多個選擇條件。也支援三個修飾符:* - 所有日誌資訊
= 等於,即僅包含本優先順序的日誌資訊
! = 不等於,本優先順序日誌資訊除外
4、action動作
由前面選擇條件定義的日誌資訊,可執行下面的動作:file-指定日誌檔案的絕對路徑
terminal 或 print -傳送到序列或並行裝置標誌符,例如/dev/ttys2
@host -遠端的日誌伺服器
username -傳送資訊本機的指定使用者資訊視窗中,但該使用者必須已經登陸到系統中
named pipe -傳送到預先使用 mkfifo 命令來建立的 fifo 檔案的絕對路徑※注意,不能通過「|/var/***.sh」方式導向日誌到其他指令碼中處理。
5、舉例
例如:*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
#把除郵件、新聞組、授權資訊、計畫任務等外的所有通知性訊息都寫入messages檔案中。
mail,news.=info /var/adm/info
#把郵件、新聞組中僅通知性訊息寫入info檔案,其他資訊不寫入。
mail.*;mail.!=info /var/adm/mail
#把郵件的除通知性訊息外都寫入mail檔案中。
mail.=info /dev/tty12
#僅把郵件的通知性訊息傳送到tty12終端裝置
*.alert root,joey
#如果root和joey使用者已經登陸到系統,則把所有緊急資訊通知他們
*.* @finlandia
#把所有資訊都導向到finlandia主機(通過/etc/hosts或dns解析其ip位址)
※注意:每條訊息均會經過所有規則的,並不是唯一匹配的。
也就是說,假設mail.=info資訊通過上面範例中定義的規則時,/var/adm/info、/var/adm/mail、/dev/tty12,甚至finalandia主機都會收到相同的資訊。
這樣看上去比較煩瑣,但可以帶來的好處就是保證了資訊的完整性,可供不同地方進行分析。
6、測試
部分情況下,上述規的實際執行結果和定義的預想結果可能會有出入。這時,可使用logger程式輔助測試:
# logger -p user.notice 'hello world!'
日誌顯示:
nov 12 13:40:04 dc5test root: hello world!
其表示意思如下:
第一列:日誌產生時間
第二列:產生此日誌的主機名稱
第三列:產生此日誌的應用程式或使用者名稱
第四列:日誌資訊7、自定義日誌級別
正如前面所說的,應用程式的日誌級別是由應用程式所決定的。部分應用程式可通過配置,定義其日誌級別。
例如,/etc/ssh/sshd_config檔案中就有:#
syslogfacility auth
syslogfacility authpriv
#loglevel info
把sshd的日誌定義在authpriv.info級別。
配合syslog.conf中的:
authpriv.* /var/log/secure
則日誌檔案被寫入/var/log/secure檔案中。
我們修改為:syslogfacility local0
配合在syslog.conf中增加:
local0.* /var/log/sshd.log
儲存後,重新啟動sshd或syslog服務,則以後sshd服務的所有日誌都會單獨的放到 sshd.log檔案中了。
三、設定服務引數
預設情況下,syslog程序是不能接受其他日誌伺服器發過來的訊息的。而通過修改其啟動引數,可實現日誌的大集中功能。
修改/etc/sysconfig/syslog檔案:
-r : 開啟接受外來日誌訊息的功能,其監控514 udp埠;
-x : 關閉自動解析對方日誌伺服器的fqdn資訊,這能避免dns不完整所帶來的麻煩;
-m : 修改syslog的內部mark訊息寫入間隔時間(0為關閉),例如240為每隔240分鐘寫入一次「--mark--」資訊;
-h :預設情況下,syslog不會傳送從遠端接受過來的訊息到其他主機,而使用該選項,則把該開關開啟,所有接受到的資訊都可根據syslog.conf中定義的@主機**過去。
通過man syslogd可獲得更詳細的幫助,
而具體到實際配置檔案改為:
syslogd_options="-r-x-m 0"
儲存後,重啟服務即可:
# service syslog restart
此時,客戶機只要通過修改syslog.conf,在最後定義動作為@主機或ip,即可傳送日誌資訊到本伺服器中。
*.* @192.168.22.100
這地方也可以用 @name 不過這個name要在 /etc/hosts 中指定ip位址
(在構建集中的日誌伺服器時,請務必配合ntp時間服務,以保證資訊的有效性,避免不必要的麻煩)
另外,/etc/sysconfig/syslog配置檔案中,還定義有klogd服務的啟動引數:
klogd_options="-x"詳細幫助,請參考man 8 klogd或man klogd。
Linux syslog日誌伺服器架設攻略
從目前的情況來看,syslog 系統日誌 這一歷史悠久的日誌系統仍舊佔據著最主流的地位。由於與類 unix平台之間的淵源,syslog是在實際應用環境中最容易獲得的日誌系統。同時,還有很多的基於syslog的擴充套件產品存在,這其中也包括大量基於unix平台構建核心的網路硬體裝置,這些裝置往往都內建...
linux syslog日誌伺服器的搭建
首先我們知道日誌是什麼,日誌毫無疑問就跟我們寫日記一樣記錄我們每天做的一些事情,那麼日誌對於一台伺服器而言是至關重要的,比如說我們搭建服務的時候,服務起不來也沒提示錯誤資訊,那麼這個時候就可以檢視日誌來排錯了,還記錄了伺服器的運 況已經入侵記錄等等.那麼我們知道一台伺服器的日誌預設是存放在本地的對於...
linux syslog 呼叫介面
在實際的使用過程中,我們可以通過配置檔案和檢視相應的日誌檔案來使用syslog。然而,在許多應用場景下,我們往往需要通過程式產生輸出資訊並進行記錄,也就是說要把一些資訊寫成日誌檔案,正常情況下執行程式的人不用關心日誌裡的內容,只有在出現問題的時候才會檢視日誌檔案裡的內容以確定問題所在。因此,下面將詳...