三個日志管理工具
1、logrotate
一般的 Linux 發(fā)行版中都自帶這個工具。日志文件過大如何處理是一個問題。它可以自動使日志循環(huán),刪除保存最久的日志。你可以把它放在 crontab 中,每天定期運行。這在很多 linux 發(fā)行版中都是缺省設(shè)置的。
您可以從下面的網(wǎng)址獲得新版本的 logrotate:ftp://ftp.redhat.com/pub/redhat
它的配置文件是 /etc/logrotate.conf 我們可以在這個文件中設(shè)置日志的循環(huán)周期,日志的備份數(shù)目,以及如何備份日志等等。
在 /etc/logrotate.d 目錄下包括一些工具的日志循環(huán)設(shè)置文件。例如:syslog,samba,cron 等等,在這些文件中指定如何根據(jù) /etc/logrotate.conf 做日志循環(huán),您也可以在這里面添加其他的文件以循環(huán)其他服務(wù)的日志。
關(guān)于配置文件的詳細(xì)信息您可以參閱 man logrotate。
最后還是提醒您使用 cron 運行 logrotate。
2、swatch
swatch 是一個實時的日志監(jiān)控工具。您可以設(shè)置您所感興趣的事件,它可以在事件發(fā)生的時候告訴您。Swatch 有兩種運行方式:一種可以在檢查日志完畢退出,另一種可以連續(xù)監(jiān)視日志中的新信息。
Swatch 提供了許多通知方式,例如:email,振鈴,終端輸出,多種顏色等等。
您可以從下面的站點下載:ftp://ftp.stanford.edu/general/security-tools/swatch/
swatch 的安裝需要一些 perl 庫的支持,安裝前確信您的系統(tǒng)已經(jīng)可以支持 perl。
Swatch 可以在命令行中進(jìn)行一些簡單的設(shè)置,例如日志循環(huán)時告訴 swatch 在循環(huán)完畢后重新啟動等等。
配置文件 swatchmessage 是 swatch 軟件的重點。這個文本文件告訴 swatch 需要監(jiān)視什么日志,需要尋找什么觸發(fā)器,和當(dāng)觸發(fā)時所要執(zhí)行的動作。當(dāng) swatch 發(fā)現(xiàn)到與 swatchmessage 中定義的觸發(fā)器正則表達(dá)式相符時,它將執(zhí)行在 swatchrc 中定義的通知程序。Swatch 通過使用/usr/bin/tail -f 實時監(jiān)視日志文件。
在這里我們不想過多的將如何配置,配置 swatch 非常簡單,您可以參考 swatch 自帶的配置文件。針對每個服務(wù)例如:ftp,sendmail 等等,你必須為每個您所關(guān)心的服務(wù)配置一個 swatchmessage 文件。
Swatch 啟動時可以帶很多參數(shù),但使用通常如下格式啟動它就可以了:
/usr/local/bin/swatch -c /var/log/syslogmessage -t /var/log/syslog -r 06:00&
-c 參數(shù)用于指定配置文件,-t 參數(shù)指定實時監(jiān)視的日志文件,-r 指定重起的時間,"&" 使 swatch 在后臺運行。啟動后,swatch 產(chǎn)生子進(jìn)程,因此 swatch 是以兩個進(jìn)程運行的,在停止 swatch 時必須殺掉兩個進(jìn)程。
也可以通過 logrotate 配置在日志循環(huán)后重起 swatch,可以在 /etc/logrotate.d 建立一個您所要關(guān)心的日志的循環(huán)文件,其中最關(guān)鍵的是要加入下面這行:
/usr/local/bin/swatch -c /var/log/syslogmessage -t /var/log/syslog -r + 0
其他的地方可以仿造別的同目錄下的文件。'
3、logcheck
審核和記錄系統(tǒng)的事件是非常重要的。特別是當(dāng)你的計算機(jī)連接到 Internet 上之后,系統(tǒng)管理員如果對"異常"的事件保持警覺,就能防止系統(tǒng)被入侵。在 Unix 系統(tǒng)中如果僅僅把系統(tǒng)事件作為日志記錄下來,而不去查看,還是無濟(jì)于事。
logchek 可以自動地檢查日志文件,先把正常的日志信息剔除掉,把一些有問題的日志保留下來,然后把這些信息 email 給系統(tǒng)管理員。Logcheck 被設(shè)計成自動運行,定期檢查日志文件以發(fā)現(xiàn)違反安全規(guī)則以及異常的活動。logcheck 用 logtail 程序記住上次已經(jīng)讀過的日志文件的位置,然后從這個位置開始處理新的日志信息。
可以在下面的站點獲得 logcheck:http://www.psionic.com/abacus/logcheck/
logcheck 主要由下面幾個主要的文件:
1、logcheck.sh
這個是一個可執(zhí)行的腳本文件,里面記錄 logcheck 檢查那些日志文件等 logcheck 運作所必須的信息。您可以把它加入 crontab 中定時運行。
2、logcheck.hacking
它和下面的三個文件一樣,是 logcheck 檢查的模式文件。他們四個文件按從上到下的順序執(zhí)行。這個文件表明了入侵活動的模式。
3、logcheck.violations
這個文件表示有問題,違背常理的活動的模式。優(yōu)先級小于上面的那個模式文件。
4、logcheck.violations.ignore
這個文件和上面的 logcheck.violations 是相對的,是您所不關(guān)心的問題的模式文件。
5、logcheck.ignore
這是檢查的最后一個模式文件。如果沒有和前三個模式文件匹配,也沒有匹配這個模式文件的話,則輸出到報告中。
6、logtail
這個文件記錄日志文件信息。
Logcheck首次運行時讀入相關(guān)的日志文件的所有內(nèi)容。Logtail 在日志文件的目錄下為每個關(guān)心的日志文件建立一個 logfile.offset 的偏移量文件,以便于下次檢查時從這個偏移量開始檢查。Logcheck 執(zhí)行時未被忽略的內(nèi)容通過郵件的形式發(fā)送給 logcheck.sh 中 SYSADMIN 指定的用戶。
Logcheck 的通知沒有那么實時,但是相對于 swatch 它更適合于分布式日志文件系統(tǒng)。因為它不必為每個日志文件建立一個進(jìn)程。在 Turbolinux 中就集成了 logcheck 工具。


