Script for getting statistics from Nginx Web server for Zabbix external check. Implementation of this script - https://github.com/vicendominguez/nginx-zabbix-template on Golang.
To enable statistics in Nginx, create virtual host
, like so
server {
listen 4040; # unusual port for monitoring
server_name _; # doesn't care about server name
keepalive_timeout 0;
allow 192.168.0.40; # allow requests only from our monitoring server
deny all; # deny all others
location =/nginx_status/ {
stub_status on; # properly enabling of statistics
}
access_log off; # don't write logs
}
And reload/restart the nginx service.
We need to compile binary for that platform where zabbix is running. Use this command:
env GOOS={OS} GOARCH={ARCH} go build -v github.com/tonymadbrain/nginx_stat_getter
Where:
{OS} - OS type:
- Mac os - darwin
- Windows - windows
- Linux - linux
- FreeBSD - freebsd
{ARCH} - arhitecture:
- x86_64 - amd64
- x86 - 386
- ARM - arm (linux only)
Example for Linux x86_64:
$ env GOOS=linux GOARCH=amd64 go build -v github.com/tonymadbrain/nginx_stat_getter
Then, copy the binary to Zabbix server into /usr/lib/zabbix/externalscripts
folder, make him executable with chmod +x nginx_stat_getter
, set zabbix owner with chown zabbix:zabbix nginx_stat_getter
.
Next, import template zbx_nginx_template.xml
in Zabbix frontend and attach him to server(s).
Done! Wait for data.
Скрипт для получения статистики из Nginx, который можно использовать в Zabbix. Реализация на Go вот этого скрипта - https://github.com/vicendominguez/nginx-zabbix-template.
Чтобы включить статистику в 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 сервер, для этого нужно использовать команду:
env GOOS={OS} GOARCH={ARCH} go build -v github.com/tonymadbrain/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 фронтенде и прикрепить его к нужному серверу.
Ждать данных.