Cómo instalar la herramienta de monitoreo del sistema Prometheus en Debian 11
Prometheus es una aplicación de monitoreo gratuita, de código abierto y basada en la web que recopila métricas de sus servicios y las almacena en una base de datos de series temporales. La configuración predeterminada de Prometheus solo exporta métricas sobre sí mismo. Pero puede ampliarlo instalando exportadores y otros programas. Admite un modelo de datos multidimensional, múltiples modos de gráficos y tableros.
En esta publicación, le mostraremos cómo instalar el monitoreo de Prometheus en Debian 11.
requisitos previos
- Un servidor que ejecuta Debian 11.
- Una contraseña de root está configurada en el servidor.
Instalar Prometeo
Antes de comenzar, se recomienda crear un usuario y un grupo dedicados para Prometheus. Puedes crearlo usando el siguiente comando:
groupadd --system prometheus useradd -s /sbin/nologin --system -g prometheus prometheus
A continuación, descargue la última versión de Prometheus ejecutando el siguiente comando:
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest|grep browser_download_url|grep linux-amd64|cut -d '"' -f 4|wget -qi -
Una vez que se descarga Prometheus, puede ver el archivo descargado usando el siguiente comando:
ls -l
Debería ver el siguiente resultado:
-rw-r--r-- 1 root root 72638078 Oct 5 16:46 prometheus-2.30.3.linux-amd64.tar.gz
A continuación, extraiga el archivo descargado con el siguiente comando:
tar -xvf prometheus*.tar.gz
A continuación, cambie el directorio al directorio extraído con el siguiente comando:
cd prometheus-2.30.3.linux-amd64
Luego, cree algunos directorios requeridos usando el siguiente comando:
mkdir /etc/prometheus mkdir /var/lib/prometheus
A continuación, copie las herramientas y los archivos de configuración necesarios con los siguientes comandos:
mv prometheus.yml /etc/prometheus/prometheus.yml mv consoles/ console_libraries/ /etc/prometheus/ mv prometheus promtool /usr/local/bin/
Una vez que haya terminado, puede continuar con el siguiente paso.
Crear un archivo de servicio de Systemd para Prometheus
A continuación, deberá crear un archivo de servicio systemd para administrar el servicio Prometheus. Puede crearlo ejecutando el siguiente comando:
nano /etc/systemd/system/prometheus.service
Agregue las siguientes líneas:
[Unit] Description=Prometheus Documentation=https://prometheus.io/docs/introduction/overview/ Wants=network-online.target After=network-online.target [Service] Type=simple User=prometheus Group=prometheus ExecReload=/bin/kill -HUP $MAINPID ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries \ --web.listen-address=0.0.0.0:9090 \ --web.external-url= SyslogIdentifier=prometheus Restart=always [Install] WantedBy=multi-user.target
Guarde y cierre el archivo, luego establezca la propiedad y el permiso adecuados para el directorio de configuración de Prometheus:
chown -R prometheus:prometheus /etc/prometheus/ chmod -R 775 /etc/prometheus/ chown -R prometheus:prometheus /var/lib/prometheus/
A continuación, vuelva a cargar el demonio systemd para aplicar los cambios:
systemctl daemon-reload
A continuación, inicie el servicio Prometheus y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:
systemctl start prometheus systemctl enable prometheus
Puede verificar el estado del Prometheus con el siguiente comando:
systemctl status prometheus
Obtendrá el siguiente resultado:
? prometheus.service - Prometheus Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2021-10-16 14:06:39 UTC; 4s ago Docs: https://prometheus.io/docs/introduction/overview/ Main PID: 18415 (prometheus) Tasks: 5 (limit: 2341) Memory: 19.6M CPU: 79ms CGroup: /system.slice/prometheus.service ??18415 /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.cons> Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.172Z caller=head.go:513 component=tsdb msg="On-disk memory mappa> Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.172Z caller=head.go:519 component=tsdb msg="Replaying WAL, this > Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.174Z caller=head.go:590 component=tsdb msg="WAL segment loaded" > Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.174Z caller=head.go:596 component=tsdb msg="WAL replay completed> Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.177Z caller=main.go:849 fs_type=EXT4_SUPER_MAGIC Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.177Z caller=main.go:852 msg="TSDB started" Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.178Z caller=main.go:979 msg="Loading configuration file" filenam> Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.178Z caller=main.go:1016 msg="Completed loading of configuration> Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.179Z caller=main.go:794 msg="Server is ready to receive web requ> Oct 16 14:06:39 debian11 prometheus[18415]: level=info ts=2021-10-16T14:06:39.179Z caller=tls_config.go:191 component=web msg="TLS is disabled>
De forma predeterminada, Prometheus escucha en el puerto 9090. Puede verificarlo con el siguiente comando:
ss -antpl | grep 9090
Debería ver el siguiente resultado: Anuncio
LISTEN 0 4096 *:9090 *:* users:(("prometheus",pid=18415,fd=7))
Una vez que haya terminado, puede continuar con el siguiente paso.
Configurar Nginx como proxy inverso para Prometheus
A continuación, se recomienda instalar y configurar Nginx como proxy inverso para Prometheus. Primero, instale el paquete del servidor web Nginx usando el siguiente comando:
apt-get install nginx -y
Una vez que Nginx esté instalado, cree un archivo de configuración de host virtual de Nginx con el siguiente comando:
nano /etc/nginx/conf.d/prometheus.conf
Agregue las siguientes líneas:
server { listen 80; server_name prometheus.example.com; location / { proxy_pass http://localhost:9090; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Guarde y cierre el archivo, luego verifique el Nginx para cualquier error de sintaxis con el siguiente comando:
nginx -t
Si todo está bien, obtendrá el siguiente resultado:
nginx: configuration file /etc/nginx/nginx.conf test is successful
Finalmente, reinicie el servicio Nginx para aplicar los cambios:
systemctl restart nginx
También puede verificar el estado del servicio Nginx usando el siguiente comando:
systemctl status nginx
Deberías obtener el siguiente resultado:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-10-16 14:08:15 UTC; 2s ago Docs: man:nginx(8) Process: 18792 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 18793 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 18794 (nginx) Tasks: 2 (limit: 2341) Memory: 2.5M CPU: 35ms CGroup: /system.slice/nginx.service ??18794 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??18795 nginx: worker process Oct 16 14:08:15 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server... Oct 16 14:08:15 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Oct 16 14:08:15 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
En este punto, Nginx está instalado y configurado para funcionar con Prometheus. Ahora puede continuar con el siguiente paso.
Acceder al panel de control de Prometheus
Ahora, abra su navegador web y acceda al tablero de Prometheus usando la URL http://prometeo.ejemplo.com. Deberías ver la siguiente página:
Instalar y configurar node_exporter
node_exporter es un exportador que monitoreará y obtendrá la métrica del servidor Prometheus. Primero, descargue la última versión de node_exporter usando el siguiente comando:
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:
tar -xvzf node_exporter-1.2.2.linux-amd64.tar.gz
A continuación, mueva el directorio extraído al directorio /etc/prometheus/:
mv node_exporter-1.2.2.linux-amd64 /etc/prometheus/node_exporter
A continuación, establezca la propiedad adecuada con el siguiente comando:
chown -R prometheus:prometheus /etc/prometheus/node_exporter
A continuación, cree un archivo de servicio systemd para administrar el servicio node_exporter:
nano /etc/systemd/system/node_exporter.service
Agregue las siguientes líneas:
[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=prometheus ExecStart=/etc/prometheus/node_exporter/node_exporter [Install] WantedBy=default.target
Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd para aplicar los cambios:
systemctl daemon-reload
A continuación, inicie el servicio node_exporter y habilítelo para que se inicie al reiniciar el sistema:
systemctl start node_exporter systemctl enable node_exporter
Puede comprobar el estado de node_exporter con el siguiente comando:
systemctl status node_exporter
Obtendrá el siguiente resultado:
? node_exporter.service - Node Exporter Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2021-10-17 05:38:20 UTC; 4s ago Main PID: 513 (node_exporter) Tasks: 4 (limit: 2341) Memory: 4.7M CPU: 11ms CGroup: /system.slice/node_exporter.service ??513 /etc/prometheus/node_exporter/node_exporter Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.382Z caller=node_exporter.go:115 collector=thermal_zone Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.382Z caller=node_exporter.go:115 collector=time Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.382Z caller=node_exporter.go:115 collector=timex Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.382Z caller=node_exporter.go:115 collector=udp_queues Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.382Z caller=node_exporter.go:115 collector=uname Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.382Z caller=node_exporter.go:115 collector=vmstat Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.382Z caller=node_exporter.go:115 collector=xfs Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.382Z caller=node_exporter.go:115 collector=zfs Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.383Z caller=node_exporter.go:199 msg="Listening on" address=:91> Oct 17 05:38:20 debian11 node_exporter[513]: level=info ts=2021-10-17T05:38:20.383Z caller=tls_config.go:191 msg="TLS is disabled." http2=false
De forma predeterminada, node_exporter escucha en el puerto 9100. Puede verificarlo con el siguiente comando:
ss -antpl | grep 9100
Deberías obtener el siguiente resultado:
LISTEN 0 4096 *:9100 *:* users:(("node_exporter",pid=513,fd=3))
Agregue node_exporter al servidor Prometheus
A continuación, deberá agregar node_exporter al archivo de configuración de Prometheus. Puede hacerlo editando el archivo de configuración predeterminado de Prometheus:
nano /etc/prometheus/prometheus.yml
Bajo la ‘scrape_config‘línea, añadir nueva nombre del trabajo node_exporter agregando las siguientes líneas.
- job_name: 'node_exporter' static_configs: - targets: ['localhost:9100']
Guarde y cierre el archivo, luego reinicie el servicio Prometheus para aplicar los cambios:
systemctl restart prometheus
Verificar Prometheus y node_exporter
Ahora, vaya al tablero de Prometheus y haga clic en el Estado => Objetivo. Debería ver su node_exporter en la siguiente pantalla:
Ahora, vuelve a la página de inicio de Prometheus y escribe node_memory_MemAvailable_bytes en el campo de consulta y haga clic en ‘Ejecutar‘ botón. Obtendrás el siguiente resultado:
También puede obtener el nodo_exportador datos de métricas usando la URL http://su-servidor-ip:9100/metrics Como se muestra abajo:
Conclusión
¡Felicidades! Ha instalado correctamente Prometheus con node_exporter en Debian 11. No dude en preguntarme si tiene alguna pregunta. Para obtener más información, visite el sitio web oficial Prometeo documentación.