Cómo monitorizar Nginx con Netdata en CentOS 7

Netdata es un sistema de monitorización de código abierto para servidores Linux. Proporciona una monitorización del rendimiento y la salud en tiempo real con un bonito panel de control y análisis. Netdata debería funcionar en cualquier distribución de Linux: se ha probado en Alpine Linux, Arch Linux, CentOS, Ubuntu, etc. Ofrece herramientas de monitorización de la salud en tiempo real de tus servidores, de la CPU, del uso de la memoria, de las redes IPv4 e IPv6 y de las aplicaciones de usuario como Nginx, fail2ban, MySQL, MongoDB, etc.

En este tutorial, te mostraré cómo monitorizar Nginx utilizando Netdata. Este tutorial cubrirá la instalación del servidor web Nginx, la habilitación del módulo ‘stub_status’ y la instalación de Netdata en CentOS 7.

Qué haremos

  1. Instalar el servidor web Nginx.
  2. Habilitar el módulo ‘stub_status’ de Nginx.
  3. Instalar Netdata en CentOS 7.
  4. Monitorizar Nginx con Netdata.
  5. Prueba.

Requisitos previos

  • Servidor CentOS 7
  • Privilegios de root

Paso 1 – Instalar el servidor web Nginx

En este paso, instalaremos el servidor web Nginx desde el repositorio EPEL (Extra Packages for Enterprise Linux). Antes de instalar Nginx, asegúrate de que el repositorio EPEL está instalado en tu servidor.

Si no lo tienes, puedes instalarlo con el siguiente comando.

yum -y install epel-release

Instalar el servidor web Nginx

A continuación, instala Nginx con el siguiente comando yum.

yum -y install nginx

Y si la instalación se ha completado, inicia el servicio y habilítalo para que se inicie automáticamente al arrancar el sistema utilizando los comandos systemctl que aparecen a continuación.

systemctl start nginx
systemctl enable nginx

Tras la instalación, abre los puertos HTTP y HTTPS con el comando firewall-cmd que aparece a continuación.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Configura el cortafuegos

Nota: Si no tienes el comando firewall-cmd, puedes instalar los paquetes firewalld desde el repositorio.

yum -y install firewalld

Se ha instalado el servidor web Nginx.

Paso 2 – Habilitar el módulo stub_status de Nginx

Para monitorizar Nginx mediante Netdata, debemos habilitar el módulo ‘stub_status’ editando la configuración. Asegúrate de que tu versión de Nginx tiene un módulo llamado ‘stub_status’, comprueba el módulo con el siguiente comando.

nginx -V

Deberías obtener un resultado similar al siguiente.

Habilitar el módulo stub_status de Nginx

Asegúrate de que tienes el módulo ‘stub_status’ en la lista.

A continuación, edita el archivo de configuración de nginx ‘nginx.conf’ para habilitar el módulo ‘stub_status’. Ve al directorio ‘/etc/nginx/’ y edita la configuración con vim.

cd /etc/nginx/
vim nginx.conf

Pega la siguiente configuración dentro del bloque‘server {}‘.

    location /stub_status {
        stub_status;
        # Security: Only allow access from the IP below.
        allow 127.0.0.1;
        # Deny anyone else
        deny all;
    }

Configurar nginx

Guarda y sal.

Ahora, prueba la configuración de nginx y asegúrate de que no hay ningún error. Luego reinicia nginx.

nginx -t
systemctl restart nginx

Probar la configuración de nginx y reiniciar nginx

El módulo ‘stub_status’ de nginx ha sido habilitado – podemos comprobarlo utilizando el comando curl como se muestra a continuación.

curl http://127.0.0.1/stub_status

Cuando está habilitado, puedes ver el resultado como se muestra a continuación.

Probar el estado del stub de nginx

Paso 3 – Instalar Netdata en CentOS 7

En este paso, instalaremos Netdata en el servidor CentOS 7. Antes de instalar Netdata, necesitamos instalar algunos paquetes para la instalación de Netdata.

Instala los paquetes necesarios para la instalación de Netdata mediante el siguiente comando yum.

yum -y install zlib-devel libuuid-devel libmnl-devel gcc make git autoconf autogen automake pkgconfig curl jq nodejs

A continuación, descarga el código fuente de Netdata utilizando el siguiente comando git.

cd ~
git clone https://github.com/firehol/netdata.git --depth=1

Instalar Netdata en CentOS 7

Ve al directorio netdata y ejecuta el script instalador de Netdata con privilegios sudo.

cd netdata/
sudo ./netdata-installer.sh

Pulsa ‘Enter’ para continuar con la instalación de Nedata.

Instalar Netdata

Y cuando la instalación se haya completado, verás el resultado que se muestra a continuación.

Instalador de Eun netdata

Netdata se ha instalado en CentOS 7, y se está ejecutando en el puerto ‘19999’.

Abre el puerto utilizando el comando firewall-cmd que aparece a continuación.

sudo firewall-cmd --permanent --add-port=19999/tcp
sudo firewall-cmd --reload

Netdata proporciona un script de servicios systemd, por lo que puedes gestionar Netdata mediante el comando systemctl. Reinicia netdata y habilítalo para que se inicie automáticamente cada vez que arranque el sistema.

systemctl restart netdata
systemctl enable netdata

Comprueba el puerto abierto del servidor: asegúrate de que tienes el puerto 19999 en estado «LISTEN».

netstat -plntu

Comprueba el puerto de red

La herramienta de monitorización Netdata ha sido instalada en CentOS 7.

Paso 4 – Monitorizar Nginx con Netdata

En esta etapa, Nginx ha sido instalado, el módulo stub_status ha sido habilitado y la instalación de Netdata ha sido completada. En este paso, queremos monitorizar el servidor web nginx utilizando Netdata. Monitorización de las peticiones, de la conexión activa y del estado.

Netdata proporciona módulos para monitorizar las aplicaciones del sistema. Hay algunas aplicaciones como Apache, Nginx, MongoDB, etc. que utilizan módulos de python para la monitorización mediante Netdata.

Ve al directorio ‘python.d’ de netdata y edita el archivo de configuración nginx.conf utilizando vim.

cd /etc/netdata/python.d/
vim nginx.conf

Ve a la línea inferior y asegúrate de que tienes una configuración como la que se muestra a continuación.

localhost:
  name : 'local'
  url  : 'http://localhost/stub_status'

Configurar los datos de la red

Guarda y sal.

Ahora reinicia el servicio netdata utilizando el comando systemctl.

systemctl restart netdata

Paso 5 – Prueba

Abre tu navegador web y visita la dirección IP del servidor con el puerto 19999.

http://192.168.1.11:19999/

Y obtendrás el panel de control de Netdata.

Visión general del sistema Netdata

Haz clic en «nginx local» a la derecha, y verás las conexiones activas de Nginx, las peticiones, el estado y la tasa de conexión.

conexiones, solicitudes, estado y tasa de conexión

Se ha instalado Netdata en el servidor CentOS 7, y se está monitorizando el servidor web Nginx mediante Netdata.

Preferencia

Scroll al inicio