zabbix_export: version: '5.4' date: '2021-11-21T21:25:58Z' groups: - uuid: 737a3413107b407aa81d6ba319dac558 name: Templates_Custom templates: - uuid: 62e0b5b350c943d2819aa801d9442ba9 template: 'App Nginx' name: 'App Nginx' description: | ## Overview English description - Cкрипт для получения статистики из Nginx, который можно использовать в Zabbix. Реализация на Go вот этого скрипта - https://github.com/vicendominguez/nginx-zabbix-template. Настройка Nginx --------------- Чтобы включить статистику в Nginx, нужно создать vhost, следующего содержания: ``` server { listen 4040; # нестандартный порт для мониторинга статистики server\_name \_; # нам неважно какой server name keepalive\_timeout 0; allow 192.168.0.40; # разрешаем запросы только для ip адреса нашего сервера мониторинга deny all; # все остальные идут лесом location =/nginx\_status/ { stub\_status on; # собственно включение статистики } access\_log off; # не пишем логи } ``` И сделать reload/restart сервера. Настройка Zabbix ---------------- Нужно скомпилировать бинарник под ту платформу, на которой запущен Zabbix сервер, для этого нужно использовать команду: ``` env GOOS={OS} GOARCH={ARCH} go build -v github.com/username/nginx\_stat\_getter ``` {OS} - тип операционной системы, может быть: * Mac os - darwin * Windows - windows * Linux - linux * FreeBSD - freebsd {ARCH} - архитектура, может быть: * x86\_64 - amd64 * x86 - 386 * ARM - arm (linux only) Закинуть бинарник на сервер Zabbix в каталог /usr/lib/zabbix/externalscripts, сделать его исполняемым: ``` chmod +x nginx\_stat\_getter ``` , сделать владельцем файла Zabbix: ``` chown zabbix:zabbix nginx\_stat\_getter ``` Затем нужно импортировать шаблон *zbx\_nginx\_template.xml* в Zabbix фронтенде и прикрепить его к нужному серверу. Ждать данных. ## Author Antony Ryabov groups: - name: Templates_Custom items: - uuid: 1799175aa92443f3b7379207cf8bbb26 name: 'Nginx Accepted per second' type: EXTERNAL key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","accepted"]' delay: '60' value_type: FLOAT units: rps preprocessing: - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '1' tags: - tag: Application value: Nginx - uuid: 5c0abc9c7c0e4d84bb6beb24c96dd823 name: 'Nginx Active Connections' type: EXTERNAL key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","active"]' delay: '60' tags: - tag: Application value: Nginx - uuid: 06d350aeefd446c4bf669e080b220cf3 name: 'Nginx Handled per second' type: EXTERNAL key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","handled"]' delay: '60' value_type: FLOAT units: rps preprocessing: - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '1' tags: - tag: Application value: Nginx - uuid: e7252f7414db495b9e28d3501910cae7 name: 'Nginx Reading state count' type: EXTERNAL key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","reading"]' delay: '60' tags: - tag: Application value: Nginx - uuid: 34ab27e7a45f4808b8789371c89eba2b name: 'Nginx Requests per second' type: EXTERNAL key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","requests"]' delay: '60' value_type: FLOAT units: rps preprocessing: - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '1' tags: - tag: Application value: Nginx - uuid: 11d869b575af4b07be52fd4383052942 name: 'Nginx Waiting state count' type: EXTERNAL key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","waiting"]' delay: '60' tags: - tag: Application value: Nginx - uuid: 917a12d1c12d4c5e885ec028da76d811 name: 'Nginx Writting state count' type: EXTERNAL key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","writing"]' delay: '60' tags: - tag: Application value: Nginx - uuid: 8547c6f3443c4852be6e1d047f597d88 name: 'Nginx memory allocated' key: 'proc.mem[nginx,nginx]' delay: '60' units: B - uuid: 9a18793199d64b4b9fb511823abdb8d1 name: 'Nginx process count' key: 'proc.num[nginx]' delay: '60' triggers: - uuid: 1722b1639f1a4c71ab6ee676875a7792 expression: 'last(/App Nginx/proc.num[nginx])=0' name: 'Nginx is down' priority: HIGH graphs: - uuid: 03b9cfa4e60b4ed785f245123c9e22a6 name: 'Nginx status' graph_items: - color: 00C800 item: host: 'App Nginx' key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","active"]' - sortorder: '1' color: 0000C8 item: host: 'App Nginx' key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","reading"]' - sortorder: '2' color: C80000 item: host: 'App Nginx' key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","waiting"]' - sortorder: '3' color: C800C8 item: host: 'App Nginx' key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","writing"]' - uuid: 64ac0851966147d583982c24f862285a name: 'Nginx workload' graph_items: - color: 0000C8 item: host: 'App Nginx' key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","accepted"]' - sortorder: '1' color: 00C800 item: host: 'App Nginx' key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","handled"]' - sortorder: '2' color: C80000 item: host: 'App Nginx' key: 'nginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","requests"]'