Cómo monitorear el rendimiento de Nginx usando Netdata en CentOS 7


Netdata es una herramienta gratuita de código abierto, escalable, adaptable, personalizable, extensible y potente en tiempo real, herramienta de monitoreo del estado y rendimiento para sistemas Linux, que recopila y visualiza métricas. Funciona en computadoras de escritorio, computadoras personales, servidores, dispositivos integrados, IoT y más.

Es una herramienta de monitoreo del estado del sistema que le permite vigilar cómo funcionan sus sistemas y aplicaciones o servicios, como los servidores web, o por qué son lentos o se comportan mal. Es extremadamente eficaz y eficiente en términos de uso de CPU, así como otros recursos del sistema.

En este artículo, explicaremos cómo monitorear el rendimiento del servidor web HTTP Nginx usando Netdata en la distribución CentOS 7 o RHEL 7.

Al final de esta guía, podrá ver visualizaciones de conexiones activas, solicitudes, estado y velocidad de conexión de su servidor web Nginx.

  1. Un servidor RHEL 7 con instalación mínima.
  2. ngx_http_stub_status_module habilitado.

Paso 1: Instale Nginx en CentOS 7

1. Primero comience con el administrador de paquetes YUM.

# yum install epel-release
# yum install nginx 

2. A continuación, verifique la versión de Nginx instalada en su sistema, debe compilarse con el módulo stub_status indicado por el argumento de configuración --with-http_stub_status_module , como se muestra en la siguiente captura de pantalla.

# nginx -V

3. Después de instalar correctamente Nginx, inícielo y habilítelo para que se inicie automáticamente al arrancar el sistema y asegúrese de que esté en funcionamiento.

# systemctl status nginx
# systemctl enable nginx
# systemctl status nginx

4. Si está ejecutando un firewall dinámico firewalld, debe abrir el puerto 80 (HTTP) y 443 (HTTPS) en el que escucha el servidor web, para las solicitudes de conexión del cliente.

# firewall-cmd --permanent --add-port=80/tcp
# firewall-cmd --permanent --add-port=443/tcp
# firewall-cmd --reload 

Paso 2: Paso 2: Habilite el módulo Nginx Stub_Status

5. Ahora habilite el módulo stub_status que usa netdata para recopilar métricas de su servidor web Nginx.

# vim /etc/nginx/nginx.conf

Copie y pegue la configuración de ubicación a continuación en el bloque del servidor, como se muestra en la captura de pantalla.

location /stub_status {
 	stub_status;
 	allow 127.0.0.1;	#only allow requests from localhost
 	deny all;		#deny all other hosts	
 }

6. A continuación, pruebe la nueva configuración de nginx en busca de errores y reinicie el servicio nginx para efectuar los cambios recientes.

# nginx -t
# systemctl restart nginx

7. A continuación, pruebe la página de estado de nginx con la herramienta de línea de comandos curl.

# curl http://127.0.0.1/stub_status

Paso 3: Instale Netdata en CentOS 7

8. Hay un script de shell de una sola línea que puede usar para iniciar la instalación de la última versión de netdata desde su repositorio de github. Este script descargará otro script para detectar su distribución de Linux e instalará los paquetes de sistema necesarios para construir netdata; a partir de entonces, toma los últimos archivos fuente de netdata; lo construye e instala.

Utilice el siguiente comando para iniciar el script de kickstarter, la opción all permite instalar los paquetes necesarios para todos los complementos de netdata, incluidos los de Nginx.

# bash <(curl -Ss https://my-netdata.io/kickstart.sh) all

Si no está accediendo al sistema como root, se le pedirá que ingrese su contraseña de usuario para el comando sudo, y también se le pedirá que confirme ciertas operaciones presionando [Enter].

8. Después de compilar e instalar netdata, la secuencia de comandos iniciará automáticamente el servicio netdata a través del administrador de servicios systemd y le permitirá iniciarse al arrancar el sistema. Netdata escucha en el puerto 19999 de forma predeterminada.

9. A continuación, abra el puerto 19999 en el firewall para acceder a la interfaz de usuario web netdata.

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

Paso 4: configurar Netdata para monitorear el rendimiento de Nginx

9. La configuración de netdata para el complemento Nginx se almacena en el archivo de configuración /etc/netdata/python.d/nginx.conf, escrito en formato YaML.

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

La configuración predeterminada es suficiente para comenzar a monitorear su servidor web Nginx.

En caso de que haya realizado algún cambio en el archivo de configuración, después de leer la documentación, reinicie el servicio netdata para efectuar los cambios.

# systemctl restart netdata

Paso 5: Supervise el rendimiento de Nginx con Netdata

10. Ahora abra un navegador web y use la siguiente URL para acceder a la interfaz de usuario web de netdata.

http://domain_name:19999
OR
http://SERVER_IP:19999

Desde la lista de complementos en el lado derecho, haga clic en “nginx local” para comenzar a monitorear su servidor web Nginx. Podrá ver visualizaciones de conexiones activas, solicitudes, estado y velocidad de conexión como se muestra en la siguiente captura de pantalla.

Repositorio Netdata Github: https://github.com/firehol/netdata

¡Eso es todo! Netdata es una herramienta distribuida en tiempo real para la supervisión del rendimiento y el estado de los sistemas Linux. En este artículo, mostramos cómo monitorear el rendimiento del servidor web Nginx usando netdata en CentOS 7. Use el formulario de comentarios a continuación para compartir cualquier consulta o pensamiento sobre esta guía.