Cómo monitorear el servidor Linux con Netdata y Grafana
¿Sabías que puedes visualizar métricas de Netdata en Grafana? Esta guía lo guiará a través de los pasos para instalar Netdata y configurar las métricas que se visualizarán en Grafana. La base de datos que se utilizará para almacenar las métricas de monitoreo de Netdata es InfluxDB. Netdata es una poderosa herramienta distribuida y en tiempo real para monitorear el estado y el rendimiento que se utiliza para sistemas de infraestructura y diversas aplicaciones.
Puede optimizar en gran medida el agente de monitoreo que instale en todos sus sistemas y contenedores. Grafana, por otro lado, es una herramienta que te permite consultar y visualizar tus métricas sin importar dónde estén almacenadas.
Paso 1: instalar Netdata
Netdata se puede instalar en cualquier sistema Linux ejecutando el script kickstart proporcionado por los desarrolladores.
Para RHEL 8 y FreeBSD, utilice:
- Cómo instalar Netdata en RHEL 8/CentOS 8
- Cómo instalar Netdata en RHEL 8/CentOS 8
Para cualquier otra versión de Linux, ejecute el siguiente script automatizado para instalar Netdata.
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Esto instalará todas las dependencias del sistema Netdata antes de compilar Netdata en el sistema. El servicio debería iniciarse automáticamente después de la instalación.
Si no se está ejecutando, inícielo manualmente.
systemctl enable --now netdata
Consultar estado del servicio.
$ systemctl status netdata
● netdata.service - Real time performance monitoring
Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-08-19 22:53:20 UTC; 36s ago
Process: 47285 ExecStartPre=/bin/chown -R netdata /run/netdata (code=exited, status=0/SUCCESS)
Process: 47283 ExecStartPre=/bin/mkdir -p /run/netdata (code=exited, status=0/SUCCESS)
Process: 47281 ExecStartPre=/bin/chown -R netdata /var/cache/netdata (code=exited, status=0/SUCCESS)
Process: 47280 ExecStartPre=/bin/mkdir -p /var/cache/netdata (code=exited, status=0/SUCCESS)
Main PID: 47287 (netdata)
Tasks: 79 (limit: 10843)
Memory: 171.8M
CGroup: /system.slice/netdata.service
├─47287 /usr/sbin/netdata -P /run/netdata/netdata.pid -D
├─47290 /usr/sbin/netdata --special-spawn-server
├─47461 /usr/libexec/netdata/plugins.d/go.d.plugin 1
├─47465 /usr/libexec/netdata/plugins.d/ebpf.plugin 1
├─47467 /usr/libexec/netdata/plugins.d/debugfs.plugin 1
├─47472 /usr/libexec/netdata/plugins.d/apps.plugin 1
└─47486 /usr/libexec/netdata/plugins.d/systemd-journal.plugin 1
Aug 19 22:53:21 cent8.mylab.io ebpf.plugin[47465]: set name of thread 47482 to EBPF SHM
Aug 19 22:53:21 cent8.mylab.io ebpf.plugin[47465]: thread created with task id 47483
Aug 19 22:53:21 cent8.mylab.io ebpf.plugin[47465]: set name of thread 47483 to EBPF FUNCTIONS
Aug 19 22:53:21 cent8.mylab.io debugfs.plugin[47467]: Zswap is disabled
Aug 19 22:53:21 cent8.mylab.io debugfs.plugin[47467]: Failed to find powercap zones.
Aug 19 22:53:22 cent8.mylab.io apps.plugin[47472]: Using now_boottime_usec() for uptime (dt is 5 ms)
También puedes probar Netdata en un contenedor acoplable ejecutando:
docker run -d --name=netdata \
-p 19999:19999 \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata
Paso 2: instale InfluxDB y Grafana
El siguiente paso es la instalación de InfluxDB y Grafana, tenemos guías tanto para servidores Debian, Ubuntu como CentOS.
Instalar Grafana:
Cómo instalar Grafana en Ubuntu y Debian
Instale Grafana e InfluxDB en CentOS 7
Cómo instalar Grafana en RHEL 8
Instalar InfluxDB:
Instale InfluxDB en Ubuntu y Debian
Cómo instalar InfluxDB en Fedora
Cómo instalar InfluxDB en RHEL 8/CentOS 8
Paso 3: Configurar Netdata para usar InfluxDB
Configuraremos Netdata para usar InfluxDB como base de datos de series temporales. Abra la configuración de netdata y busque el bloque [backend]
y configúrelo.
[backend]
enabled = yes
type = opentsdb
destination = localhost:4242
Debería verse similar al siguiente.
Ahora abra la configuración de InfluxDB y habilite el servicio OpenTSDB
$ sudo vim /etc/influxdb/influxdb.conf
[[opentsdb]]
enabled = true
bind-address = ":4242"
database = "opentsdb"
Reinicie los servicios influxdb y netdata después de realizar el cambio.
sudo systemctl restart influxdb netdata
Confirme que tiene el puerto 4242
escuchando.
~# ss -tunelp | grep 4242
tcp LISTEN 0 128 *:4242 *:* users:(("influxd",pid=27646,fd=15)) uid:998 ino:176788 sk:17 v6only:0 <->
Netdata debería comenzar a enviar métricas a InfluxDB.
$ influx -username 'monitoring' -password 'StrongPassword'
Connected to http://localhost:8086 version 1.7.4
InfluxDB shell version: 1.7.4
Enter an InfluxQL query
> SHOW DATABASES
name: databases
name
----
_internal
opentsdb
Puede ver que se ha creado la base de datos opentsdb
. Confirmemos si hay métricas de Netdata en esta base de datos.
> USE opentsdb
> SHOW MEASUREMENTS LIMIT 10
name: measurements
name
netdata.apps.cpu.VMs
netdata.apps.cpu.X
netdata.apps.cpu.apps.plugin
netdata.apps.cpu.charts.d.plugin
netdata.apps.cpu.containers
netdata.apps.cpu.cron
netdata.apps.cpu.dhcp
netdata.apps.cpu.go.d.plugin
netdata.apps.cpu.iscsi
netdata.apps.cpu.kernel
Paso 4: configurar Grafana para usar InfluxDB
Inicie sesión en su Grafana usando http://serverip:3000
e inicie sesión como usuario administrador y contraseña. El clic en “Agregar fuente de datos:
Seleccione el tipo de fuente de datos InfluxDB de la lista.
Proporcione la URL del servidor, el nombre de la base de datos y los detalles de autenticación si tiene activada la autenticación http.
Guarde y pruebe la configuración proporcionada.
Paso 5: Crear/Importar el panel de Netdata Grafana.
Encontré un panel de Netdata que funciona para grafana. Importarlo proporcionando el número del Panel de control.
Haga clic en "Cargar" para importar el panel. Seleccione la fuente de datos de InfluxDB que agregó anteriormente para finalizar la importación.
En poco tiempo, debería ver las métricas de netdata para su servidor en Grafana. El panel solo muestra estadísticas simples del sistema, que puede mejorar para su uso.
Conclusión
Ha aprendido cómo puede utilizar Netdata, InfluxDB y Grafana para monitorear sus servidores de aplicaciones, servidores de bases de datos y otras aplicaciones que se ejecutan en su infraestructura. Si está interesado en otras guías de seguimiento, consulte:
Monitorear el sistema Linux con Grafana y Telegraf
Monitoreo de Ceph Cluster con Prometheus y Grafana
Cómo monitorear Redis Server con Prometheus y Grafana en 5 minutos
Cómo monitorear el rendimiento del servidor Linux con Prometheus y Grafana en 5 minutos
Cómo monitorear el servidor DNS BIND con Prometheus y Grafana
Monitoreo de MySQL/MariaDB con Prometheus en cinco minutos
Cómo monitorear el servidor web Apache con Prometheus y Grafana en 5 minutos