Búsqueda de sitios web

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

Artículos relacionados: