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,
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
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
¡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
Clickea en el ‘Estadopestaña ‘ y luego haga clic en ‘Objetivos‘
Su sistema se mostrará como se muestra
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
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
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']
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
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
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
Para el host remoto CentOS 8, ejecuté el comando:
[[email protected] ~]# curl http://192.168.10.90:9100/metrics
Esto también se puede lograr abriendo un navegador y navegando por la URL
http://192.168.10.90:9100/métricas
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‘.
Seleccione la métrica que desea graficar,
Clickea en el ‘Ejecutar‘ y haga clic en el ‘grafico‘ pestaña justo debajo para revelar el gráfico
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