LINUX.ORG.RU
Ответ на: комментарий от Deleted

очень помог, спасибо
пока я сделал так

UserParameter=nginx_codes[*],cat /var/log/nginx/access.log | awk '{print $9}' | grep -c $1
UserParameter=nginx_codes_all,cat /var/log/nginx/access.log | wc -l
item:

  • nginx_codes[500]
  • nginx_codes[502]
  • nginx_codes[503]

и потом уже вычисляемые item

  • 100*last(«nginx_codes[500]»)/last(«nginx_codes_all»)
  • ...

но каждый раз дергать лог который бывает под 500 мб или больше как-то не оч хорошо, хотелось бы какого-то более гибкого или готового решения

Garcia
() автор топика
Последнее исправление: Garcia (всего исправлений: 1)
Ответ на: комментарий от Garcia

но каждый раз дергать лог который бывает под 500 мб или больше как-то не оч хорошо

Внезапно, вы не сможете получить данные из лога не прочитав его. Для того чтоб он был меньшего размера - можете завести второй лог и писать туда только нужную инфу (да хоть просто один код ошибки), и потом грепать\считать строки. Или можете слать логи в какой-нибудь elasticsearch и потом смотреть туда. Ну или покупайте nginx+ и используйте ngx_http_api_module, он вроде умеет такие данные давать через REST API.

micronekodesu ★★★
()

сейчас я сделал, так

log_format zabbix '$status';
access_log  /var/log/nginx/access_code.log zabbix;
UserParameter=nginx_codes[*],grep -c $1 /var/log/nginx/access_code.log
UserParameter=nginx_codes_all,cat /var/log/nginx/access_code.log | wc -l
и item'ы такие
nginx_codes[500]
nginx_codes[502]
nginx_codes_all
вычисляемые item'ы
100*last("nginx_codes[500]")/last("nginx_codes_all")
100*last("nginx_codes[502]")/last("nginx_codes_all")
я не говорю что все правильно делаю, может кто подскажет как лучше сделать?

Garcia
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.