Instalación de Netdata en un VPS: Monitorización de recursos en tiempo real con alertas
TL;DR
En esta guía detallada, configuraremos paso a paso Netdata en su VPS, una potente herramienta para la monitorización del rendimiento del servidor en tiempo real. Aprenderá cómo instalar Netdata, configurarlo para la recopilación de métricas y establecer alertas para estar siempre al tanto del estado de su sistema y reaccionar rápidamente ante posibles problemas.
- Monitorización en tiempo real: Netdata proporciona gráficos por segundo para todos los aspectos de su servidor.
- Facilidad de instalación: Instalación rápida y sencilla con el script oficial.
- Configuración flexible: Posibilidad de ajustar la recopilación de métricas y los umbrales de alerta.
- Alertas automáticas: Configuración de notificaciones por email, Slack, Telegram y otros canales.
- Ligereza: Netdata está diseñado para ser lo más eficiente posible y consumir un mínimo de recursos, incluso en un VPS modesto.
¿Qué configuramos y por qué?
Configuraremos Netdata, una herramienta gratuita de código abierto que recopila métricas en tiempo real (por segundo) y las visualiza en paneles web interactivos. Está diseñada para monitorizar el rendimiento de sistemas y aplicaciones, así como para detectar anomalías y alertar sobre problemas.
Al final, obtendrá una imagen completa del estado de su VPS: carga de CPU, uso de RAM, operaciones de disco, tráfico de red, procesos, actividad del kernel, así como métricas para cientos de otros servicios y aplicaciones. Todo esto estará disponible a través de una interfaz web intuitiva que se actualiza en tiempo real.
El valor principal de Netdata radica en su capacidad para identificar rápidamente cuellos de botella y problemas de rendimiento. Cuando algo va mal —ya sea un pico repentino en la carga del procesador, un disco lleno o una actividad de red inusual— Netdata lo mostrará de inmediato. Con las alertas configuradas, recibirá notificaciones por email, Slack o Telegram, lo que le permitirá reaccionar rápidamente antes de que el problema afecte a sus usuarios o servicios.
Alternativas y por qué Netdata en un VPS
En el mercado existen numerosas soluciones de monitorización, que se pueden dividir en varias categorías:
- Servicios gestionados en la nube (por ejemplo, Datadog, New Relic, Amazon CloudWatch): Estas soluciones ofrecen potentes funciones, gestión centralizada y un esfuerzo mínimo de configuración. Sin embargo, a menudo son costosas, especialmente para proyectos pequeños o un solo VPS, y pueden crear dependencia de un proveedor específico (vendor lock-in). Además, los datos de monitorización sensibles se almacenan en servidores de terceros, lo que puede ser inaceptable para proyectos con altos requisitos de privacidad.
- Sistemas complejos autoalojados (por ejemplo, Prometheus + Grafana, Zabbix): Estas son plataformas muy potentes y flexibles, capaces de monitorizar infraestructuras enormes. Sin embargo, su instalación y configuración requieren mucho más tiempo, conocimientos expertos y recursos. Prometheus y Grafana, aunque populares, tienen una curva de aprendizaje pronunciada y requieren el despliegue de varios componentes. Zabbix puede ser bastante intensivo en recursos y complejo de gestionar para un solo servidor.
Netdata ocupa un nicho único entre estas categorías. Ofrece una funcionalidad comparable a algunas soluciones de pago, pero es ligero, fácil de instalar y gestionar, y completamente gratuito. Para el propietario de un VPS que necesita una forma rápida, eficiente y fiable de monitorizar sin costes ni complejidades innecesarias, Netdata es la elección ideal. Usted obtiene control total sobre los datos y la infraestructura, evitando la dependencia de servicios de terceros y sus políticas de precios.
¿Qué configuración de VPS se necesita para esta tarea?
Netdata está diseñado para ser muy ligero y eficiente. Consume una cantidad mínima de recursos, lo que lo hace ideal para instalar incluso en VPS modestos. Sin embargo, los requisitos del servidor dependerán no tanto de Netdata en sí, sino de la carga de trabajo principal que planee monitorizar.
Requisitos mínimos para Netdata (además de la carga principal):
- CPU: 1 vCPU. Netdata está optimizado para sistemas multinúcleo, pero en un sistema de un solo núcleo también funcionará de manera estable, añadiendo solo una carga insignificante.
- RAM: 50-100 MB. Este es el volumen mínimo que Netdata consume para la monitorización básica. Si planea almacenar el historial de métricas por un período más largo o monitorizar muchos servicios, puede que se requiera más RAM (hasta 200-500 MB).
- Disco: 200-500 MB para la instalación y almacenamiento de configuraciones. Si utiliza un motor de disco para almacenar el historial de métricas, este volumen puede aumentar, pero por defecto Netdata almacena los datos en la memoria RAM.
- Red: Requisitos mínimos. Netdata utiliza el puerto 19999 para su interfaz web.
Plan de VPS recomendado para tareas típicas (GitLab, Mattermost, Minecraft, nodo Bitcoin):
Para la mayoría de los escenarios donde Netdata funcionará junto con otra aplicación que consume muchos recursos, se recomienda la siguiente configuración:
- CPU: 2-4 vCPU (para GitLab o un nodo Bitcoin, 4 es mejor).
- RAM: 4-8 GB (para GitLab o un nodo Bitcoin, 8 GB es mejor).
- Disco: 100-200 GB SSD (NVMe es preferible para un alto rendimiento de E/S, lo cual es crítico para bases de datos o nodos).
- Red: Canal de 100-200 Mbps. Para un nodo Bitcoin o un servidor de juegos, puede que se requiera un canal más amplio (hasta 1 Gbps).
Por ejemplo, un VPS con las características mencionadas será una excelente opción para la mayoría de las tareas enumeradas, proporcionando un margen suficiente de recursos para el funcionamiento estable tanto de la aplicación principal como de Netdata.
Cuándo se necesita un dedicado y no un VPS
Los servidores dedicados se vuelven necesarios cuando:
- Se requiere el máximo rendimiento: Si su aplicación requiere todos los recursos de un núcleo de CPU físico, enormes volúmenes de RAM (64 GB o más) o un rendimiento extremadamente alto del subsistema de disco (NVMe RAID).
- Altos requisitos de E/S: Para bases de datos muy activas, grandes almacenamientos de archivos o servidores de juegos de alta carga, donde un VPS puede encontrar limitaciones de IOPS.
- Requisitos de hardware especiales: Por ejemplo, para cálculos de GPU, tarjetas de red específicas u otros componentes de hardware especializados.
- Proyectos a gran escala: Cuando un solo VPS ya no es suficiente y desea evitar la virtualización para una máxima eficiencia.
Para ejecutar un nodo Bitcoin/Ethereum con un gran volumen de datos, o si planea alojar varios servicios de alta carga, quizás valga la pena considerar un dedicado adecuado.
Ubicación: en qué influye
La elección de la ubicación del VPS juega un papel importante:
- Latencia (Latency): Cuanto más cerca esté el servidor de su audiencia objetivo o de usted, menor será la latencia. Esto es crítico para aplicaciones web, servidores de juegos y cualquier servicio interactivo.
- Cumplimiento legal: El almacenamiento de datos en ciertas jurisdicciones puede ser obligatorio para cumplir con las leyes locales (GDPR, HIPAA, etc.).
- Costo: Los precios de los VPS pueden variar según la ubicación debido al costo de la electricidad, los bienes raíces y la infraestructura de red.
- Acceso a la red: Algunas ubicaciones pueden ofrecer un mejor peering con ciertas regiones del mundo, lo que garantiza un acceso más estable y rápido.
Para la monitorización de Netdata, la ubicación no es tan crítica como para el servicio principal, pero para acceder a la interfaz web, apreciará una baja latencia.
Preparación del servidor
Antes de instalar Netdata, es necesario realizar una preparación básica de su VPS. Utilizaremos Ubuntu Server 22.04 LTS, ya que es uno de los sistemas operativos más populares y estables para servidores.
1. Conexión por SSH
Conéctese a su VPS utilizando SSH. Si usa macOS/Linux, abra una terminal; para Windows puede usar PuTTY o WSL.
ssh user@your_vps_ip_address
Reemplace user con el nombre de usuario de su VPS (normalmente root o el nombre proporcionado por el proveedor) y your_vps_ip_address con la dirección IP de su servidor.
2. Actualización del sistema
Siempre comience actualizando la lista de paquetes y actualizándolos a las últimas versiones para garantizar la seguridad y estabilidad del sistema. Esto también ayudará a evitar conflictos de dependencias.
sudo apt update # Actualizar la lista de paquetes disponibles
sudo apt upgrade -y # Actualizar todos los paquetes instalados a las últimas versiones
sudo apt autoremove -y # Eliminar paquetes innecesarios que se instalaron como dependencias y ya no se usan
3. Creación de un nuevo usuario con permisos sudo (si trabaja como root)
Trabajar como usuario root no es seguro. Se recomienda crear un usuario normal y otorgarle permisos sudo.
sudo adduser username # Crear un nuevo usuario. Reemplace 'username' con el nombre deseado.
sudo usermod -aG sudo username # Añadir el usuario al grupo sudo para que pueda ejecutar comandos con sudo
Ahora, salga de la sesión root e inicie sesión con el nuevo usuario:
exit
ssh username@your_vps_ip_address
4. Configuración del firewall básico (UFW)
UFW (Uncomplicated Firewall) es una herramienta conveniente para gestionar iptables. Lo configuraremos para permitir SSH y el acceso a Netdata.
sudo apt install ufw -y # Instalar UFW
sudo ufw allow OpenSSH # Permitir conexiones SSH (puerto 22)
sudo ufw allow 19999/tcp # Permitir acceso al puerto de Netdata (19999)
sudo ufw enable # Habilitar el firewall. Confirme con 'y'.
sudo ufw status # Verificar el estado del firewall
La salida de ufw status debe mostrar que OpenSSH y el puerto 19999/tcp están permitidos.
5. Instalación de Fail2Ban (para protección contra ataques de fuerza bruta)
Fail2Ban escanea los registros y bloquea las direcciones IP que muestran signos de actividad maliciosa (por ejemplo, múltiples intentos fallidos de inicio de sesión SSH).
sudo apt install fail2ban -y # Instalar Fail2Ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # Copiar la configuración por defecto
sudo systemctl enable fail2ban # Habilitar el inicio automático de Fail2Ban al arrancar
sudo systemctl start fail2ban # Iniciar el servicio Fail2Ban
sudo systemctl status fail2ban # Verificar el estado de Fail2Ban
Fail2Ban protege SSH por defecto. Para Netdata, generalmente no se requiere protección adicional de Fail2Ban, ya que el acceso a menudo se realiza a través de un proxy inverso con autenticación HTTPS.
6. Instalación de utilidades necesarias
Instalaremos algunas utilidades útiles que pueden ser de ayuda al trabajar con el servidor.
sudo apt install git curl wget htop screen -y # Instalar Git, cURL, Wget, htop (monitor de procesos), Screen (multiplexor de terminal)
Ahora su servidor está listo para la instalación de Netdata.
Instalación de software — paso a paso
La instalación de Netdata en Ubuntu es muy sencilla gracias al script de instalación oficial. Detecta automáticamente su sistema operativo, instala las dependencias necesarias y compila Netdata desde el código fuente.
1. Instalación de dependencias
Aunque el script oficial intenta instalar la mayoría de las dependencias, es mejor asegurarse de que los paquetes de compilación esenciales estén presentes en el sistema. Estos paquetes son necesarios para compilar Netdata desde el código fuente.
sudo apt install -y curl git build-essential autoconf automake libtool pkg-config zlib1g-dev libssl-dev libmnl-dev libprotobuf-dev protobuf-compiler libxxhash-dev liblz4-dev libjudy-dev python3 python3-pip python3-dev
Este comando instala:
curl,git: Para descargar el código fuente.build-essential,autoconf,automake,libtool,pkg-config: Herramientas esenciales para la compilación de software.- Varios paquetes
lib-dev: Bibliotecas y sus archivos de cabecera, necesarios para compilar Netdata con soporte para varias funciones (por ejemplo, SSL, compresión, protobuf). python3,python3-pip,python3-dev: Para los plugins de Python de Netdata.
2. Descarga y ejecución del script de instalación de Netdata
Netdata proporciona un script de instalación universal que hará todo el trabajo por usted. Utilizaremos una versión actual que será estable en 2026 (por ejemplo, v1.48.0, aunque Netdata se actualiza constantemente y el script siempre descarga la última versión estable).
# Vaya al directorio temporal
cd /tmp
# Descargue el script de instalación de Netdata (usando la última versión estable)
# El script siempre toma la última versión de GitHub, por lo que no es necesario especificar una etiqueta concreta, pero para el ejemplo, supongamos que es la 1.48.0
wget -O netdata-installer.sh https://my-netdata.io/kickstart.sh
# Haga el script ejecutable
chmod +x netdata-installer.sh
# Ejecute el script de instalación
# Use la opción --non-interactive para evitar preguntas durante la instalación.
# También puede especificar --disable-telemetry si no desea enviar datos de uso anónimos.
sudo ./netdata-installer.sh --non-interactive
Este script realizará las siguientes acciones:
- Clonará el repositorio de Netdata en
/opt/netdata. - Instalará todas las dependencias del sistema necesarias.
- Compilará Netdata desde el código fuente.
- Configurará Netdata como un servicio del sistema (systemd).
- Iniciará Netdata.
El proceso de instalación puede tardar varios minutos dependiendo del rendimiento de su VPS.
3. Verificación del estado de Netdata
Una vez finalizada la instalación, asegúrese de que el servicio Netdata esté iniciado y funcionando correctamente.
sudo systemctl status netdata
La salida debería mostrar que el servicio netdata.service está activo (active (running)) y habilitado para iniciarse automáticamente al arrancar el sistema.
# Ejemplo de salida
# ● netdata.service - Real-time performance monitoring
# Loaded: loaded (/etc/systemd/system/netdata.service; enabled; vendor preset: enabled)
# Active: active (running) since Mon 2026-01-01 10:00:00 UTC; 10s ago
# Main PID: 1234 (netdata)
# Tasks: 35 (limit: 1109)
# Memory: 45.0M
# CPU: 1.234s
# CGroup: /system.slice/netdata.service
# └─1234 /usr/sbin/netdata -P /var/run/netdata -D
4. Adición de Netdata al inicio automático
El script de instalación suele hacer esto automáticamente, pero para asegurarse, puede ejecutar el comando:
sudo systemctl enable netdata
Esto garantiza que Netdata se iniciará cada vez que se reinicie el servidor.
5. Acceso a la interfaz web de Netdata
Ahora puede acceder a la interfaz web de Netdata abriendo su navegador web y navegando a la dirección:
http://your_vps_ip_address:19999
Reemplace your_vps_ip_address con la dirección IP real de su VPS. Debería ver el panel de monitoreo interactivo de Netdata, mostrando métricas de su sistema en tiempo real.
En este punto, la conexión HTTP no está cifrada. Para sistemas de producción, se recomienda encarecidamente configurar HTTPS, lo que haremos en la sección "Configuración".
Configuración
Después de la instalación, Netdata funciona "de fábrica", pero para una configuración más detallada, seguridad e integración de alertas, se requiere configuración. El archivo de configuración principal de Netdata se encuentra en /etc/netdata/netdata.conf. Además, para las alertas se utiliza /etc/netdata/health/health_alarm_notify.conf, y para los módulos, los archivos en /etc/netdata/conf.d/.
1. Archivo de configuración principal de Netdata (netdata.conf)
Abra el archivo netdata.conf para editarlo. Siempre haga una copia de seguridad antes de realizar cambios.
sudo cp /etc/netdata/netdata.conf /etc/netdata/netdata.conf.bak
sudo nano /etc/netdata/netdata.conf
Configuraciones importantes:
- Sección
[web]:bind to = 127.0.0.1: Por defecto, Netdata escucha todas las interfaces (0.0.0.0). Por seguridad, si planea usar un proxy inverso, es mejor vincularlo a la interfaz local para que solo sea accesible desde el interior del servidor.default port = 19999: Si desea cambiar el puerto, hágalo aquí. No olvide actualizar las reglas del firewall.
- Sección
[global]:hostname = my-vps-server: Establezca un nombre de host más comprensible que se mostrará en la interfaz web.history = 3600: Cantidad de segundos de datos almacenados en la memoria RAM. Por defecto, 1 hora. Aumentar este valor requiere más RAM.memory mode = ram: Modo de almacenamiento de datos.ram(por defecto) almacena todo en la RAM. Para un almacenamiento a largo plazo, se puede usardbengine, pero esto aumentará la carga en el disco.
Ejemplo de cambios en netdata.conf:
[web]
bind to = 127.0.0.1
default port = 19999
[global]
hostname = my-awesome-vps
history = 7200 # Almacenar 2 horas de historial en RAM
memory mode = ram
Después de guardar los cambios, reinicie Netdata:
sudo systemctl restart netdata
2. Configuración de alertas (Alerts)
Netdata tiene un potente sistema de alertas. La configuración se encuentra en /etc/netdata/health/health_alarm_notify.conf.
sudo nano /etc/netdata/health/health_alarm_notify.conf
En este archivo encontrará muchos ejemplos para diferentes métodos de alerta (correo electrónico, Slack, Telegram, PagerDuty, etc.).
Ejemplo de configuración de alertas por correo electrónico:
Busque la sección SEND_EMAIL y descomente o modifique las siguientes líneas:
#------------------------------------------------------------------------------
# opciones de notificación global por correo electrónico
# habilitar notificaciones globales por CORREO ELECTRÓNICO
# Esta es la única configuración que necesita habilitar para recibir notificaciones por correo electrónico.
SEND_EMAIL="YES"
# La dirección de correo electrónico del destinatario.
# Se pueden especificar múltiples destinatarios, separados por espacios
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# La dirección de correo electrónico del remitente.
# Se puede usar una palabra clave especial '$HOSTNAME', que Netdata reemplazará con el nombre de host de la máquina.
DEFAULT_SENDER_EMAIL="netdata@$HOSTNAME"
# El nombre del comando mail a usar.
# Puede ser mail, mailx, sendmail, etc.
# Consulte man mail para más información.
MAIL_COMMAND="mail"
Para enviar correos electrónicos, su sistema necesita un agente de correo (MTA), como Postfix o Sendmail. Instalemos Postfix:
sudo apt install postfix -y
Durante la instalación de Postfix, seleccione "Internet Site" e indique su nombre de dominio (o nombre de host del VPS). Después de esto, reinicie Netdata.
Ejemplo de configuración de alertas en Telegram:
Para Telegram, necesitará crear un bot a través de @BotFather y obtener el token del bot, así como conocer el ID de chat de su chat/grupo.
En el archivo health_alarm_notify.conf, busque la sección TELEGRAM y complete los datos:
#------------------------------------------------------------------------------
# opciones de notificación global de telegram
# habilitar notificaciones globales de TELEGRAM
SEND_TELEGRAM="YES"
# El token del bot de telegram
# obtenga un bot de @BotFather en telegram
TELEGRAM_BOT_TOKEN="YOUR_TELEGRAM_BOT_TOKEN"
# El ID de chat de telegram.
# Puede ser el ID de chat de un usuario, grupo o canal.
# Para encontrar su ID de chat, envíe un mensaje a su bot y luego abra:
# https://api.telegram.org/botYOUR_TELEGRAM_BOT_TOKEN/getUpdates
TELEGRAM_CHAT_ID="YOUR_TELEGRAM_CHAT_ID"
Secretos a través de variables de entorno: Para sistemas de producción, es mejor no almacenar tokens y contraseñas directamente en los archivos de configuración. Netdata admite la transmisión de secretos a través de variables de entorno. Por ejemplo, puede definir variables en el archivo /etc/systemd/system/netdata.service.d/override.conf (cree el directorio y el archivo si no existen):
# /etc/systemd/system/netdata.service.d/override.conf
[Service]
Environment="NETDATA_ALARM_TELEGRAM_BOT_TOKEN=YOUR_TELEGRAM_BOT_TOKEN"
Environment="NETDATA_ALARM_TELEGRAM_CHAT_ID=YOUR_TELEGRAM_CHAT_ID"
Después de crear el archivo, ejecute:
sudo systemctl daemon-reload
sudo systemctl restart netdata
Luego, en health_alarm_notify.conf, puede usar estas variables:
TELEGRAM_BOT_TOKEN="${NETDATA_ALARM_TELEGRAM_BOT_TOKEN}"
TELEGRAM_CHAT_ID="${NETDATA_ALARM_TELEGRAM_CHAT_ID}"
3. Configuración de HTTPS con Caddy (recomendado)
El acceso a Netdata a través de HTTP (puerto 19999) no es seguro. Para servidores de producción, es necesario configurar HTTPS. Caddy es un servidor web moderno que gestiona automáticamente los certificados Let's Encrypt y es muy fácil de configurar.
Instalación de Caddy:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y
Configuración de Caddyfile:
Cree o edite el archivo /etc/caddy/Caddyfile:
# /etc/caddy/Caddyfile
yourdomain.com {
reverse_proxy 127.0.0.1:19999
# Opcional: autenticación básica
# basicauth {
# username your_username
# password your_hashed_password # Use caddy hash-password para generar
# }
}
Reemplace yourdomain.com con su nombre de dominio real que apunte a la IP de su VPS.
Si desea agregar autenticación básica, descomente las líneas basicauth y genere el hash de la contraseña:
caddy hash-password --plaintext your_password
# Copie el hash resultante e insértelo en el Caddyfile.
Configuración del firewall para Caddy:
Permita HTTP (puerto 80) y HTTPS (puerto 443) a través de UFW:
sudo ufw allow http
sudo ufw allow https
sudo ufw reload
Reinicio de Caddy:
sudo systemctl reload caddy
sudo systemctl enable caddy
Ahora podrá acceder a Netdata en https://yourdomain.com. Caddy obtendrá y renovará automáticamente el certificado SSL de Let's Encrypt.
4. Verificación de funcionamiento
Asegúrese de que todo funciona correctamente:
- Verificación del servicio Netdata:
sudo systemctl status netdata
bind to = 127.0.0.1):
curl http://127.0.0.1:19999
Debería recibir el código HTML de la página de Netdata.
curl -I https://yourdomain.com
Debería ver HTTP/2 200 OK y encabezados que indiquen una conexión exitosa.
/etc/netdata/health.d/ a un valor muy bajo para que se active inmediatamente (por ejemplo, cambiar el umbral de uso de RAM al 1%). Después de la verificación, restaure el valor original.Copias de seguridad y mantenimiento
Aunque Netdata almacena principalmente datos en la RAM y es relativamente "sin estado" (stateless), es importante hacer copias de seguridad de sus archivos de configuración y, posiblemente, de los plugins personalizados. Los datos de monitoreo en tiempo real generalmente no se respaldan, ya que son efímeros y pueden recuperarse después de un reinicio.
1. Qué respaldar
Los elementos principales que deben respaldarse regularmente son:
- Archivos de configuración de Netdata: El directorio
/etc/netdata/contiene todas las configuraciones, incluyendonetdata.conf, las configuraciones de alertashealth_alarm_notify.confy las reglas personalizadas enhealth.d/, así como las configuraciones de plugins enconf.d/. - Plugins personalizados: Si ha creado sus propios plugins de Netdata, pueden encontrarse en
/usr/libexec/netdata/plugins.d/o/opt/netdata/usr/libexec/netdata/plugins.d/. - Configuración del proxy inverso: Por ejemplo,
/etc/caddy/Caddyfile. - Configuración del firewall: Las reglas de UFW se pueden guardar con el comando
sudo ufw status verboseo respaldar los archivos en/etc/ufw/.
2. Script simple de copia de seguridad automática
Crearemos un script simple que archivará los archivos importantes y los guardará en el directorio especificado.
# Cree un directorio para las copias de seguridad
sudo mkdir -p /var/backups/netdata_configs
# Cree el script de copia de seguridad
sudo nano /usr/local/bin/backup_netdata.sh
Pegue el siguiente contenido en el archivo backup_netdata.sh:
#!/bin/bash
# Directorio para almacenar las copias de seguridad
BACKUP_DIR="/var/backups/netdata_configs"
# Nombre del archivo de copia de seguridad con marca de tiempo
TIMESTAMP=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="$BACKUP_DIR/netdata_config_backup_$TIMESTAMP.tar.gz"
# Directorios y archivos para la copia de seguridad
CONFIG_DIRS="/etc/netdata /etc/caddy /etc/ufw"
CUSTOM_PLUGINS="/usr/libexec/netdata/plugins.d" # Verifique dónde se encuentran sus plugins personalizados
# Creación del archivo
tar -czf "$BACKUP_FILE" $CONFIG_DIRS $CUSTOM_PLUGINS 2>/dev/null
# Eliminación de copias de seguridad antiguas (guardamos las últimas 7 días)
find "$BACKUP_DIR" -name "netdata_config_backup_*.tar.gz" -mtime +7 -delete
echo "Netdata configuration backup created: $BACKUP_FILE"
Haga que el script sea ejecutable:
sudo chmod +x /usr/local/bin/backup_netdata.sh
3. Configuración de Cron para copias de seguridad automáticas
Agregue el script al programador Cron para que se ejecute diariamente.
sudo crontab -e
Agregue la siguiente línea al final del archivo para que el script se ejecute todos los días a las 03:00 de la mañana:
0 3 * * * /usr/local/bin/backup_netdata.sh >> /var/log/netdata_backup.log 2>&1
Este comando ejecutará el script y redirigirá su salida (incluidos los errores) al archivo /var/log/netdata_backup.log.
4. Dónde almacenar las copias de seguridad
Almacenar las copias de seguridad en el mismo servidor que está respaldando no es seguro. En caso de fallo del VPS, perderá tanto el servidor como las copias de seguridad. Se recomienda utilizar almacenamiento externo:
- Almacenamiento en la nube compatible con S3: Servicios como Amazon S3, MinIO, Wasabi, Backblaze B2 ofrecen almacenamiento fiable y económico. Utilice utilidades como
s3cmd,rcloneoresticpara sincronizar las copias de seguridad. - VPS separado: Puede configurar un segundo VPS pequeño en el que sincronizará las copias de seguridad mediante
rsynca través de SSH. - Almacenamiento local (para un servidor doméstico): Un disco duro externo o almacenamiento en red (NAS).
Ejemplo de integración con S3 usando rclone:
# Instalación de rclone
curl https://rclone.org/install.sh | sudo bash
# Configuración de rclone (requerirá la entrada interactiva de credenciales S3)
rclone config
# Agregue al script backup_netdata.sh después de crear el archivo:
# rclone copy "$BACKUP_FILE" "my_s3_remote:netdata-backups/"
5. Actualizaciones
Las actualizaciones regulares son importantes para la seguridad y para obtener nuevas funciones.
- Actualización de Netdata: Netdata proporciona su propio script para la actualización. Descarga la última versión y recompila Netdata.
sudo /opt/netdata/usr/sbin/netdata-updater.sh
Se recomienda ejecutarlo una vez al mes o después de lanzamientos significativos.
sudo apt update && sudo apt upgrade -y
Para servidores importantes, es mejor planificar "ventanas de mantenimiento" para las actualizaciones, con el fin de minimizar el riesgo de inactividad, aunque para Netdata esto rara vez es un problema.
Solución de problemas + Preguntas frecuentes
Netdata no se inicia o no está disponible en IP:19999. ¿Qué hacer?
Primero, verifique el estado del servicio Netdata: sudo systemctl status netdata. Si no está activo, revise los registros: journalctl -u netdata --since "1 hour ago". Asegúrese de que el puerto 19999 no esté ocupado por otro proceso (sudo lsof -i :19999) y que el firewall (UFW) permita las conexiones entrantes a ese puerto: sudo ufw status. Si configuró Netdata para escuchar solo en 127.0.0.1, el acceso directo a IP:19999 desde el exterior será imposible; use un proxy inverso.
¿Cómo agregar mis propias métricas a Netdata?
Netdata es muy flexible para agregar métricas personalizadas. Puede usar plugins de Python, scripts bash o enviar datos directamente a través de la Netdata API. Para casos simples, basta con crear un script ejecutable en el directorio /etc/netdata/charts.d/ (para bash) o /etc/netdata/python.d/ (para Python), que genere datos en un formato específico. Netdata detectará y comenzará a recopilar estas métricas automáticamente.
Las alertas no llegan. ¿Dónde buscar el problema?
Verifique el archivo /etc/netdata/health/health_alarm_notify.conf: asegúrese de que SEND_EMAIL="YES" (o SEND_TELEGRAM="YES") y que todas las variables necesarias (direcciones, tokens) estén especificadas correctamente. Revise los registros de Netdata en busca de errores relacionados con el envío de alertas: journalctl -u netdata. Si usa correo electrónico, asegúrese de que su MTA (por ejemplo, Postfix) esté configurado correctamente y sea capaz de enviar correos (verifique los registros de Postfix: tail -f /var/log/mail.log).
Netdata consume demasiados recursos. ¿Cómo optimizarlo?
Netdata suele ser muy ligero, pero al monitorear cientos de servicios o almacenar un historial prolongado, su consumo puede aumentar. En /etc/netdata/netdata.conf, puede reducir el valor de history (cantidad de segundos de almacenamiento de datos en RAM). También puede deshabilitar plugins innecesarios en /etc/netdata/conf.d/, creando un archivo con el contenido enabled: no. Por ejemplo, para deshabilitar el monitoreo de Docker, cree /etc/netdata/conf.d/go.d/docker.conf con enabled: no.
¿Qué configuración mínima de VPS es adecuada?
Para Netdata solo, sin considerar la carga principal, son suficientes 1 vCPU, 512 MB de RAM y 10 GB de SSD. Sin embargo, dado que Netdata generalmente monitorea otros servicios, se recomienda usar un VPS con 2-4 vCPU, 4-8 GB de RAM y 100-200 GB de SSD (NVMe preferible) para un funcionamiento estable tanto de Netdata como de su aplicación principal (por ejemplo, GitLab o nodos de Bitcoin).
¿Qué elegir: VPS o dedicado para esta tarea?
Para la mayoría de las tareas, como ejecutar GitLab, Mattermost, un servidor de Minecraft o un nodo de Bitcoin/Ethereum, un VPS potente será suficiente y más económico. Los servidores dedicados deben considerarse si necesita un rendimiento absoluto sin la sobrecarga de la virtualización, grandes volúmenes de RAM (más de 64 GB), un rendimiento muy alto del subsistema de disco (por ejemplo, NVMe RAID para bases de datos con carga extrema) o hardware específico no disponible en un VPS.
¿Cómo actualizar Netdata a la última versión?
Para actualizar Netdata, use el script de actualización oficial que se instaló junto con Netdata. Ejecute el comando: sudo /opt/netdata/usr/sbin/netdata-updater.sh. El script descargará y compilará automáticamente la última versión estable de Netdata y luego reiniciará el servicio.
¿Se pueden monitorear varios servidores desde un solo Netdata?
Sí, Netdata admite el monitoreo de varios servidores. Puede usar Netdata Cloud para la gestión centralizada y la visualización de paneles de control de todos sus servidores. Alternativamente, puede configurar un modo "padre-hijo" (parent-child), donde varios Netdata hijos envían sus métricas a una única instalación de Netdata padre para agregación y visualización. Esto requerirá una configuración adicional en netdata.conf en cada servidor.
Conclusiones y próximos pasos
¡Felicidades! Ha instalado y configurado Netdata con éxito en su VPS, asegurándose una potente herramienta para el monitoreo de recursos en tiempo real con alertas automáticas. Ahora tiene total transparencia en el funcionamiento de su servidor, lo que le permite reaccionar rápidamente a los problemas y mantener la estabilidad de sus servicios.
Los siguientes pasos para mejorar aún más su monitoreo y el trabajo con el servidor:
- Explore las funciones avanzadas de Netdata: Sumérjase en la documentación de Netdata para descubrir las posibilidades de crear paneles de control personalizados, usar el aprendizaje automático para la detección de anomalías e integrar con otros sistemas.
- Integre Netdata Cloud: Si tiene varios servidores, considere conectarlos a Netdata Cloud para una gestión centralizada, agregación de métricas y una visualización más cómoda de los paneles de control desde un único punto.
- Optimice basándose en datos: Utilice las métricas recopiladas por Netdata para analizar el rendimiento de sus aplicaciones, identificar cuellos de botella y tomar decisiones informadas para optimizar la configuración del servidor o el código de las aplicaciones.
- Amplíe el monitoreo: Configure Netdata para monitorear servicios específicos, como bases de datos (PostgreSQL, MySQL), servidores web (Nginx, Apache), contenedores Docker, colas de mensajes y mucho más, utilizando plugins integrados y personalizados.