Monitoreo · 25 min read · Nov 30, 2025
Cómo instalar y monitorear servicios usando la herramienta de monitoreo Netdata en Rocky Linux 8

Netdata es un sistema de monitoreo de código abierto para sistemas operativos basados en Linux. Proporciona rendimiento y monitoreo en tiempo real utilizando paneles hermosos y detallados. Ofrece cientos de herramientas para monitorear servidores, CPU, uso de memoria, procesos del sistema, uso de disco, redes IPv4 e IPv6, firewall del sistema y aplicaciones como Nginx, MySQL, MongoDB, Redis, ElasticSearch, PostgreSQL, PHP-FPM, etc. Se integra con otras herramientas de monitoreo como Prometheus, Graphite, Kafka, Grafana y más.
En este tutorial, aprenderás a instalar y monitorear varios servicios usando la herramienta Netdata en un servidor Rocky Linux 8. Usaremos Netdata para rastrear las métricas de un stack LEMP y el motor Docker.
Prerrequisitos
- Un servidor que ejecute Rocky Linux 8.
- Un usuario no root con privilegios de sudo.
- Un Nombre de Dominio Totalmente Calificado (FQDN) como
netdata.example.comapuntando a tu servidor. - Una cuenta y espacio de trabajo de Slack para recibir notificaciones.
- Una cuenta SMTP con un servicio de correo electrónico como Amazon SES o Mailgun.
- Desactivar SELinux.
Paso 1 - Configurar el Firewall
El primer paso es configurar el firewall. Rocky Linux utiliza Firewalld Firewall. Verifica el estado del firewall.
$ sudo firewall-cmd --state
running
El firewall trabaja con diferentes zonas, y la zona pública es la predeterminada que usaremos. Lista todos los servicios y puertos activos en el firewall.
$ sudo firewall-cmd --permanent --list-services
Debería mostrar la siguiente salida.
cockpit dhcpv6-client ssh
Permite los puertos HTTP y HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Verifica nuevamente el estado del firewall.
$ sudo firewall-cmd --permanent --list-services
Deberías ver una salida similar.
cockpit dhcpv6-client http https ssh
Recarga el firewall para habilitar los cambios.
$ sudo firewall-cmd --reload
Paso 2 - Instalar NetData
Netdata viene con un script de instalación que puede funcionar en cualquier distribución de Linux. Ejecuta el siguiente comando para descargar y ejecutar el script de instalación.
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Se te pedirá tu contraseña de sudo para habilitar los privilegios de sudo. Ingresa Y para confirmar la adición del repositorio de Netdata y su instalación en tu servidor.
El instalador de Netdata habilita y comienza automáticamente el servicio. Verifica el estado del servicio.
$ sudo systemctl status netdata
? netdata.service - Monitoreo de rendimiento en tiempo real
Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-04-11 12:09:12 UTC; 13s ago
Main PID: 19443 (netdata)
Tasks: 32 (limit: 11412)
Memory: 52.0M
CGroup: /system.slice/netdata.service
??19443 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D
??19448 /usr/sbin/netdata --special-spawn-server
??19937 /usr/libexec/netdata/plugins.d/apps.plugin 1
??19944 /usr/libexec/netdata/plugins.d/go.d.plugin 1
Apr 11 12:09:12 netdata systemd[1]: Started Monitoreo de rendimiento en tiempo real.
.......
Si tu servicio no está iniciado o habilitado, puedes hacerlo usando el siguiente comando.
$ sudo systemctl enable netdata --now
Ejecuta el siguiente comando para verificar los puertos abiertos y el proceso que los usa.
$ sudo ss -plnt
Deberías obtener una salida similar. Netdata utiliza el puerto 19999 para su panel, visto en la salida a continuación. Netdata utiliza el puerto 8125 para recibir estadísticas de otras aplicaciones.
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:8125 0.0.0.0:* users:(("netdata",pid=22496,fd=29))
LISTEN 0 128 0.0.0.0:19999 0.0.0.0:* users:(("netdata",pid=22496,fd=6))
......
LISTEN 0 128 [::1]:8125 [::]:* users:(("netdata",pid=22496,fd=28))
LISTEN 0 128 [::]:19999 [::]:* users:(("netdata",pid=22496,fd=7))
Paso 3 - Instalar SSL
Para instalar un certificado SSL usando Let’s Encrypt, necesitamos instalar la herramienta Certbot.
Primero, necesitas descargar e instalar el repositorio EPEL.
$ sudo dnf install epel-release
Ejecuta los siguientes comandos para instalar Certbot.
$ sudo dnf install certbot
Genera el certificado SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netdata.example.com
El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/netdata.example.com en tu servidor.
Genera un certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Crea un directorio raíz de desafío web para la renovación automática de Let’s Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Crea un trabajo de Cron para renovar el SSL. Se ejecutará todos los días para verificar el certificado y renovarlo si es necesario. Para eso, primero crea el archivo /etc/cron.daily/certbot-renew y ábrelo para editar.
$ sudo nano /etc/cron.daily/certbot-renew
Pega el siguiente código.
#!/bin/sh
certbot renew --cert-name netdata.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Cambia los permisos en el archivo de tarea para hacerlo ejecutable.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Paso 4 - Instalar y Configurar Nginx
Instalaremos la última versión de Nginx. Crea y abre el archivo /etc/yum.repos.d/nginx.repo para editar.
$ sudo nano /etc/yum.repos.d/nginx.repo
Pega las siguientes líneas en él.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Instala Nginx y herramientas HTTPD.
$ sudo dnf install nginx httpd-tools
Verifica la instalación.
$ nginx -v
nginx version: nginx/1.20.2
Habilita y comienza el servicio de Nginx.
$ sudo systemctl enable nginx --now
Crea y abre el archivo /etc/nginx/conf.d/netdata.conf para editar.
$ sudo nano /etc/nginx/conf.d/netdata.conf
Pega el siguiente código en él.
# Definir upstream de netdata
upstream netdata {
server 127.0.0.1:19999;
keepalive 64;
}
# Redirigir todo lo no encriptado a encriptado
server {
listen 80;
listen [::]:80;
server_name netdata.example.com;
return 301 https://netdata.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name netdata.example.com;
ssl_certificate /etc/letsencrypt/live/netdata.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/netdata.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/netdata.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
resolver_timeout 2s;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
access_log /var/log/nginx/netdata.example.com.access.log main;
error_log /var/log/nginx/netdata.example.com.error.log;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_pass http://netdata;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
auth_basic "Área Privada de NetData";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Una vez terminado, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Abre el archivo /etc/nginx/nginx.conf para editar.
$ sudo nano /etc/nginx/nginx.conf
Agrega la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Ejecuta el siguiente comando para generar un archivo de contraseña para habilitar la autenticación HTTP.
$ sudo htpasswd -c /etc/nginx/.htpasswd netadmin
New password:
Re-type new password:
Adding password for user netadmin
Verifica la sintaxis del archivo de configuración de Nginx.
$ sudo nginx -t
nginx: el archivo de configuración /etc/nginx/nginx.conf tiene una sintaxis correcta
nginx: la prueba del archivo de configuración /etc/nginx/nginx.conf fue exitosa
Reinicia el servicio de Nginx para habilitar la nueva configuración.
$ sudo systemctl restart nginx
Paso 5 - Acceder y Usar el Panel de Control de Netdata
Deberías poder acceder a Netdata a través de la URL https://netdata.example.com. La primera vez que accedas, se te pedirá tus detalles de autenticación HTTP.

Obtendrás el siguiente panel de control.

Marca la casilla Recordar mi elección y haz clic en el botón Más tarde, permanecer en el panel del agente para descartar el popup.
Puedes pausar, detener y comenzar el monitoreo en cualquier momento usando el botón Reproducir en el panel de control.

Puedes acceder a varios paneles haciendo clic en las opciones de la barra lateral derecha. Haz clic en el botón UTC y selecciona la zona horaria correcta para cambiarla.

Paso 6 - Configurar NetData
Netdata almacena su configuración principal en el archivo /etc/netdata/netdata.conf. Puedes ver estas configuraciones visitando la URL https://netdata.example.com/netdata.conf en tu navegador.

El archivo está dividido en varias secciones, como [global], [web], [registry], y más. La configuración predeterminada es suficiente para comenzar. Netdata recopila datos utilizando dos tipos de plugins:
- plugins internos están escritos en lenguaje C y se ejecutan como hilos dentro del demonio
netdata. - plugins externos están escritos en varios lenguajes, incluyendo Python, Go, etc. y se generan como procesos independientes de larga duración por el demonio
netdata. Se comunican con el demonio de Netdata usandopipes.
Configurar el Uso de Memoria de NetData
El uso de RAM de NetData se decide en función del tiempo que deseas mantener los datos de gráficos grabados antes de que se pierdan.
- 3600 segundos o 1 hora de retención de datos de gráficos utiliza 15 MB de RAM.
- 7200 segundos o 2 horas de retención de datos de gráficos utiliza 30 MB de RAM.
- 14400 segundos o 4 horas de retención de datos de gráficos utiliza 60 MB de RAM.
Cada vez que duplicas el tiempo de retención de datos de gráficos, el requisito de RAM también se duplica. Estos requisitos de RAM se basan en el número de gráficos en uso por el panel de control predeterminado. Agregar más gráficos y aplicaciones cambiará estas estimaciones.
Abre el archivo de configuración de Netdata.
$ sudo nano /etc/netdata/netdata.conf
Ingresa la línea history = 14400 bajo la sección [global].
[global]
..
history = 14400
..
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Desactivar la Telemetría
Por defecto, Netdata recopila información anónima de uso utilizando una plataforma de análisis de productos, Posthog. Cada vez que se inicia o detiene el demonio de Netdata, Netdata utiliza el script de estadísticas anónimas para recopilar la siguiente información del sistema y enviarla a sí mismo.
- Versión de Netdata
- Nombre del SO, versión, id, id_like
- Nombre del kernel, versión, arquitectura
- Tecnología de virtualización
- Tecnología de contenedorización
- Información adicional sobre fallos del cliente de Netdata.
Afortunadamente, puedes optar por no participar en esto. Crea un archivo vacío llamado .opt-out-from-anonymous-statistics en el directorio de Netdata.
$ sudo touch /etc/netdata/.opt-out-from-anonymous-statistics
Reinicia Netdata para habilitar el cambio.
$ sudo systemctl restart netdata
Almacenamiento a Largo Plazo
Netdata utiliza la RAM y el disco de tu sistema para almacenar datos históricos por defecto. El proceso predeterminado de Netdata recopila alrededor de 2000 métricas por segundo, lo que significa que la configuración predeterminada almacenará aproximadamente dos días de métricas en la RAM y el disco.
Para almacenar más métricas, tienes las siguientes dos opciones:
- Configurar Netdata para usar más RAM y espacio en disco
- Archivar las métricas en una base de datos externa
Solo discutiremos la primera opción en este tutorial. Para la segunda opción, debes consultar la documentación oficial de Netdata.
Configurar Netdata para usar más RAM y espacio en disco
Abre el archivo /etc/netdata/netdata.conf para editar.
$ sudo nano /etc/netdata/netdata.conf
Pega las siguientes líneas bajo la sección [global].
[global]
...
memory mode = dbengine
page cache size = 32
dbengine disk space = 256
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
El tamaño de la caché de página determina la cantidad de RAM utilizada, y el dbengine disk space determina el uso del disco. Por defecto, Netdata utiliza 32 MB de RAM y 256 MB de espacio en disco. Puedes descomentar estos valores y cambiar cualquiera de los dos valores a tu gusto.
Puedes usar la calculadora de Métricas de Almacenamiento de Netdata para decidir cuánta RAM y espacio en disco necesitas.
Reducir la Frecuencia de Recopilación
Puedes optimizar el rendimiento de Netdata aumentando el tiempo entre la recopilación de métricas. Por defecto, Netdata recopila métricas cada segundo.
Para cambiar eso, abre el archivo de configuración de Netdata para editar.
$ sudo nano /etc/netdata/netdata.conf
Ingresa la siguiente línea bajo la sección [global]. Esto aumenta la frecuencia a 5 segundos.
[global]
...
update every = 5
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Paso 7 - Configurar Notificaciones de Slack
El primer paso es crear una aplicación de Slack y conectarla a un canal específico en tu espacio de trabajo para configurar las Notificaciones de Slack.
Visita la página de API de Slack y haz clic en el botón Crear App para comenzar a crear una aplicación.

Haz clic en el enlace Desde Cero para crear la app.

Selecciona un nombre para tu app y elige el espacio de trabajo donde deseas que aparezca tu App. Si no deseas asociar tu app con el espacio de trabajo existente, puedes crear otro y volver a este paso.

Abre la página de Webhook Entrante seleccionando la opción en el menú Características de la barra lateral izquierda, y luego activa el webhook.

Haz clic en el botón Agregar Nuevo Webhook al Espacio de Trabajo en la parte inferior de la página y selecciona tu espacio de trabajo y el canal objetivo para las notificaciones.

Haz clic en el botón Permitir para continuar. Regresa a la página de Webhooks Entrantes y copia la URL del Webhook.

Regresa a la terminal y cambia al directorio /etc/netdata.
$ cd /etc/netdata
Netdata proporciona un script edit-config para editar y crear archivos de configuración de Netdata. Ejecuta el siguiente archivo para crear y abrir el archivo health_alarm_notify.conf usando el editor predeterminado de tu sistema.
$ sudo ./edit-config health_alarm_notify.conf
Desplázate hacia abajo hasta la siguiente sección.
# Habilitar notificación de slack
SEND_SLACK="YES"
# Seleccionar el webhook de slack
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxx"
# Canal predeterminado para notificaciones
DEFAULT_RECIPIENT_SLACK="notifications"
Asegúrate de que la variable SEND_SLACK esté configurada en sí. Pega la URL del webhook copiada en la variable SLACK_WEBHOOK_URL. Ingresa el nombre de tu canal para la variable DEFAULT_RECIPIENT_SLACK.
Si tu editor es Vim, presiona la tecla Escape para salir de la edición, escribe :x y presiona la tecla Enter para guardar el archivo y salir del editor.
Si tu editor es Nano, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Reinicia Netdata para aplicar los cambios.
$ sudo systemctl restart netdata
Configurar Notificaciones por Correo Electrónico
Netdata utiliza sendmail por defecto para enviar notificaciones por correo electrónico, pero gestionar un servidor de correo electrónico no es una tarea fácil. Netdata no soporta SMTP, pero puedes instalar un paquete llamado cliente msmtp. Te permite enviar correo a un servidor SMTP.
Instala msmtp.
$ sudo dnf install msmtp
Crea y abre el archivo de configuración para msmtp.
$ sudo nano /etc/msmtprc
Pega el siguiente código en él.
# Establecer valores predeterminados para todas las cuentas siguientes.
defaults
# Usar el puerto de envío de correo 587 en lugar del puerto SMTP 25.
port 587
# Siempre usar TLS.
tls on
# El servidor SMTP de tu ISP
account ses
host email-smtp..amazonaws.com
from [email protected]
auth on
user
password
# Establecer cuenta predeterminada a isp
account default: ses
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Abre el archivo /etc/netdata/health_alarm_notify.conf para editar.
$ sudo nano /etc/netdata/health_alarm_notify.conf
Desplázate hacia abajo hasta la siguiente sección e ingresa la ruta a msmtp.
# comandos externos
# La ruta completa al comando sendmail.
# Si está vacío, se buscará en el sistema $PATH.
# Si no se encuentra, las notificaciones por correo electrónico se deshabilitarán (silenciosamente).
sendmail="/usr/bin/msmtp"
Ubica la siguiente sección e ingresa los detalles del remitente y receptor y asegúrate de que el envío de correos electrónicos esté habilitado.
# opciones globales de notificación por correo electrónico
# se pueden dar múltiples destinatarios así:
# "[email protected] [email protected] ..."
# la dirección de correo electrónico que envía notificaciones por correo electrónico
# el predeterminado es el usuario del sistema como el que se ejecuta netdata (usualmente: netdata)
# Los siguientes formatos son compatibles:
# EMAIL_SENDER="user@domain"
# EMAIL_SENDER="User Name "
# EMAIL_SENDER="'User Name' "
# EMAIL_SENDER="\"User Name\" "
EMAIL_SENDER="Servidor Admin <[email protected]>"
# habilitar/deshabilitar el envío de correos electrónicos
SEND_EMAIL="YES"
# si no se configura un destinatario de rol, se enviará un correo electrónico a:
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# para recibir solo alarmas críticas, configúralo en "root|critical"
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Paso 8 - Probar Canales de Notificación
Probemos si las notificaciones de Slack funcionan.
Inicia sesión como el usuario del sistema netdata creado durante la instalación.
$ sudo su -s /bin/bash netdata
Ejecuta el script de notificación de alarma para enviar una notificación de prueba.
$ /usr/libexec/netdata/plugins.d/alarm-notify.sh test
Sal del usuario.
$ exit.
Abre tu aplicación de Slack, y deberías haber recibido las siguientes alertas.

También deberías recibir tres correos electrónicos sobre las advertencias de prueba.

Paso 9 - Configurar Monitoreo del Sistema
Ahora que hemos configurado y probado las notificaciones, configuremos y probemos las notificaciones para el sistema, como el uso de CPU.
Ejecuta los siguientes comandos para crear y abrir el archivo de configuración de CPU.
$ cd /etc/netdata
$ sudo ./edit-config health.d/cpu.conf
Cambia los valores de las opciones warn y crit bajo 10min_cpu_usage como se muestra a continuación.
warn: $this > (($status >= $WARNING) ? (60) : (70))
crit: $this > (($status == $CRITICAL) ? (75) : (85))
Guarda el archivo y sal del editor.
La configuración anterior enviará una advertencia si el uso de CPU cae entre el 60 y el 70% y una advertencia crítica cuando el uso de CPU cae entre el 75 y el 85%.
Reinicia el servicio de Netdata.
$ sudo systemctl restart netdata
Probemos la configuración instalando la aplicación Stress.
$ sudo dnf install stress
Ejecuta el siguiente comando para aumentar el uso de CPU de tu servidor.
$ stress --cpu 2
Deja el comando en ejecución durante 5-10 minutos, y recibirás mensajes de alto uso de CPU. Una vez que recibas esos mensajes, regresa a la terminal y sal del comando presionando Ctrl + Z.
Después de detener el servicio, recibirás una notificación de recuperación de CPU en Slack.

Paso 10 - Configurar Monitoreo de Nginx
Una de las aplicaciones más comúnmente monitoreadas usando Netdata es el servidor y los paquetes SQL. Vamos a monitorear el servidor Nginx usando Netdata.
Para habilitar el monitoreo del servidor Nginx, necesitamos usar el ngx_http_stub_status_module. Generalmente viene preinstalado con Nginx. Puedes verificar si el módulo está presente.
$ nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module
Si no obtienes respuesta, significa que tu instalación de Nginx no soporta la función. En ese caso, necesitarás compilar Nginx.
Abre el archivo de configuración predeterminado de Nginx /etc/nginx/conf.d/default.conf para editar. La ubicación del archivo es diferente porque instalamos Nginx desde su repositorio oficial. Si estás instalando Nginx desde el repositorio del SO, entonces la ubicación del archivo será /etc/nginx/nginx.conf.
$ sudo nano /etc/nginx/conf.d/default.conf
Ingresa el siguiente código dentro del bloque del servidor antes del último corchete de cierre.
# Habilitar módulo stub_status
location /stub_status {
stub_status;
allow 127.0.0.1; #solo permitir solicitudes desde localhost
deny all; #denegar todos los demás hosts
}
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Verifica la configuración de Nginx.
$ sudo nginx -t
nginx: el archivo de configuración /etc/nginx/nginx.conf tiene una sintaxis correcta
nginx: la prueba del archivo de configuración /etc/nginx/nginx.conf fue exitosa
Reinicia el servidor Nginx.
$ sudo systemctl restart nginx
Reinicia el servicio de Netdata.
$ sudo systemctl restart netdata
Deberías ver los detalles de conexión de Nginx en tu panel de control de Netdata.

Monitorear Registros de Nginx
Netdata también puede monitorear los registros de acceso de Nginx. Para hacer eso, cambia al directorio de Netdata.
$ cd /etc/netdata
Ejecuta el siguiente comando para generar un archivo de configuración para monitorear los Registros de Acceso.
$ sudo ./edit-config python.d/web_log.conf
Desplázate hasta la parte inferior del archivo y encuentra la siguiente sección.
# -------------------------------------------
# registro de nginx en varias distribuciones
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
# gentoo
nginx_log2:
name: 'nginx_site'
path: '/var/log/nginx/localhost.access_log'
Cambia la ruta para monitorear los archivos de registro respectivos. Puedes agregar tantas secciones como desees para monitorear tantos hosts y sus archivos de registro de acceso. Nuestro archivo de configuración se ve como el siguiente.
# -------------------------------------------
# registro de nginx en varias distribuciones
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
nginx_log2:
name: 'nginx_site1'
path: '/var/log/nginx/site1.access_log'
nginx_log3:
name: 'nginx_site2'
path: '/var/log/nginx/site2.access_log'
nginx_log4:
name: 'nginx_site3'
path: '/var/log/nginx/site3.access_log'
Guarda y sal del editor.
Para acceder a los archivos de registro, Netdata necesita permisos para acceder al directorio. Por defecto, el grupo del sistema adm tiene permiso para acceder a los archivos de registro. Para darle acceso a Netdata, necesitamos agregar al usuario netdata al grupo adm.
$ sudo usermod -aG adm netdata
Reinicia Nginx y el servicio de Netdata.
$ sudo systemctl restart nginx netdata
Recarga el panel de control de Netdata para ver los datos de tu archivo de registro.

Paso 11 - Configurar Monitoreo de MySQL/MariaDB
Instalaremos MariaDB para nuestro tutorial. Los pasos permanecen iguales si estás usando un servidor MySQL.
Agrega el repositorio para MariaDB 10.6.
$ sudo nano /etc/yum.repos.d/MariaDB.repo
Pega el siguiente código en él.
# Lista de repositorios de MariaDB 10.6 CentOS - creada 2022-04-12 11:12 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://download.nus.edu.sg/mirror/mariadb/yum/10.6/centos8-amd64
module_hotfixes=1
gpgkey=https://download.nus.edu.sg/mirror/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Instala MariaDB.
$ sudo dnf install MariaDB-server
Habilita el servidor MariaDB.
$ sudo systemctl enable mariadb
Inicia el script de instalación segura de MySQL. El nombre del archivo es diferente en el caso de MariaDB.
$ sudo mariadb-secure-installation
....
Enter current password for root (enter for none): (Presiona Enter)
....
Switch to unix_socket authentication [Y/n] Y (Escribe Y y presiona Enter)
....
Change the root password? [Y/n] Y (Escribe Y y presiona Enter)
New password:
Re-enter new password:
Password updated successfully!
....
Remove anonymous users? [Y/n] Y (Escribe Y y presiona Enter)
....
Disallow root login remotely? [Y/n] Y (Escribe Y y presiona Enter)
....
Remove test database and access to it? [Y/n] Y (Escribe Y y presiona Enter)
....
Reload privilege tables now? [Y/n] Y (Escribe Y y presiona Enter)
....
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Abre el archivo /etc/my.cnf.d/server.cnf para editar.
$ sudo nano /etc/my.cnf.d/server.cnf
Encuentra la sección [mariadb] en el archivo y pega la siguiente línea como se muestra a continuación para habilitar el plugin Userstats. Esta configuración solo funciona en MariaDB y no en el servidor MySQL.
[mariadb]
userstat = 1
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Inicia el servidor MariaDB.
$ sudo systemctl start mariadb
Reinicia el servicio de Netdata.
$ sudo systemctl restart netdata
El panel de MySQL/MariaDB debería comenzar a aparecer en el panel de control de Netdata.

Paso 12 - Configurar Monitoreo de PHP-FPM
Puedes monitorear una o más instancias de PHP-FPM usando Netdata. Para nuestro tutorial, instalaremos PHP 8.0 y luego habilitaremos su monitoreo.
Instalaremos PHP usando el repositorio Remi. Ya instalamos el repositorio EPEL en el paso 3. Instala el repositorio Remi.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Verifica los flujos de PHP disponibles.
$ dnf module list php -y
Última verificación de expiración de metadatos: 0:00:12 hace el Vie 03 Dic 2021 09:39:32 AM UTC.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal Lenguaje de script PHP
php 7.3 common [d], devel, minimal Lenguaje de script PHP
php 7.4 common [d], devel, minimal Lenguaje de script PHP
Repositorio Modular de Remi para Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal Lenguaje de script PHP
php remi-7.3 common [d], devel, minimal Lenguaje de script PHP
php remi-7.4 common [d], devel, minimal Lenguaje de script PHP
php remi-8.0 common [d], devel, minimal Lenguaje de script PHP
php remi-8.1 common [d], devel, minimal Lenguaje de script PHP
Sugerencia: [d]efault, [e]nabled, [x]disabled, [i]nstalled
La versión predeterminada es 7.2. Habilita el repositorio PHP 8.0 de Remi.
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.0
A continuación, instala PHP y sus extensiones requeridas por Firefly III. El paquete php contiene varias dependencias que Firefly III requiere, así que asegúrate de incluirlas.
$ sudo dnf install php php-fpm php-mbstring php-xml php-curl php-mysqlnd php-zip php-intl php-bcmath php-gd php-ldap php-cli
Verifica la instalación.
$ php --version
PHP 8.0.16 (cli) (built: Feb 15 2022 21:34:32) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.16, Copyright (c) Zend Technologies
with Zend OPcache v8.0.16, Copyright (c), by Zend Technologies
Configurar PHP
Abre el archivo /etc/php-fpm.d/www.conf.
$ sudo nano /etc/php-fpm.d/www.conf
Necesitamos establecer el usuario/grupo Unix de los procesos PHP en nginx. Encuentra las líneas user=www-data y group=www-data en el archivo y cámbialas a nginx.
...
; Usuario/grupo Unix de procesos
; Nota: El usuario es obligatorio. Si no se establece el grupo, se utilizará el grupo del usuario predeterminado
; se utilizará.
; RPM: usuario de apache elegido para proporcionar acceso a los mismos directorios que httpd
user = nginx
; RPM: Mantener un grupo permitido para escribir en el directorio de registro.
group = nginx
...
Desplázate hacia abajo en el archivo para localizar la opción ;pm.status_path = /status. Descomenta la línea eliminando el punto y coma frente a ella, como se muestra a continuación.
; Nota: Hay una página web de monitoreo de estado FPM en tiempo real disponible
; Está disponible en: @EXPANDED_DATADIR@/fpm/status.html
;
; Nota: El valor debe comenzar con una barra inclinada (/). El valor puede ser
; cualquier cosa, pero puede no ser una buena idea usar la extensión .php o puede
; entrar en conflicto con un archivo PHP real.
; Valor predeterminado: no establecido
pm.status_path = /status
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Habilita y comienza el servicio PHP.
$ sudo systemctl enable php-fpm --now
Agregar Configuraciones de PHP a Nginx
Abre el archivo de configuración predeterminado de Nginx /etc/nginx/conf.d/default.conf para editar.
$ sudo nano /etc/nginx/conf.d/default.conf
Ingresa el siguiente código dentro del bloque del servidor antes del último corchete de cierre.
# definir monitoreo de PHP-FPM
location ~ ^/(status|ping)$ {
allow 127.0.0.1;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/.sock; # Depende de la versión de PHP y la distribución del SO
}
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Verifica la configuración de Nginx.
$ sudo nginx -t
nginx: el archivo de configuración /etc/nginx/nginx.conf tiene una sintaxis correcta
nginx: la prueba del archivo de configuración /etc/nginx/nginx.conf fue exitosa
Reinicia el servidor Nginx.
$ sudo systemctl restart nginx
Reinicia el servicio de Netdata.
$ sudo systemctl restart netdata
Recarga el panel de control de Netdata, y deberías ver las estadísticas de PHP-FPM.

Paso 13 - Configurar Monitoreo del Motor Docker y Contenedores
Netdata puede monitorear tanto el motor Docker como los contenedores Docker. También puede monitorear aplicaciones que se ejecutan dentro de estos contenedores, pero no cubriremos eso en este tutorial.
Primero, instalemos Docker.
$ sudo dnf install yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf install docker-ce docker-ce-cli containerd.io
Habilita y comienza el servicio Docker.
$ sudo systemctl enable docker --now
Para monitorear el motor Docker, necesitas habilitar la función de métricas de Docker.
Crea y abre el archivo /etc/docker/daemon.json para editar.
$ sudo nano /etc/docker/daemon.json
Pega el siguiente código en él.
{
"metrics-addr" : "127.0.0.1:9323",
"experimental" : true
}
Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.
Reinicia los servicios de Netdata y Docker.
$ sudo systemctl restart docker netdata
Carga nuevamente el panel de control de Netdata, y podrás ver las estadísticas de Docker.

Verás otra entrada llamada Métricas de Prometheus en tu panel porque la opción de métricas fue creada para el panel de Prometheus.

El siguiente paso es monitorear el contenedor Docker. Netdata utiliza grupos de control, referidos como cgroups para monitorear los contenedores Docker. Los grupos de control son una característica de Linux que limita y rastrea el uso de recursos de un conjunto de procesos, en este caso, contenedores. Si tienes contenedores Docker en ejecución cuando instalas Netdata, se rastrean automáticamente. Sin embargo, si ejecutas un contenedor después de instalar Netdata, necesitas reiniciarlo.
Ejecuta un contenedor de prueba.
$ docker container run -d nginx
Verifica el estado del contenedor.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
938b2cf30927 nginx "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 80/tcp pensive_lovelace
El nombre del contenedor es tender_murdock como se muestra. Dado que el contenedor se ha iniciado después de instalar Netdata, reinicia el servicio.
$ sudo systemctl restart netdata
Carga el Panel de Control, y deberías poder ver las estadísticas del Contenedor.

Conclusión
Esto concluye nuestro tutorial sobre la instalación y uso del sistema de monitoreo Netdata para monitorear varias aplicaciones como Nginx, MySQL, PHP-FPM y Docker en un servidor Rocky Linux. Si tienes alguna pregunta, publícalas en los comentarios a continuación.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.