Prometheus es un sistema de monitoreo de código abierto que le permite recopilar métricas de cualquier sistema de destino configurado. Prometheus implementa un modelo de datos multidimensional con consultas poderosas, excelente visualización, alertas precisas y viene con muchas integraciones.
Prometheus fue creado originalmente por SoundCloud en 2012, pero ahora se ha convertido en un proyecto independiente de código abierto mantenido de forma independiente por la comunidad de código abierto:todos los componentes están disponibles bajo la licencia Apache 2 en Github.
En este tutorial, le mostraré cómo instalar y configurar Prometheus y node_exporter. Instalaremos el sistema de monitoreo Prometheus y luego configuraremos el node_exporter para recopilar métricas del servidor. Usaremos el servidor CentOS 8 más reciente para esta guía de tutorial.
Requisitos previos
- servidor CentOS 8
- Privilegios de raíz
¿Qué haremos?
- Cree un nuevo usuario y descargue Prometheus
- Configurar Prometheus como un servicio de Systemd
- Configurar cortafuegos
- Instalar y configurar node_exporter
- Agregue node_exporter al servidor Prometheus
- Pruebas
Paso 1:crea un nuevo usuario y descarga Prometheus
En este tutorial, el servicio Prometheus se ejecutará como usuario no root. Entonces necesitamos crear un nuevo usuario no root en el sistema. Crearemos un nuevo usuario llamado 'prometheus', y todos los servicios de prometheus se ejecutarán bajo el usuario de prometheus.
Cree un nuevo usuario 'prometheus' usando el siguiente comando.
useradd -m -s /bin/bash prometheus
Se ha creado un nuevo usuario. Ahora inicie sesión en el usuario y descargue Prometheus usando el comando wget.
su - prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gz
Extraiga el archivo prometheus-xx.x.x.tar.gz y cambie el nombre del directorio a 'prometheus'.
tar -xf prometheus-2.13.1.linux-amd64.tar.gz
mv prometheus-2.13.1.linux-amd64/ prometheus/
Después de eso, cree un nuevo directorio de 'datos' que se usará como almacenamiento 'tsdb'.
mkdir -p ~/prometheus/data
Ahora, Prometheus se descarga en el servidor y todos los archivos de Prometheus se encuentran en el directorio '/home/prometheus/prometheus'.
Paso 2:configurar Prometheus como servicio de Systemd
En este paso, configuraremos Prometheus como un servicio systemd. Crearemos un nuevo archivo de servicio prometheus.service en el directorio '/etc/systemd/system'.
Vaya al directorio '/etc/systemd/system/' y cree un nuevo archivo de servicio 'prometheus.service' usando el editor vim.
cd /etc/systemd/system/
vim prometheus.service
Pegue la configuración del servicio Prometheus a continuación.
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
#Change this line if you download the
#Prometheus on different path user
ExecStart=/home/prometheus/prometheus/prometheus \
--config.file=/home/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/home/prometheus/prometheus/data
[Install]
WantedBy=multi-user.target
Guardar y salir.
Ahora recarga el sistema systemd usando el siguiente comando systemctl.
systemctl daemon-reload
Inicie el servicio Prometheus y permita que se inicie cada vez que se inicia el sistema.
systemctl start prometheus
systemctl enable prometheus
Prometheus ahora se está ejecutando como un servicio systemd, verifíquelo usando el siguiente comando.
systemctl status prometheus
Asegúrese de obtener el estado de servicio 'En ejecución'.
O verifíquelo usando el comando netstat a continuación.
netstat -plntu
Asegúrese de obtener el resultado como se muestra a continuación.
Prometheus se ejecuta de forma predeterminada en el puerto '9090'.
Paso 3:configurar el cortafuegos
Si está utilizando Firewalld en su sistema, agregue el puerto 9090 a la lista de puertos de Firewalld.
Abra el puerto 9090 para acceder a Prometheus usando los comandos firewall-cmd a continuación.
firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload
Ahora revisa las reglas de firewalld.
firewall-cmd --list-all
Y obtendrá el puerto TCP '9090' en la lista.
A continuación, abra su navegador web y escriba la dirección IP del servidor con el puerto 9090.
http://10.5.5.15:9090/gráfico
Escriba 'prometheus_http_requests_total' en el campo de consulta y haga clic en el botón 'Ejecutar'.
Y verá solicitudes HTTP al servidor Prometheus con toda la información sobre la hora, el código de estado HTTP, el método, etc.
Paso 4:instalar y configurar node_exporter
node_exporter es un exportador de métricas de máquinas que puede ejecutarse en sistemas *Nix y Linux.
En este tutorial, instalaremos node_exporter en el mismo servidor Prometheus. Supervisaremos y obtendremos la métrica del servidor Prometheus.
Inicie sesión en el usuario de Prometheus y descargue el 'node_exporter' usando el comando wget.
su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
Extraiga node_exporter y cambie el nombre del directorio a 'node_exporter'.
tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter
A continuación, crearemos un nuevo archivo de servicio para node_exporter. Vuelva al shell raíz, vaya al directorio '/etc/systemd/system' y cree un nuevo archivo de servicio node_exporter 'node_exporter.service' usando vim.
cd /etc/systemd/system/
vim node_exporter.service
Pegue la siguiente configuración.
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter
[Install]
WantedBy=default.target
Guardar y salir.
Ahora recarga el sistema systemd.
systemctl daemon-reload
Luego, inicie el servicio node_exporter y habilítelo para que se inicie cada vez que se inicie el sistema.
systemctl start node_exporter
systemctl enable node_exporter
El servicio node_exporter ahora se está ejecutando en el servidor; verifíquelo con el comando netstat.
systemctl status node_exporter
netstat -plntu
Y obtendrá el exportador de nodos funcionando en el puerto predeterminado 9100.
Paso 5:agregar node_exporter al servidor Prometheus
En este paso, agregaremos node_exporter al servidor Prometheus. Inicie sesión en el usuario de Prometheus y edite el archivo de configuración 'prometheus.yml'.
Inicie sesión en el usuario de Prometheus.
su - prometheus
Vaya al directorio 'prometheus' y edite el archivo de configuración 'prometheus.yml'.
cd ~/prometheus/
vim prometheus.yml
Debajo de la línea 'scrape_config', agregue el nuevo job_name node_exporter copiando y pegando la configuración a continuación.
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
Guardar y salir.
Ahora reinicie el servicio Prometheus.
systemctl restart prometheus
El node_exporter se ha agregado al servidor Prometheus.
Paso 6:prueba de Prometheus y node_exporter
Abra su navegador web y luego ingrese la dirección IP del servidor.
http://10.5.5.15:9090/
Escriba el recopilador de meminfo 'node_memory_MemAvailable_bytes' en el campo de consulta y haga clic en el botón 'Ejecutar'.
Y obtendrá el resultado como se muestra a continuación.
Obtendrá la memoria disponible en la instancia del servidor 'localhost:9100' y el nombre_trabajo 'node-exporter'.
O si desea acceder a los datos sin procesar de node_exporter, debe agregar el puerto 9100 de node_exporter al firewalld.
firewall-cmd --add-port=9100/tcp --permanent
firewall-cmd --reload
Y luego escriba la dirección IP del servidor con el puerto 9100.
http://10.5.5.15:9100/métricas
Y obtendrá los datos sin procesar de node_exporter como se muestra a continuación.
Como resultado, la instalación y configuración del sistema de monitoreo de Prometheus con node_exporter en CentOS 8 Server se completó con éxito.