日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Syslog系统日志配置

發布時間:2024/2/28 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Syslog系统日志配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux保存了系統中所發生事件的詳細記錄,這些記錄稱作日志文件或消息文件。可以查閱日志文件來確定系統當前狀態,觀察入侵者蹤跡,尋找某特定程序(或事件)相關的數據。syslogd與klogd(監控linux內核提交的消息)守護進程負責記錄,發送系統或工具產生的信息,二者的配置文件都是/etc/syslog.conf。當系統內核或工具產生信息時,通過調用相關函數將信息發送到syslogd或klogd守護進程。syslogd與klogd守護進程會根據/etc/syslog.conf中的配置信息,對消息的去向作出處理。syslog協議的詳細描述在RFC3164中。
????logrotate工具用來定期重命名、壓縮、郵遞系統日志文件,它可以保證日志文件不會占用太大的磁盤空間。
????1、配置文件/etc/syslog.conf:?syslog.conf是syslogd進程的配置文件,將在程序啟動時讀取,默認位置是/etc/syslog.conf。這個配置文件中的空白行和以"#"開頭的行將被忽略。"facility.level"部分也被稱為選擇符(seletor)。 seletor和action之間使用一個或多個空白分隔。它指定了一系列日志記錄規則。規則的格式如下:
????facility.level????action
????選擇符(seletor)由facility和level兩部分組成,之間用一個句點(.)連接。
????(1)facility:指定了產生日志的設備,可以是下面的關鍵字之一:
關鍵字???????????????????值????????????解釋
kern????????????????0??????????內核信息,首先通過klogd傳遞
user????????????????1??????????由用戶程序生成的信息
mail????????????????2??????????與電子郵件有關的信息
daemon??????????????3??????????與inetd守護進程有關的信息
auth????????????????4??????????由pam_pwdb報告的認證活動
syslog??????????????5??????????由syslog生成的信息
lpr?????????????????6??????????與打印服務有關的信息
news????????????????7??????????來自新聞服務器的信息
uucp????????????????8??????????由uucp生成的信息(uucp = unix to unix copy)
cron????????????????9??????????與cron和at有關的信息
authpriv????????????10?????????包括私有信息(如用戶名)在內的認證活動
ftp?????????????????11?????????與FTP有關的信息
????????????????????12-15??????系統保留
local0 ~ local7?????16-23??????由自定義程序使用,例如使用local5做為ssh功能
mark???????????????????????????syslog內部功能,用于生成時間戳
*??????????????????????????????通配符代表除了mark以外的所有功能
????在大多數情況下,任何程序都可以通過任何facility發送日志消息,但是一般都遵守約定俗成的規則。比如,只有內核才能使用"kern"facility。注意syslog保留從“local0”到“local7”這幾個設備號來接受從遠程服務器和網絡設備上發送過來的日志信息。路由器,交換機,防火墻和負載均衡器都很容易給它們各自配置一個獨立的日志文件。
????(2)level:指定了消息的優先級,可以是下面的關鍵字之一(降序排列,嚴重性越來越低):
關鍵字????????????????????值?????????解釋
emerg????????????????0????????系統不可用
alert????????????????1????????需要立即被修改的條件
crit?????????????????2????????(臨界)阻止某些工具或子系統功能實現的錯誤條件
err??????????????????3????????阻止工具或某些子系統部分功能實現的錯誤條件
warning??????????????4????????預警信息
notice???????????????5????????具有重要性的普通條件
info?????????????????6????????提供信息的消息
debug????????????????7????????不包含函數條件或問題的其他信息
none??????????????????????????(屏蔽所有來自指定設備的消息)沒有優先級,通常用于排錯
*?????????????????????????????除了none之外的所有級別
????facility部分可以是用逗號(,)分隔的多個設備,而多個seletor之間也可以通過分號(;)組合在一起。注意多個組合在一起的選擇符,后面的會覆蓋前面的,這樣就允許從模式中排除一些優先級。默認將對指定級別以及更嚴重級別的消息進行操作,但是可以通過2個操作符進行修改。等于操作符(=)表示僅對這個級別的消息進行操作,不等操作符(!)表示忽略這個級別以及更嚴重級別的消息。這兩個操作符可以同時使用,不過"!"必須出現在"="的前面。
????(3)動作action:動作確定了syslogd與klogd守護進程將日志消息發送到什么地方去。有以下幾種選擇:
????普通文件:使用文件的絕對路徑來指明日志文件所在的位置,例如:/var/log/cron。
????終端設備:終端可以是/dev/tty0~/dev/tty6,也可以為/dev/console。
????用戶列表:例如動作為“root hackbutter”,將消息寫入到用戶root與hackbutter的計算機屏幕上。
????遠程主機:將信息發往網絡中的其他主機的syslogd守護進程,格式為“@hostname”。
????(4)配置文件的語法說明:
????*用作設備或優先級時,可以匹配所有的設備或優先級。
????*用作動作時,將消息發送給所有的登錄用戶。
?????多個選擇器可在同一行中,并使用分號分隔開,且后面的會覆蓋前面的。如uucp,news.crit。
?????關鍵字none用作優先級時,會屏蔽所有來自指定設備的消息。
?????通過使用相同的選擇器和不同的動作,同一消息可以記錄到多個位置。
????syslog.conf文件中后面的配置行不會覆蓋前面的配置行,每一行指定的動作都獨立的運作。
????(5)我的Ubuntu中默認的/etc/syslog.conf內容:

?

[python]?view plaincopy

  • #?/etc/syslog.conf??syslogd的配置文件??
  • #?更多信息參考syslog.conf(5)??
  • #??
  • #?首先是一些標準的日志文件,消息由相應設備發送??
  • #??
  • #?認證活動auth,authpriv的日志消息發送到auth.log中??
  • auth,authpriv.*?????????/var/log/auth.log??
  • #?除auth和authpriv之外的所有設備的所有消息都要發送到syslog中??
  • *.*;auth,authpriv.none??????-/var/log/syslog??
  • #?cron及at的消息發送到cron.log??
  • #cron.*?????????????/var/log/cron.log??
  • #?inetd的所有消息發送到daemon.log??
  • daemon.*????????????-/var/log/daemon.log??
  • #?內核的所有消息(如klogd的消息)發送到kernlog??
  • kern.*??????????????-/var/log/kern.log??
  • #?打印服務的所有消息發送到lpr.log??
  • lpr.*???????????????-/var/log/lpr.log??
  • #?郵件的所有消息發送到mail.log??
  • mail.*??????????????-/var/log/mail.log??
  • #?用戶程序的所有消息發送到user.log??
  • user.*??????????????-/var/log/user.log??
  • #??
  • #?郵件系統的日志記錄。分割成不同的文件,以便能夠比較容易地寫腳本來??
  • #?解析這些文件??
  • #??
  • #?郵件的info或更高級別的消息發送到mail.info,warn更高級別的消息發送到mail.warn,??
  • #?err或更高級別的消息發送到mail.err??
  • mail.info???????????-/var/log/mail.info??
  • mail.warn???????????-/var/log/mail.warn??
  • mail.err????????????/var/log/mail.err??
  • #?INN新聞系統的日志記錄:來自新聞服務器的消息??
  • #??
  • news.crit???????????/var/log/news/news.crit??
  • news.err????????????/var/log/news/news.err??
  • news.notice?????????-/var/log/news/news.notice??
  • #??
  • #?一些捕捉用的日志文件??
  • #??
  • #?除auth,authpriv,news,mail之外的所有設備的debug級別消息都要發送到debug中??
  • *.=debug;/??
  • ????auth,authpriv.none;/??
  • ????news.none;mail.none?-/var/log/debug??
  • #?除auth,authpriv,cron,daemon,mail,news之外的所有設備的info,notice,??
  • #?warn級別消息都要發送到messages中??
  • *.=info;*.=notice;*.=warn;/??
  • ????auth,authpriv.none;/??
  • ????cron,daemon.none;/??
  • ????mail,news.none??????-/var/log/messages??
  • #??
  • #?所有設備的emerg級別消息(系統無法使用)會發送給所有登錄的用戶??
  • #??
  • *.emerg?????????????*??
  • #??
  • #?希望一些消息顯示在控制臺,但只在虛擬控制臺上:daemon,mail的任何消息;news的危險、??
  • #?錯誤、通知消息;任何設備的調試、信息、通知、預警消息??
  • #??
  • #daemon,mail.*;/??
  • #???news.=crit;news.=err;news.=notice;/??
  • #???*.=debug;*.=info;/??
  • #???*.=notice;*.=warn???/dev/tty8??
  • #?命名管道/dev/xconsole用于xconsloe工具。為了使用它,你必須帶-file選項來調用xconsole??
  • #????$?xconsole?-file?/dev/xconsole?[...]??
  • #?注意:調整下面的列表,否則如果你有一個相當繁忙的站點,你將變得發狂??
  • daemon.*;mail.*;/??
  • ????news.err;/??
  • ????*.=debug;*.=info;/??
  • ????*.=notice;*.=warn???|/dev/xconsole??
  • ????某些應用軟件也會將自己的運行狀況記錄到特定的日志文件上,它不受syslog.conf文件的控制。如文件/var/log/apache2/access.log,目錄/var/log/apache2, /var/log/cups, /var/log/gdm, /var/log/mysql,/var/log/samba等。
    ????修改完/etc/syslog.conf后,可用service syslog restart重啟syslog服務,Debian/Ubuntu中則用sudo /etc/init.d/sysklogd restart。查看日志文件里最新的記錄可用tail -f /var/log/messages。
    ????2、將日志信息記錄到遠程Linux服務器上:?將你的系統信息記錄到遠程服務器上將是一個很好的安全措施。如果把公司所有的服務器的日志信息都記錄到一個集中的syslog服務器上,這將會方便你管理各個服務器中發生的相關事件。這也會使得掩蓋錯誤和惡意攻擊變得更困難,因為對各個日志文件的惡意刪除在日志服務器上不能同時發生,特別是當你限制用戶訪問日志服務器時。
    ????配置Syslog服務器:在默認情況下,syslog并不會接受遠程客戶端的信息,要激活它,RedHat/Fedora中需要修改/etc/sysconfig/syslog文件,在SYSLOGD_OPTIONS參數中增加-r選項,以允許記錄遠程機器的信息。Debian/Ubuntu中則是修改/etc/default/syslogd文件中的SYSLOGD參數,也可直接編輯syslog啟動腳本/etc/init.d/sysklogd,將SYSLOGD的參數定義為“-r”。修改完后要重啟syslog服務。
    ????配置客戶端:syslog服務器現在可以接受syslog信息了。你還要設置好遠程linux客戶端以向服務器發送信息。假設客戶端主機名為smallfry,可通過編輯/etc/hosts文件來實現。
    ????(1)確定遠程服務器的IP地址和有效的域名。
    ????(2)在客戶端班機的/etc/hosts文件中加入遠程服務器的描述:IP地址 完整域名 服務器名 “別名”,例如192.168.1.100 bigboy.my-site.com bigboy loghost,這樣為服務器主機bigboy設置了一個別名loghost。
    ????(3)編輯客戶端的/etc/syslog.conf文件,使得syslog信息能發送到你新設置的日志服務器loghost上。
    *.debug @loghost
    *.debug /var/log/messages
    ????重啟syslog服務,現在你的機器將會將所有“調試”級別及以上級別的信息同時發送到服務器bigboy和本地文件/var/log/messeges上。你可以做個簡單測試看看syslog服務器是否在接受你的信息了。比如重啟一下lpd打印機守護進程,看看能否在服務器上看到相關日志消息。
    ????3、配置文件/etc/logrotate.conf:?它是logrotate的一般性配置文件。你可以通過它設置哪個日志文件被循環重用以及多久重用一次。可以設定的循環參數有每周(weekly)或每天(daily)。rotate參數定義保留多少份日志文件備份,create參數指定在每輪循環后就新建空的日志文件。我的Ubuntu中默認的/etc/logrotate.conf內容為:

    ?

    [python]?view plaincopy

  • #?更多細節參考"man?logrotate"??
  • #?每周循環更新日志文件??
  • weekly??
  • #?保留4份日志文件的備份,若日志文件為logfile,則其備份??
  • #?分別為logfile.0~logfile3??
  • rotate?4??
  • #?在每輪循環后創建新的空白日志文件??
  • create??
  • #?如果你想壓縮日志文件,則取消下面注釋??
  • #compress??
  • #?一些使用syslog的軟件包會把日志輪轉信息放在這個目錄下,因此要包含進來??
  • include?/etc/logrotate.d??
  • #?沒有軟件包擁有wtmp或btmp,我們將在這里輪轉??
  • /var/log/wtmp?{??
  • ????missingok???????#?如果日志文件丟失,使用下一個并且不發送任何錯誤消息??
  • ????monthly?????????#?輪轉周期為每月??
  • ????create?0664?root?utmp??#?創建新日志文件時,權限為0664,屬主為root,組為utmp??
  • ????rotate?1??
  • }??
  • /var/log/btmp?{??
  • ????missingok??
  • ????monthly??
  • ????create?0664?root?utmp??
  • ????rotate?1??
  • }??
  • #?特定于系統的日志可以在這里配置??
  • ????注意在Debian/Ubuntu系統中,/etc/cron.daily.sysklogd腳本將讀取/etc/syslog.conf文件,并根據它輪轉所有設定的日志文件。所以,對于一般的系統日志,你不必再在/etc/logrotate.d文件夾中重復設定了。因為在 /etc/cron.daily文件夾中它沒24小時便運行一次。在Fedora/Redhat系統中,這個腳本被/etc/cron.daily/logrotate取代,而且它不讀取syslog配置文件。所以,你必須在/etc/logrotate.d設置好。
    ????對logrotate的設置只有在你使用logrotate -f命令時才會生效。如果你想讓logrotate只讀取特定的配置文件而不是所有,把配置文件名作為logrotate的參數運行即可,如logrotate -f /etc/logrotate.d/syslog。如果你的網頁訪問量比較高,那么日志文件將變得異常大。你可以通過編輯logrotate.conf文件加入壓縮選項compress來實現對日志文件的壓縮。這些日志文件將用gzip來壓縮,所有的文件將會有一個.gz的擴展名。查看這些文件的內容依然很容易,因為你可以用zcat命令快速的將它們的內容顯示在屏幕上。
    ????Syslog服務器的一個缺點是沒有把不良來源的消息過濾掉。因此,當你的的服務器位于一個不安全的網絡時,使用TCP wrappers軟件或防火墻來限制可以接受的消息來源是一個明智的舉措。這將有助于限制拒絕服務攻擊的成效,這種拒絕服務攻擊的目的是填塞你的服務器的硬盤或加重其他系統資源負擔,它有可能最終導致服務器崩潰。?
    ????現在使用越來越廣泛的syslog-ng程序結合了logrotate和syslog的特性,它能給用戶提供更多的自定義功能,從功能上也更加豐富了。如果你想使用它,可到www.balabit.com上去下載安裝,其配置文件為/etc/syslog-ng/syslog-ng.conf。

    總結

    以上是生活随笔為你收集整理的Syslog系统日志配置的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。