- 每天看 system log,是人也會瘋掉。
- syetem log 很多,很煩,很討厭,所以很多人都不想看。
- system log 不能連線看就只能寄 email ,寄 email 還要裝 postfix 或 sendmail 這個服務正是最容易被入侵的服務之一,為了防杜入侵結果反而造成入侵,這是本末倒置的事情。
所以這篇記錄有 3 個重點:
- 找出系統日誌(system log)的重點
- 決定多久送一次系統日誌摘要就好
- 改用 gmail 來送 email
預設的 config option 很多很煩,所以簡短一點就變成下面的樣子:
LogDir = /var/log
TmpDir = /var/cache/logwatch
MailTo = your_email
MailFrom = Lunar
Print = No
Range = yesterday
Detail = Low
Service = All
Service = "-zz-network"
mailer = "mail.php your_email -s LogWatch"
設定 Logwatch 的 config 檔
- Service 可以填入不要檢查的 service 名稱,這樣就不會一堆落落長的 log 內容每天去煩你。
- MailTo 改成你的信箱地址
- Range 改成你想要檢查的時間範圍
- mailer 這邊改成我們用 phpmailer 偽裝的送信指令
這個方法需要先安裝 phpmailer ,在 debian/ubuntu 底下都可以使用 apt-get install 來安裝這個套件,接著就是下載我參考資料有列出來的 範例檔 逕自修改就可以不用特地為了看 log 來跑一個 sendmail 服務。
重點就紅線框起來的地方而已,請換成你的 gmail 帳號﹑密碼就好,logwatch 會走 stdin 塞資料進來,所以範例程式後面有處理一下 stdin 的部份。
最後,不要忘記在 crontab 裡面加入 logwatch 的服務,通常會在 /etc/cron.daily/ 底下加入一個 00logwatch 的 script (有執行權 x),內容會像是:
#!/bin/bash
#Check if removed-but-not-purged
test -x /usr/share/logwatch/scripts/logwatch.pl || exit 0
#execute
/usr/sbin/logwatch --output mail
#Note: It's possible to force the recipient in above command
#Just pass --mailto address@a.com instead of --output mail
--
參考資料:
1 則留言:
大大請問一下:
1.phpmailer利用gmail寄信時,你提供的範例檔mail.php修改完後,請問要把這個檔案放在哪?
2.最後,不要忘記在 crontab 裡面加入 logwatch 的服務,通常會在 /etc/cron.daily/ 底下加入一個 00logwatch 的 script (有執行權 x)-----請問這段話,是要用什麼指令來完成?
謝謝您
mysamakimo@yahoo.com.tw
張貼留言