配置rsyslog,實(shí)現(xiàn)設(shè)備日志的集中管理這次為了把交換機(jī)及路由器的日志文件集中放置,并方便調(diào)試,安裝了rsyslog,并對(duì)其進(jìn)行配置,使其可記錄網(wǎng)絡(luò)設(shè)備傳來(lái)的syslog,并將之存入 Mysql數(shù)據(jù)中,以便我們集中管理,下面是具體的配置過(guò)程: 1,、首先從www./下載并安裝最新版本的 rsyslog 2,、安裝時(shí)很容易 (1)把源代碼解壓,并進(jìn)入源代碼樹(shù)中執(zhí)行: ./configure --enable-mysql 這里要注意,,你的mysql要安裝正確,,特別是版本,比如我的mysql版本是:5.0.22,,系統(tǒng)是redhat,那么我就要安裝有MySQL- client-standard-5.0.22-0.rhel4.i386.rpm,,總之如果這一步執(zhí)行出錯(cuò),比如我的剛開(kāi)始是提示錯(cuò) 誤:checking for mysql_init in -lmysqlclient 在這一步有問(wèn)題,,后來(lái)重新安裝了MySQL-client-standard-5.0.22-0.rhel4.i386.rpm就ok了 (2)依次執(zhí)行:make和make install就ok 3,、配置rsyslog.conf 在源代碼樹(shù)下有一個(gè)示例文件,把它拷貝到/etc下 (1)如果你要接受遠(yuǎn)程設(shè)備的syslog則要把以下三行的#去掉: # UDP Syslog Server: 并同時(shí)在iptables中開(kāi)放514端口 (2)配置rsyslog自動(dòng)啟動(dòng) 由于rsyslog沒(méi)有為redhat準(zhǔn)備啟動(dòng)腳本,,所以要我們自己建,,其實(shí)也很簡(jiǎn)單,我直接把syslog的啟動(dòng)腳本改了下,,把里面的syslog改為 rsyslog,如下所示: more /etc/init.d/syslog #!/bin/bash # Source function library. [ -f /usr/local/sbin/rsyslogd ] || exit 0 # Source config RETVAL=0
case "$1" in exit $?
就只改了一點(diǎn)點(diǎn),,名字也沒(méi)變,這樣出不用ln來(lái)建鏈接了,,都用原來(lái)的 (3)記錄到mysql 如果要使用sql來(lái)記錄日志則先要建表,,找到rsyslog-3.20.0\plugins\ommysql下的createDB.sql文件,打開(kāi)它,, 把里面的建表語(yǔ)句在你的數(shù)據(jù)庫(kù)里執(zhí)行,,當(dāng)然你也可以自建一個(gè)新數(shù)據(jù)庫(kù),一切由你 之后加載mysql模塊,,當(dāng)然你一定要確認(rèn)ommysql.so在lib文件夾里存在,,如果你之前使用./configure --enable-mysql進(jìn)行配置則會(huì)在/usr/local/lib/rsyslog下存在ommysql.so文件(操作系統(tǒng)不同,目錄可能不一 樣),然后在rsyslog.conf文件中加上: $ModLoad ommysql local4.* :ommysql:127.0.0.1,yourdb,yourname,yourpass; 注意我是local4來(lái)接受遠(yuǎn)程的syslog 在交換機(jī)上的配置: 華為的: info-center loghost 1.1.1.1 facility local4 //local4要和rsyslog.conf 里配置的一致,1.1.1.1為你的syslog服務(wù)器地址記得要改啊 思科的: logging 1.1.1.1(配置 syslog服務(wù)器地址,可以定義多個(gè)) 到這里,,一切基本ok了, 到你的mysql服務(wù)器是看看: select * from SystemEvents 應(yīng)該已經(jīng)記錄有日志了 但這里還有個(gè)小bug,,我們會(huì)發(fā)現(xiàn)fromhost的這個(gè)字段不對(duì),,并不是你的交換機(jī)的地址,這是rsyslog的一個(gè)bug,,怎么解決,??請(qǐng)參考:http://kb./viewtopic.php?f=36&t=1754, 而我的解決方案是自定義模板,,而不能用其默認(rèn)的模板了,!我定義了一個(gè)模板:MySQLInsert并用它來(lái)執(zhí)行sql語(yǔ)句,關(guān)于模板的概念,,請(qǐng)參考http://www./doc-rsyslog_conf.html這 里有詳細(xì)的解釋 參考我的rsyslog.conf: # UDP Syslog Server: local4.* :ommysql:127.0.0.1,syslogdatabase,syslogusername,syslogpass;MySQLInsert 注意我使用了%fromhost-ip%,,而不是%HOSTNAME% 好了,基本上就這樣了,,以上就是我配置rsyslog的一些經(jīng)過(guò),,希望對(duì)大家有幫助 |
|