1 2 3 |
awk -v d1="$(date --date="-5 min" "+%b %_d %H:%M")" -v d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2' /var/log/maillog вытащить из почтового лога все ошибки. |
[codesyntax lang="bash"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/bash awk -v d1="$(date --date="-5 min" "+%b %_d %H:%M")" -v d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2' /var/log/maillog | grep -iE 'status=deferred|status=bounced|status=expired|NOQUEUE' > /etc/zabbix/mail_error.log if [[ -s /etc/zabbix/mail_error.log ]]; then echo "1" > /etc/zabbix/check_error_in_maillog echo "" else echo "0" > /etc/zabbix/check_error_in_maillog if [[ `cat /etc/zabbix/check_error_in_maillog` == 0 ]] then echo "error log is empty" > /etc/zabbix/mail_error.log fi fi |
[/codesyntax]
Thank you for reading this post, don't forget to subscribe!данный скрипт потом можно запихнуть в крон на выполнение раз в 5 минут
=================================================
Данный скрипт отсеивает следующие коды 200|301|302|404|403|401 которые являются (по условию) нормальными, и записывает в файл: error log is empty в остальных случаях будет записан код ошибки который уже увидит и обработает заббикс.
данный скрипт будет брать лог за последние 2 минуты
[codesyntax lang="php" blockstate="collapsed"]
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash awk -v d1="$(date --date="-2 min" "+%_d/%b/%Y:%H:%M")" -v d2="$(date "+%_d/%b/%Y:%H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2' /var/log/nginx/access.log | grep ' \/mega_portal\/' | grep -vE '200|301|302|404|403|401' | awk '{print $10}' > /etc/zabbix/error_megaportal if [[ -s /etc/zabbix/error_megaportal ]]; then echo "1" > /etc/zabbix/check_error_in_nginx_megaportal else echo "0" > /etc/zabbix/check_error_in_nginx_megaportal if [[ `cat /etc/zabbix/check_error_in_nginx_megaportal` == 0 ]] then echo "error log is empty" > /etc/zabbix/error_megaportal fi fi |
[/codesyntax]