🍡 Π‘ΠΊΡ€ΠΈΠΏΡ‚ Bash для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΆΡƒΡ€Π½Π°Π»Π° Messages (Warning, Error ΠΈ Critical) Π² Linux

Π’ настоящСС врСмя Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ доступно мноТСство инструмСнтов для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСм 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]


Β 



2019-07-04T14:20:47
Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹

Π”Ρ€ΡƒΠ·ΡŒΡ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ этому ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ ΡΡ‚Π°Ρ‚ΡŒ доступнСС Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях.

НС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈ ΠΌΠΈΠΌΠΎ ΠΆΠΌΠ°ΠΊΠ½ΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΡƒ Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½!