Скрипт Bash для мониторинга журнала Messages (Warning, Error и Critical) в Linux

Скрипт Bash для мониторинга журнала Messages (Warning, Error и Critical) в Linux

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

В настоящее время на рынке доступно множество инструментов для мониторинга с открытым исходным кодом для мониторинга производительности систем Linux. 

Они отправляют уведомление по электронной почте, когда система достигает указанного порогового значения. 

Они контролируют все, например, использование ЦП, использование памяти, использование подкачки, использование дискового пространства и многое другое. 

Если у вас всего несколько систем и вы хотите их контролировать, то написание небольшого скрипта оболочки может облегчить вашу задачу. 

В этом уроке мы добавили скрипт оболочки для отслеживания сообщений в системе Linux. 

Этот скрипт проверит «warning, error и critical» в файле /var/log/messages и запустит письмо с указанным идентификатором электронной почты, если будет найдено что-либо связанное с ним. 

Чтобы преодолеть эту проблему, я сделал скрипт для запуска электронной почты по-другому. 

Если какие-либо данные строки найдены в файле «/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 "\n" >> $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 

Наконец добавьте cronjob, чтобы автоматизировать этот скрипт. 

Он будет работать каждый день в 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] 

Источник


Report Page