配置Linux的Syslog服務來記錄Cisco路由器的日志(基本配置)

來源:本站原創 Linux 超過852 views圍觀 0條評論

路由器的配置:

interface Ethernet0/0
ip address 192.168.1.2 255.255.255.0
!
logging 192.168.1.1
logging facility local0           //
配置日志存儲的facility ,默認是local7,可以修改為其他,但推薦保存為local開頭的facility里
logging trap debugging      //配置要發送到日志服務器的日志優先級,默認發送到日志服務器的優先級為Info

Linux服務器配置:

1、在/var/log目錄下新建Cisco.log文件
2、在/etc/syslog.conf
增加:

# Cisco syslog messages
local0.* /var/log/Cisco.log                   //配置local0優先級記錄的位置

3、在/etc/sysconfig/syslog文件
修改:

SYSLOGD_OPTIONS=”-r -x -m 0″       //配置服務器接收來自外部的log日志消息

4、重啟Syslog服務,使新的配置生效:

[[email protected] /]#service syslog restart

注意:

  • Ubantu7.1的syslog文件為/etc/default/syslogd
  • Syslog服務名為sysklogd,重啟Syslog服務的命令為:service sysklogd restart

附(轉):配置linux syslog日志服務器

目前,linux依舊使用syslogd作為日志監控進程,而在主流的linux發行版中依舊使用sysklog這個比較老的日志服務器套件。

一、配置文件

默認的日志服務器就是sysklogd套件:

主要的配置文件有兩個:

/etc/sysconfig/syslog      定義syslog服務啟動時可加入的參數

/etc/syslog.conf              這個是syslog服務的主要配置文件,根據定義的規則導向日志信息。

二、設置主配置文件

/etc/syslog.conf根據如下的格式定義規則:

facility.level action
設備.優先級 動作

facility.level 字段也被稱為seletor(選擇條件),選擇條件和動作之間用空格或tab分割開。
#號開頭的是注釋,空白行會自動跳過。

1、facility

facility定義日志消息的范圍,其可使用的key有:

auth -由 pam_wdb 報告的認證活動。
authriv -包括特權信息如用戶名在內的認證活動
cron -與 cron 和 at 有關的計劃任務信息。
daemon -與 inetd 守護進程有關的后臺進程信息。
kern -內核信息,首先通過 klogd 傳遞。
lr -與打印服務有關的信息。
mail -與電子郵件有關的信息
mark - syslog內部功能用于生成時間戳
news -來自新聞服務器的信息
syslog -由 syslog 生成的信息
user -由用戶程序生成的信息
uuc -由 uuc 生成的信息
local0-local7 -與自定義程序使用
* 通配符代表除了 mark 以外的所有功能

除mark為內部使用外,還有security為一個舊的key定義,等同于auth,已經不再建議使用。

2、level級別

level定義消息的緊急程度。按嚴重程度由高到低順序排列為:

emerg -該系統不可用,等同anic                                                     (severity=0)
alert -需要立即被修改的條件                                                           (severity=1)
crit -阻止某些工具或子系統功能實現的錯誤條件                              (severity=2)
err -阻止工具或某些子系統部分功能實現的錯誤條件,等同error     (severity=3)
warning -預警信息,等同warn                                                         (severity=4)
notice -具有重要性的普通條件                                                         (severity=5)
info -提供信息的消息                                                                       (severity=6)
debug -不包含函數條件或問題的其他信息                                        (severity=7)
none -沒有重要級,通常用于排錯
* 所有級別,除了none

其中,anic、error、warn均為舊的標識符,不再建議使用。

在定義level級別的時候,需要注意兩點:

  • 優先級是由應用程序在編程的時候已經決定的,除非修改源碼再編譯,否則不能改變消息的優先級
  • 低的優先級包含高優先級,例如,為某個應用程序定義info的日志導向,則涵蓋notice、warning、err、crit、alert、emerg等消息。(除非使用=號定義)

3、selector選擇條件

  • 通過小數點符號“.”把facility和level連接在一起則成為selector(選擇條件)。
  • 可以使用分號“;”同時定義多個選擇條件。
  • 也支持三個修飾符:

* - 所有日志信息
= - 等于,即僅包含本優先級的日志信息
! - 不等于,本優先級日志信息除外

4、action動作

由前面選擇條件定義的日志信息,可執行下面的動作:

file-指定日志文件的絕對路徑
terminal 或 rint -發送到串行或并行設備標志符,例如/dev/ttyS2
@host -遠程的日志服務器
username -發送信息本機的指定用戶信息窗口中,但該用戶必須已經登陸到系統中
named ie -發送到預先使用 mkfifo 命令來創建的 FIFO 文件的絕對路徑

注意:

  • 不能通過“|/var/xxx.sh”方式導向日志到其他腳本中處理

5、舉例

*.info;mail.none;news.none;authriv.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 – 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的日志定義在authriv.info級別。配合syslog.conf中的:

authriv.* /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,即可發送日志信息到本服務器中。
(在構建集中的日志服務器時,請務必配合nt時間服務,以保證信息的有效性,避免不必要的麻煩)
另外,/etc/sysconfig/syslog配置文件中,還定義有klogd服務的啟動參數:

KLOGD_OPTIONS=”-x”

詳細幫助,請參考man 8 klogd或man klogd。

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=327轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
  • 相關文章
  • 為您推薦
  • 各種觀點
?
暫時還木有人評論,坐等沙發!
發表評論

您必須 [ 登錄 ] 才能發表留言!

?
?
萌宠夺宝游戏