Cómo instalar Prometheus en CentOS 8 / RHEL 8

Prometeo es una herramienta de monitoreo, consulta y alerta de código abierto. Creada originalmente por Soundcloud en 2012, varias empresas han adoptado la herramienta rica en funciones para monitorear su infraestructura de TI y garantizar que todos los sistemas funcionen sin problemas. Prometheus le permite consultar y extraer métricas de series temporales, como la utilización de CPU y memoria. protocolo HTTP y visualizarlos en gráficos en tiempo real. También puede configurar Prometheus para enviar alertas en el caso de un tiempo de inactividad de un nodo o servicio e integrarlo con otras herramientas de monitoreo de terceros, como Grafana para una mejor visualización de datos. En esta guía, veremos la instalación de Prometheus en el sistema CentOS 8/RHEL 8.

Paso 1) Creación de un usuario y grupo de Prometheus

Para empezar, vamos a crear un usuario del sistema para Prometheus. Ejecute el siguiente comando para lograr esto.

[[email protected] ~]# useradd -m -s /bin/false prometheus
[[email protected] ~]# id prometheus
uid=1002(prometheus) gid=1002(prometheus) groups=1002(prometheus)
[[email protected] ~]#

Como habrá notado, el usuario del sistema no tiene permisos de inicio de sesión como se especifica en la opción /bin/false

Paso 2) Creación de directorios de configuración para Prometheus

Una vez que se haya creado el usuario para Prometheus, vamos a crear directorios de configuración en los directorios /etc y /var que almacenarán los archivos y datos de configuración de Prometheus. Así que ejecuta los siguientes comandos:

[[email protected] ~]# mkdir /etc/prometheus
[[email protected] ~]# mkdir /var/lib/prometheus

Establecer la propiedad en /var/lib/prometheus

[[email protected] ~]# chown prometheus /var/lib/prometheus/

Paso 3) Descargar el archivo tar de Prometheus

Con los directorios en su lugar, ahora podemos descargar Prometheus. Para obtener la última versión, diríjase a la Página de descarga para obtener la última versión para su entorno. Al momento de escribir este artículo, la última versión era v 2.14.0. Alternativamente, simplemente ejecute el siguiente comando

[[email protected] ~]# dnf install wget -y
[[email protected] ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0.linux-amd64.tar.gz -P /tmp

Una vez que se complete la descarga, extraiga el archivo tarball como se muestra

[[email protected] tmp]# tar -zxpvf prometheus-2.14.0.linux-amd64.tar.gz

Esto te dejará con un directorio llamado prometheus-2.14.0.linux-amd64

Use el comando de árbol para ver la estructura del directorio,

Prometheus-directorio-estructura

El directorio extraído contiene 2 archivos binarios prometheus y promtool y que debemos copiar en la ruta /usr/local/bin.

Entonces, navegue al directorio extraído y cópielos usando el comando:

[[email protected] ~]# cd /tmp/prometheus-2.14.0.linux-amd64
[[email protected] prometheus-2.14.0.linux-amd64]# cp prometheus  /usr/local/bin

Haz lo mismo con el otro archivo binario.

[[email protected] prometheus-2.14.0.linux-amd64]# cp promtool  /usr/local/bin

Paso 4) Crear un archivo de configuración para Prometheus

Para comenzar con la configuración, cree un archivo /etc/prometheus/prometheus.yml y pegue la configuración en el archivo

[[email protected] ~]# vi /etc/prometheus/prometheus.yml
# Global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. 
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. 
  scrape_timeout: 15s  # scrape_timeout is set to the global default (10s).
# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']

Esto solo monitoreará su sistema local (Prometheus Server).

Luego, ajuste el firewall de la siguiente manera para permitir conexiones externas al servidor a través del puerto 9090

[[email protected] ~]# firewall-cmd --add-port=9090/tcp --permanent
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#

Paso 5) Creación de un archivo de servicio Systemd para Prometheus Server

Para que podamos administrar Prometheus como un servicio usando systemd, necesitamos crear un archivo de sistema para él. Entonces, cree el archivo como se muestra y pegue el contenido,

[[email protected] ~]# vi /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Time Series Collection and Processing Server
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
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

[Install]
WantedBy=multi-user.target

Para que los cambios surtan efecto, vuelva a cargar systemctl,

[[email protected] ~]# systemctl daemon-reload

Ahora inicie y permita que Prometheus se ejecute en el arranque

[[email protected] ~]# systemctl start prometheus
[[email protected] ~]# systemctl enable prometheus

Solo para estar seguro de que Prometheus se está ejecutando, ejecute el comando:

[[email protected] ~]# systemctl status prometheus

prometeo-servicio-estado-centos8

A partir del resultado que se muestra, podemos ver claramente que Prometheus se está ejecutando como se esperaba sin errores. Además, puede usar la utilidad netstat para verificar si el servicio está escuchando en el puerto 9090.

[[email protected] ~]# netstat -tunlp

netstat-prometheus-centos8

¡Genial! Prometheus se ejecuta en el puerto 9090 como se esperaba. Ahora diríjase a su navegador mientras navega por la IP de su servidor como se muestra

http://ip-del-servidor:9090

Prometheus-dashboard-CentOS8-RHEL8

Clickea en el ‘Estadopestaña ‘ y luego haga clic en ‘Objetivos

Target-Option-Prometheus-Dashboard

Su sistema se mostrará como se muestra

Prometheus-Target-Node-dashboard-CentOS8

Paso 6) Instalar y configurar node_exporter

Exportador de nodos es una utilidad que recopila y envía una amplia gama de métricas del sistema Linux, como CPU, uso de memoria, sistemas de archivos y estadísticas de red. En esta sección, vamos a instalar node_exporter en el servidor Prometheus y en un host CentOS 8 Linux remoto y monitorear las métricas del sistema en los dos hosts.

En el nodo Prometheus, vamos a crear un usuario del sistema para node_exporter.

[[email protected] ~]# useradd -m -s /bin/false node_exporter

A continuación, diríjase a la página de descargas de Prometheus y descargue el tarball node_exporter o use el siguiente comando wget para descargarlo desde la línea de comandos,

[[email protected] ~]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

Al descargar el archivo node_exporter, proceda y extráigalo como se muestra

[[email protected] ~]# tar -zxpvf node_exporter-0.18.1.linux-amd64.tar.gz

Puede verificar el contenido de la carpeta extraída usando el comando de árbol como se muestra

[[email protected] ~]# tree node_exporter-0.18.1.linux-amd64

Extracto-Nodo-Exportador-CentOS8

A continuación, copie el archivo binario llamado nodo_exportador a la ruta /usr/local/bin

[[email protected] ~]# cp node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin

A continuación, configure los permisos de archivo del archivo node_exporter que se ha copiado como se muestra

[[email protected] ~]# chown node_exporter:node_exporter /usr/local/bin/node_exporter

A continuación, debemos configurar node_exporter para que se ejecute como un servicio. Entonces, proceda y cree un archivo de servicio systemd como se muestra

[[email protected] ~]# vi /etc/systemd/system/node_exporter.service

Luego pegue la configuración que se muestra a continuación y guarde el archivo

[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

Para que los cambios surtan efecto, vuelva a cargar systemd manager con el comando:

[[email protected] ~]# systemctl daemon-reload

A continuación, inicie y habilite el servicio node_exporter

[[email protected] ~]# systemctl start node_exporter
[[email protected] ~]# systemctl enable node_exporter

Solo para asegurarse de que el servicio se está ejecutando, ejecute:

[[email protected] ~]# systemctl status node_exporter

nodo-exportador-servicio-estado

Solo para asegurarse de que el servicio se está ejecutando, use la utilidad netstat para verificar si está escuchando en el puerto 9100 como se espera de manera predeterminada.

[[email protected] ~]# netstat -pnltu | grep 9100
tcp6       0      0 :::9100       :::*          LISTEN      3472/node_exporter
[[email protected] ~]#

¡Perfecto! El servicio Node_exporter se está ejecutando como se esperaba.

Luego, abra el puerto 9100 en el firewall como se muestra

[[email protected] ~]# firewall-cmd --add-port=9100/tcp  --permanent
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#

Repita los pasos descritos para el sistema Linux CentOS 8 remoto también.

Finalmente, debe agregar el objetivo node_exporter al archivo prometheus.yml. Agregue las líneas a continuación para definir node_exporter para el servidor Prometheus

[[email protected] ~]# vi /etc/prometheus/prometheus.yml
---------
 - job_name: 'node_exporter'
   static_configs:
   - targets: ['localhost:9100']

Localhost-nodo-exportador-Prometheus-CentOS8

Reiniciar el servicio Prometheus

[[email protected] ~]# systemctl restart prometheus

Una vez más, diríjase a su navegador, haga clic en ‘Estadopestaña ‘ y haga clic en ‘Objetivos

Asegúrese de observar un nuevo punto final en el navegador llamado nodo_exportador para el servidor Prometheus

Nodo-Exportador-Prometheus-Dashboard

Para agregar un punto final para el sistema Linux remoto regresa a la prometeo.yml archivo y agregue la línea a continuación

– objetivos: [‘192.168.10.90:9100’]

La sección node_exporter ahora debería verse así

 - job_name: 'node_exporter'
   static_configs:
   - targets: ['localhost:9100']
   - targets: ['192.168.10.90:9100']

Guarde los cambios y reinicie el servicio Prometheus

[[email protected] ~]# systemctl restart prometheus

Actualice el navegador y observe el segundo punto final que se ha agregado para el control remoto Sistema CentOS Linux

CentOS8-Remote-Host-Node-Exportador-Prometheus

Para asegurarse de que está recibiendo métricas de sus nodos configurados. simplemente use el comando curl de la siguiente manera:

# curl http://ip-nodo:9100/metrics

Por ejemplo, para mostrar las métricas del servidor Prometheus, ejecute:

[[email protected] ~]# curl http://localhost:9100/metrics

Localhost-Metrics-curl-prometheus-centos8

Para el host remoto CentOS 8, ejecuté el comando:

[[email protected] ~]# curl http://192.168.10.90:9100/metrics

Remoto-CentOS8-Host-Metrics-Prometheus

Esto también se puede lograr abriendo un navegador y navegando por la URL

http://192.168.10.90:9100/métricas

Remote-Metrics-GUI-Prometheus

También puede optar por graficar las métricas que desee. Simplemente vaya a la página de inicio del servidor Prometheus y haga clic en el menú desplegable etiquetado como ‘insertar métrica en el cursor‘.

Insertar-Metric-Cursor-Prometheus-CentOS8

Seleccione la métrica que desea graficar,

Elegir-nodo-memoria-activa-prometheus

Clickea en el ‘Ejecutar‘ y haga clic en el ‘grafico‘ pestaña justo debajo para revelar el gráfico

Graph-Creation-Prometheus-CentOS8

Y esto nos lleva al final de este tema. Ha instalado y configurado correctamente Prometheus para monitorear las métricas del sistema tanto en su servidor como en el host remoto. En nuestra próxima guía, integraremos Prometheus con Grafana para una mejor visualización y análisis de las métricas. No dude en compartir sus comentarios con nosotros y compartir el artículo con un amigo.

Leer también : Cómo integrar Grafana con Prometheus para monitoreo

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *