2011/05/16

[Linux][軟體] 使用 Logwatch 檢查系統日誌的重點 (懶人請用範例檔)

說到 logwatch ,雖然我已經用了很久,但是還從來沒有寫過一篇關於它的文章,所以這篇將會提到以下的煩惱:


  • 每天看 system log,是人也會瘋掉。
  • syetem log 很多,很煩,很討厭,所以很多人都不想看。
  • system log 不能連線看就只能寄 email ,寄 email 還要裝 postfix 或 sendmail 這個服務正是最容易被入侵的服務之一,為了防杜入侵結果反而造成入侵,這是本末倒置的事情。


所以這篇記錄有 3 個重點:

  1. 找出系統日誌(system log)的重點
  2. 決定多久送一次系統日誌摘要就好
  3. 改用 gmail 來送 email
logwatch 預設的 config 檔放在:/etc/logwatch/logwatch.conf
預設的 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 幫你透過 Gmail 送信
這個方法需要先安裝 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

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...