5.02021-11-21T21:25:56ZTemplates_CustomApp NginxApp Nginx## Overview
English description - <https://github.com/tonymadbrain/nginx_stat_getter/blob/master/README.md>
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
Templates_CustomNginx- Nginx Accepted per secondEXTERNALnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","accepted"]60FLOATrpsNginxCHANGE_PER_SECONDMULTIPLIER1
- Nginx Active ConnectionsEXTERNALnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","active"]60Nginx
- Nginx Handled per secondEXTERNALnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","handled"]60FLOATrpsNginxCHANGE_PER_SECONDMULTIPLIER1
- Nginx Reading state countEXTERNALnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","reading"]60Nginx
- Nginx Requests per secondEXTERNALnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","requests"]60FLOATrpsNginxCHANGE_PER_SECONDMULTIPLIER1
- Nginx Waiting state countEXTERNALnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","waiting"]60Nginx
- Nginx Writting state countEXTERNALnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","writing"]60Nginx
- Nginx memory allocatedproc.mem[nginx,nginx]60B
- Nginx process countproc.num[nginx]60{last(0)}=0Nginx is downHIGH
Nginx status00C800- App Nginxnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","active"]
10000C8- App Nginxnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","reading"]
2C80000- App Nginxnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","waiting"]
3C800C8- App Nginxnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","writing"]
Nginx workload0000C8- App Nginxnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","accepted"]
100C800- App Nginxnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","handled"]
2C80000- App Nginxnginx_stat_getter["-h","{HOST.CONN}","-p","4040","-s","requests"]