Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Supervise los recursos del sistema y las aplicaciones con Prometheus en Lightsail
Prometheus es una herramienta de supervisión de series temporales de código abierto para administrar una variedad de recursos y aplicaciones del sistema. Proporciona un modelo de datos multidimensional, la capacidad de consultar los datos recopilados y la presentación de informes detallados y la visualización de datos a través de Grafana.
De forma predeterminada, Prometheus está habilitado para recopilar métricas en el servidor en el que está instalado. Con la ayuda de los exportadores de nodos, se pueden recopilar métricas de otros recursos, como servidores web, contenedores, bases de datos, aplicaciones personalizadas y otros sistemas de terceros. En este tutorial, le mostraremos cómo instalar y configurar Prometheus con exportadores de nodos en una instancia de Lightsail. Para ver la lista completa de exportadores disponibles, consulte Exportadores e integraciones
Contenido
Paso 1: completar los requisitos previos
Antes de poder instalar Prometheus en una instancia de Amazon Lightsail, debe hacer lo siguiente:
-
Cree una instancia en Lightsail. Recomendamos usar el esquema de Ubuntu 20.04 LTS para su instancia. Para obtener más información, consulte Crear una instancia en Amazon Lightsail.
-
Cree una dirección IP estática y asóciela a la instancia nueva. Para obtener más información, consulte Crear una dirección IP estática en Amazon Lightsail.
-
Abra los puertos 9090 y 9100 del firewall de la nueva instancia. Prometheus requiere que los puertos 9090 y 9100 estén abiertos. Para obtener más información, consulte Añadir y editar reglas de firewall de instancias en Amazon Lightsail.
Paso 2: Agregar usuarios y directorios del sistema local a la instancia de Lightsail
Complete el siguiente procedimiento para conectarse a su instancia de Lightsail mediante SSH y añadir usuarios y directorios del sistema. Este procedimiento crea las siguientes cuentas de usuario de Linux:
-
prometheus: esta cuenta se usa para instalar y configurar el entorno del servidor. -
exporter: esta cuenta se utiliza para configurar la extensiónnode_exporter.
Estas cuentas de usuario se crean con el único propósito de administración y, por lo tanto, no requieren servicios de usuario ni permisos adicionales más allá del alcance de esta configuración. En este procedimiento, también se crean directorios para almacenar y administrar los archivos, la configuración del servicio y los datos que Prometheus usa para supervisar los recursos.
-
Inicie sesión en la consola de Lightsail
. -
En la página de administración de instancias, en la pestaña Connect (Conectarse), elija Connect using SSH (Conectarse a través de SSH).
-
Una vez que se haya conectado, ingrese los siguientes comandos uno por uno para crear dos cuentas de usuario de Linux:
prometheusyexporter.sudo useradd --no-create-home --shell /bin/false prometheussudo useradd --no-create-home --shell /bin/false exporter -
Ingrese los siguientes comandos uno por uno para crear directorios del sistema local.
sudo mkdir /etc/prometheus /var/lib/prometheussudo chown prometheus:prometheus /etc/prometheussudo chown prometheus:prometheus /var/lib/prometheus
Paso 3: Descargar los paquetes binarios de Prometheus
Complete el siguiente procedimiento para descargar los paquetes binarios de Prometheus a su instancia de Lightsail.
-
Abra un navegador web en su equipo local y diríjase a la Página de descargas de Prometheus
. -
En la parte superior de la página, en el menú desplegable Operating system (Sistema operativo), seleccione linux. En Architecture (Arquitectura), seleccione amd64.
-
Elija o haga clic en el enlace de descarga de Prometheus y copie la dirección del enlace a un archivo de texto en su equipo. Haga lo mismo con el enlace de descarga node_export que aparece. Usará las dos direcciones copiadas más tarde en este procedimiento.
-
Conéctese a su instancia de Lightsail mediante SSH.
-
Ingrese el siguiente comando para cambiar de directorio a su directorio de inicio.
cd ~ -
Ingrese el siguiente comando para descargar los paquetes binarios de Prometheus a su instancia.
curl -LOprometheus-download-addressprometheus-download-addressReemplácela por la dirección que copió anteriormente en este procedimiento. El resultado del comando tendrá un aspecto semejante al de este ejemplo cuando agregue la dirección.curl -LOhttps://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz -
Ingrese el siguiente comando para descargar los paquetes binarios de
node_exportera su instancia.curl -LOnode_exporter-download-addressnode_exporter-download-addressSustitúyala por la dirección que copió en el paso anterior de este procedimiento. El resultado del comando tendrá un aspecto semejante al de este ejemplo cuando agregue la dirección.curl -LOhttps://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz -
Ejecute los siguientes comandos uno por uno para extraer el contenido de los archivos de Prometheus y Node Exporter descargados.
tar -xvfprometheus-2.37.0.linux-amd64.tar.gztar -xvfnode_exporter-1.3.1.linux-amd64.tar.gzSe crean varios subdirectorios después de extraer el contenido de los archivos descargados.
-
Ingrese los siguientes comandos uno por uno para copiar los archivos extraídos de
prometheusypromtoolal directorio de programas/usr/local/bin.sudo cp -p ./prometheus-2.37.0.linux-amd64/prometheus /usr/local/binsudo cp -p ./prometheus-2.37.0.linux-amd64/promtool /usr/local/bin -
Ingrese el siguiente comando para cambiar la propiedad de los archivos de
prometheusypromtoolal usuario deprometheusque creó anteriormente en este tutorial.sudo chown prometheus:prometheus /usr/local/bin/prom* -
Ingrese los siguientes comandos uno por uno para copiar los subdirectorios
consolesyconsole_librariesa/etc/prometheus. La opción-rrealiza una copia recursiva de todos los directorios de la jerarquía.sudo cp -r ./prometheus-2.37.0.linux-amd64/consoles /etc/prometheussudo cp -r ./prometheus-2.37.0.linux-amd64/console_libraries /etc/prometheus -
Ingrese los siguientes comandos uno por uno para cambiar la propiedad de los archivos copiados al usuario de
prometheusque creó anteriormente en este tutorial. La opción-Rrealiza un cambio de propiedad recursivo para todos los archivos y directorios de la jerarquía.sudo chown -R prometheus:prometheus /etc/prometheus/consolessudo chown -R prometheus:prometheus /etc/prometheus/console_libraries -
Ingrese los siguientes comandos uno por uno para copiar el archivo de configuración
prometheus.ymlal directorio/etc/prometheusy cambie la propiedad del archivo copiado al usuario deprometheusque creó anteriormente en este tutorial.sudo cp -p ./prometheus-2.37.0.linux-amd64/prometheus.yml /etc/prometheussudo chown prometheus:prometheus /etc/prometheus/prometheus.yml -
Ingrese el siguiente comando para copiar el archivo
node_exporterdel subdirectorio./node_exporter*al directorio de programas/usr/local/bin.sudo cp -p ./node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin -
Ingrese el siguiente comando para cambiar la propiedad del archivo al usuario de
exporterque creó anteriormente en este tutorial.sudo chown exporter:exporter /usr/local/bin/node_exporter
Paso 4: Configurar Prometheus
Complete el siguiente procedimiento para configurar Prometheus. En este procedimiento, abra y edite el archivo prometheus.yml, el cual contiene varios ajustes para la herramienta Prometheus. Prometheus establece un entorno de supervisión en función de los parámetros que se configuran en el archivo.
-
Conéctese a su instancia de Lightsail mediante SSH.
-
Ingrese el siguiente comando para crear una copia de seguridad del archivo
prometheus.ymlantes de abrirlo y editarlo.sudo cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml.backup -
Ingrese el siguiente comando para abrir el archivo
prometheus.ymlcon Vim.sudo vim /etc/prometheus/prometheus.ymlLos siguientes son algunos parámetros importantes que quizás desee configurar en el archivo
prometheus.yml:-
scrape_interval: ubicado bajo el encabezadoglobal, este parámetro define el intervalo de tiempo (en segundos) de la frecuencia con la que Prometheus recopilará o extraerá datos métricos para un objetivo determinado. Como lo indica la etiquetaglobal, esta configuración es universal para todos los recursos que Prometheus supervisa. Esta configuración también aplica a los exportadores, a menos que un exportador individual proporcione un valor diferente que anule el valor global. Puede mantener este parámetro establecido en su valor actual de 15 segundos. -
job_name: ubicado bajo el encabezadoscrape_configs, este parámetro es una etiqueta que identifica a los exportadores en el conjunto de resultados de una consulta de datos o una pantalla visual. Puede especificar el valor del nombre de un trabajo para reflejar mejor los recursos que se supervisan en su entorno. Por ejemplo, puede etiquetar un trabajo para administrar un sitio web comobusiness-web-appo puede etiquetar una base de datos comomysql-db-1. En esta configuración inicial, solo está supervisando el servidor Prometheus, por lo que puede mantener el valor actualprometheus. -
targets: ubicada bajo el encabezadostatic_configs, la configuracióntargetsusa un par de clave-valorip_addr:portpara identificar la ubicación en la que se ejecuta un exportador determinado. Cambiará la configuración predeterminada en los pasos 4 a 7 de este procedimiento.
nota
Para esta configuración inicial, no es necesario configurar los parámetros
alertingyrule_files. -
-
En el archivo
prometheus.ymlque tiene abierto en Vim, presione la tecla I para entrar en el modo de inserción en Vim. -
Desplácese y busque el parámetro
targetsubicado debajo del encabezadostatic_configs. -
Cambie la configuración predeterminada a
. Reemplace<ip_addr>:9090con la dirección IP estática de la instancia. El parámetro modificado debería verse como el siguiente ejemplo.<ip_addr>
-
Presione la tecla Esc para salir del modo de inserción y escriba :wq! para guardar los cambios y salir de Vim.
-
(Opcional) Si algo salió mal, ingrese el siguiente comando para reemplazar el archivo
prometheus.ymlcon la copia de seguridad que creó anteriormente en este procedimiento.sudo cp /etc/prometheus/prometheus.yml.backup /etc/prometheus/prometheus.yml
Paso 5: Iniciar Prometheus
Complete el siguiente procedimiento para iniciar el servicio Prometheus en la instancia.
-
Conéctese a su instancia de Lightsail mediante SSH.
-
Ingrese el siguiente comando para iniciar el servicio Prometheus.
sudo -u prometheus /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_librariesLa línea de comandos muestra detalles sobre el proceso de inicio y otros servicios. También debe indicar que el servicio está escuchando en el puerto 9090.
Si el servicio no se inicia, consulte la sección Paso 1: Completar los requisitos previos de este tutorial para obtener información sobre la creación de reglas de firewall de instancia para permitir el tráfico en este puerto. Para ver otros errores, revise el archivo
prometheus.ymlpara confirmar que no hay errores de sintaxis. -
Una vez validado el servicio en ejecución, presione Ctrl+C para detenerlo.
-
Ingrese el siguiente comando para abrir el archivo de configuración
systemden Vim. Este archivo se usa para iniciar Prometheus.sudo vim /etc/systemd/system/prometheus.service -
Inserte las siguientes líneas en el archivo.
[Unit] Description=PromServer 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.targetEl administrador de servicios
systemdde Linux usa las instrucciones anteriores para iniciar Prometheus en el servidor. Cuando se invoca, Prometheus se ejecuta como usuario deprometheusy hace referencia al archivoprometheus.ymlpara cargar los ajustes de configuración y almacenar los datos de serie temporal en el directorio/var/lib/prometheus. Puede ejecutarman systemddesde la línea de comandos para ver más información acerca del servicio. -
Presione la tecla Esc para salir del modo de inserción y escriba :wq! para guardar los cambios y salir de Vim.
-
Ingrese el siguiente comando para cargar la información en el administrador de servicios
systemd.sudo systemctl daemon-reload -
Para reiniciar Prometheus, ingrese el siguiente comando.
sudo systemctl start prometheus -
Para comprobar el estado del servicio Prometheus, ingrese el siguiente comando.
sudo systemctl status prometheusSi el servicio se ha iniciado correctamente, se mostrará un resultado similar al del siguiente ejemplo.
-
Presione Q para salir del comando de estado.
-
Ingrese el siguiente comando para permitir que Prometheus se inicie al arrancar la instancia.
sudo systemctl enable prometheus -
Abra un navegador web en su equipo local y vaya a la siguiente dirección web para visualizar la interfaz de administración de Prometheus.
http:<ip_addr>:9090<ip_addr>Sustitúyala por la dirección IP estática de la instancia de Lightsail. Debería ver un panel similar al del siguiente ejemplo.
Paso 6: iniciar Node Exporter
Complete el siguiente procedimiento para iniciar el servicio Node Exporter.
-
Conéctese a su instancia de Lightsail mediante SSH.
-
Ingrese el siguiente comando para crear un archivo de servicio
systemdparanode_exportercon Vim.sudo vim /etc/systemd/system/node_exporter.service -
Presione la tecla I para entrar en el modo de inserción en Vim.
-
Agregue la siguiente línea de texto al final del archivo. Esto configurará
node_exportercon recopiladores de supervisión para la carga de la CPU, el uso del sistema de archivos y los recursos de memoria.[Unit] Description=NodeExporter Wants=network-online.target After=network-online.target [Service] User=exporter Group=exporter Type=simple ExecStart=/usr/local/bin/node_exporter --collector.disable-defaults \ --collector.meminfo \ --collector.loadavg \ --collector.filesystem [Install] WantedBy=multi-user.targetnota
Estas instrucciones deshabilitan las métricas de máquina predeterminadas para Node Exporter. Para ver la lista completa de métricas disponibles para Ubuntu, consulte la Página principal de Prometheus node_exporter
en la Documentación de Ubuntu. -
Presione la tecla Esc para salir del modo de inserción y escriba :wq! para guardar los cambios y salir de Vim.
-
Ingrese el siguiente comando para volver a cargar el proceso
systemd.sudo systemctl daemon-reload -
Ingrese el siguiente comando para iniciar el servicio
node_exporter.sudo systemctl start node_exporter -
Para verificar el estado del servicio
node_exporter, ingrese el siguiente comando.sudo systemctl status node_exporterSi el comando se ejecuta correctamente, se mostrará un resultado similar al siguiente ejemplo.
-
Presione Q para salir del comando de estado.
-
Ingrese el siguiente comando para permitir que Node Exporter se inicie al arrancar la instancia.
sudo systemctl enable node_exporter
Paso 7: Configurar Prometheus con el recopilador de datos de Node Exporter
Complete el siguiente procedimiento para configurar Prometheus con el recopilador de datos de Node Exporter. Para ello, agregue un nuevo parámetro job_name para node_exporter en el archivo prometheus.yml.
-
Conéctese a su instancia de Lightsail mediante SSH.
-
Ingrese el siguiente comando para abrir el archivo
prometheus.ymlcon Vim.sudo vim /etc/prometheus/prometheus.yml -
Presione la tecla I para entrar en el modo de inserción en Vim.
-
Agregue las siguientes líneas de texto al archivo, debajo del parámetro
- targets: ["existente.<ip_addr>:9090"]- job_name: "node_exporter" static_configs: - targets: ["<ip_addr>:9100"]El parámetro modificado en el archivo
prometheus.ymldebería verse de manera similar al siguiente ejemplo.
Tenga en cuenta lo siguiente:
-
Node Exporter escucha el puerto 9100 para que el servidor
prometheusextraiga los datos. Confirme que ha seguido los pasos para crear las reglas de firewall de instancia tal como se describe en la sección Paso 1: Completar los requisitos previos de este tutorial. -
Al igual que con la configuración de
prometheusjob_name,<ip_addr>sustitúyala por la dirección IP estática que está adjunta a la instancia de Lightsail.
-
-
Presione la tecla Esc para salir del modo de inserción y escriba :wq! para guardar los cambios y salir de Vim.
-
Ingrese el siguiente comando para reiniciar el servicio Prometheus de modo que los cambios en el archivo de configuración surtan efecto.
sudo systemctl restart prometheus -
Para comprobar el estado del servicio Prometheus, ingrese el siguiente comando.
sudo systemctl status prometheusSi el servicio se ha reiniciado correctamente, se mostrará un resultado similar al siguiente.
-
Presione Q para salir del comando de estado.
-
Abra un navegador web en su equipo local y vaya a la siguiente dirección web para visualizar la interfaz de administración de Prometheus.
http:<ip_addr>:9090<ip_addr>Sustitúyala por la dirección IP estática de la instancia de Lightsail. Debería ver un panel similar al del siguiente ejemplo.
-
En el menú principal, elija el menú desplegable Status (Estado) y seleccione Targets (Destinos).
En la siguiente pantalla, debería ver dos destinos. El primer destino es para el trabajo de recopilador de métricas node_exporter y el segundo destino es para el trabajo prometheus.
El entorno ahora está configurado correctamente para recopilar métricas y supervisar el servidor.