Monitoramento Nginx

Escrito por Hitfy

Implantação de Monitoramento Nginx


Pré-requisitos

  • Nginx instalado e funcional (nginx -v)
  • Zabbix Agent instalado e configurado
  • Acesso root ou sudo no servidor


Verificar se o módulo "http_stub_status_module" está habilitado

Execute:

nginx -V 2>&1 | grep -o with-http_stub_status_module

Se retornar with-http_stub_status_module, o módulo já está disponível.

Caso contrário, será necessário instalar uma versão do Nginx que o inclua (ex: via repositório padrão ou EPEL).


Editar a configuração do Nginx

Abra o arquivo de configuração principal do Nginx (ou o bloco ativo do seu site):

sudo vim /etc/nginx/nginx.conf

ou, dependendo da distribuição:

sudo vim /etc/nginx/conf.d/default.conf


Dentro do bloco server {...}, adicione os trechos abaixo:

location = /nginx_status {
    stub_status;
    allow 127.0.0.1;
    allow ::1;
    deny all;
}

location = /basic_status {
    stub_status;
    allow 127.0.0.1;
    allow ::1;
    deny all;
}


Exemplo prático:

server {
    listen       80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    location / {
        try_files $uri $uri/ =404;
    }

    location = /nginx_status {
        stub_status;
        allow 127.0.0.1;
        allow ::1;
        deny all;
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}


Ainda no arquivo de configurações, verifique qual a porta o Nginx está executando.

Geralmente ficará dentro de "server {...}"


Exemplo em que a porta é 80:

server {
    listen    80 default_server;
    listen    [::]:80 default_server;

[...]
}


Teste de configuração do Nginx

Executar o comando abaixo para testar a sintaxe

sudo nginx -t


O retorno deve ser:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


Caso tenha dado algum erro, revisar as configurações.


Reload Nginx

Executar o comando para recarregar o serviço:

systemctl reload nginx


Teste de requisição

Executar os comando abaixo para testar as conexões:

curl http://127.0.0.1:8181/nginx_status
curl http://127.0.0.1:8181/basic_status


Caso o retorno seja parecido com o abaixo, basta adicionar ao monitoramento informando a porta do Nginx.

Active connections: 1
server accepts handled requests
 6 6 6
Reading: 1 Writing: 1 Waiting: 0