當前位置:
首頁 > 知識 > 在 Linux 上用 Bash 腳本監控 messages 日誌

在 Linux 上用 Bash 腳本監控 messages 日誌

在 Linux 上用 Bash 腳本監控 messages 日誌


如果你只有很少的系統並且想要監視它們,那麼編寫一個小的 shell 腳本可以使你的任務變得非常簡單。

-- Magesh Maruthamuthu(作者)

目前市場上有許多開源監控工具可用於監控 Linux 系統的性能。當系統達到指定的閾值限制時,它將發送電子郵件警報。它可以監視 CPU 利用率、內存利用率、交換利用率、磁碟空間利用率等所有內容。

如果你只有很少的系統並且想要監視它們,那麼編寫一個小的 shell 腳本可以使你的任務變得非常簡單。

在本教程中,我們添加了一個 shell 腳本來監視 Linux 系統上的 messages 日誌。

我們過去添加了許多有用的 shell 腳本。如果要查看這些內容,請導航至以下鏈接。

  • 如何使用 shell 腳本監控系統的日常活動?

此腳本將檢查 /var/log/messages 文件中的 「warning「、「error」 和 「critical」,如果發現任何有關的東西,就給指定電子郵件地址發郵件。

如果伺服器有許多匹配的字元串,我們就不能經常運行這個可能填滿收件箱的腳本,我們可以在一天內運行一次。

為了解決這個問題,我讓腳本以不同的方式觸發電子郵件。

如果 /var/log/messages 文件中昨天的日誌中找到任何給定字元串,則腳本將向給定的電子郵件地址發送電子郵件警報。

注意:你需要更改電子郵件地址,而不是我們的電子郵件地址。

# vi /opt/scripts/os-log-alert.sh
#!/bin/bash
#Set the variable which equal to zero
prev_count=0
count=$(grep -i "`date --date="yesterday" "+%b %e"`" /var/log/messages | egrep -wi "warning|error|critical" | wc -l)
if [ "$prev_count" -lt "$count" ] ; then
# Send a mail to given email id when errors found in log
SUBJECT="WARNING: Errors found in log on "`date --date="yesterday" "+%b %e"`""
# This is a temp file, which is created to store the email message.
MESSAGE="/tmp/logs.txt"
TO="2daygeek@gmail.com"
echo "ATTENTION: Errors are found in /var/log/messages. Please Check with Linux admin." >> $MESSAGE
echo "Hostname: `hostname`" >> $MESSAGE
echo -e "
" >> $MESSAGE
echo "+------------------------------------------------------------------------------------+" >> $MESSAGE
echo "Error messages in the log file as below" >> $MESSAGE
echo "+------------------------------------------------------------------------------------+" >> $MESSAGE
grep -i "`date --date="yesterday" "+%b %e"`" /var/log/messages | awk "{ $3=""; print}" | egrep -wi "warning|error|critical" >> $MESSAGE
mail -s "$SUBJECT" "$TO" < $MESSAGE
#rm $MESSAGE
fi

為 os-log-alert.sh 文件設置可執行許可權。

$ chmod +x /opt/scripts/os-log-alert.sh

最後添加一個 cron 任務來自動執行此操作。它將每天 7 點鐘運行。

# crontab -e
0 7 * * * /bin/bash /opt/scripts/os-log-alert.sh

注意:你將在每天 7 點收到昨天日誌的電子郵件提醒。

輸出:你將收到類似下面的電子郵件提醒。

ATTENTION: Errors are found in /var/log/messages. Please Check with Linux admin.
+-----------------------------------------------------+
Error messages in the log file as below
+-----------------------------------------------------+
Jul 3 02:40:11 ns1 kernel: php-fpm[3175]: segfault at 299 ip 000055dfe7cc7e25 sp 00007ffd799d7d38 error 4 in php-fpm[55dfe7a89000+3a7000]
Jul 3 02:50:14 ns1 kernel: lmtp[8249]: segfault at 20 ip 00007f9cc05295e4 sp 00007ffc57bca1a0 error 4 in libdovecot-storage.so.0.0.0[7f9cc04df000+148000]
Jul 3 15:36:09 ns1 kernel: php-fpm[17846]: segfault at 299 ip 000055dfe7cc7e25 sp 00007ffd799d7d38 error 4 in php-fpm[55dfe7a89000+3a7000]
Jul 3 15:45:54 ns1 pure-ftpd: (?@5.188.62.5) [WARNING] Authentication failed for user [daygeek]
Jul 3 16:25:36 ns1 pure-ftpd: (?@104.140.148.58) [WARNING] Sorry, cleartext sessions and weak ciphers are not accepted on this server.#012Please reconnect using TLS security mechanisms.
Jul 3 16:44:20 ns1 kernel: php-fpm[8979]: segfault at 299 ip 000055dfe7cc7e25 sp 00007ffd799d7d38 error 4 in php-fpm[55dfe7a89000+3a7000]


via: https://www.2daygeek.com/linux-bash-script-to-monitor-messages-log-warning-error-critical-send-email/

作者: Magesh Maruthamuthu 選題: lujun9972 譯者: wxy 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


點擊「了解更多」可訪問文內鏈接

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux技術 的精彩文章:

Slack 的開源替代品 Mattermost 獲得 5000 萬美元融資
癱瘓2周後,美國又一城市宣布向黑客支付價值將近50萬美元的贖金

TAG:Linux技術 |