Я пытаюсь использовать Zabbix для сбора информации о 500 ошибках в логах Apache. Я думал, что буду использовать zabbix_get для выполнения команды в операционной системе Агента, однако при попытке проверить это я получаю ошибку ZBX_NOTSUPPORTED: Too many parameters.
. Сначала я пытался избежать всех "
и других специальных символов, но безуспешно. При попытке отладить команду (которая хорошо работает локально, без использования zabbix_get) я обнаружил, что проблема, вероятно, где-то близко к AWK и substr. Буду признателен, если кто-нибудь может взглянуть ...
tail -n 1000 /content/logs/httpd/*_access.log | awk -v d1="$(date --date='-5 min' '+%_d/%b/%Y:%H:%M:%S')" -v d2="$(date '+%_d/%b/%Y:%H:%M:%S')" 'substr($5,2) > d1 && substr($5,2) < d2 || substr($5,2) ~ d2' | cut -d" " -f10 | grep "500" | wc -l
Пример ввода:
IP IP - - [21/Jan/2019:03:14:06 -0500] "GET /path HTTP/1.1" 200 2068 referrer "UserAgent" 7634.
IP IP - - [21/Jan/2019:03:14:06 -0500] "GET /path HTTP/1.1" 500 1 "-" "UserAgent" 1892
Выход:
1
Я хотел бы выполнять указанную выше команду каждые 5 минут для подсчета количества записей с ошибкой 500, произошедшей в течение предыдущих 5 минут.
Я знаю, что всегда могу создать сценарий, но если бы я мог избежать этого ...
Спасибо!