¿Quieres monitor hardware y kernel métrico para un servidor Linux? Puede hacer esto con la integración de escritura remota de New Relic y Prometheus Node Exporter. Cuando combinas estos dos programas con el sistema de monitoreo Prometheus, puedes enviar datos a New Relic donde puedes usarlos para la resolución de problemas.
Las instrucciones aquí se basan en la guía de Prometheus monitoreo métrico de host Linux con el node exporter. Repetiremos parte de esa información y la ampliaremos con pasos que le ayudarán a enviar sus datos a New Relic.
Requisitos previos
Esto es lo que necesita para comenzar:
- Decide qué host Linux quieres utilizar. Mostraremos ejemplos a continuación para servidores Linux en EC2, GCP y instancia de Azure.
- Asegúrese de haber instalado el sistema de monitoreo Prometheus. Si aún no lo ha hecho, puede descargarlo desde el sitio de Prometheus.
Descargue e inicie Node Exporter
Complete lo siguiente:
Descargue e inicie Node Exporter con los siguientes comandos. Asegúrese de reemplazar la URL
wget
con la última versión de la página de descargas de Prometheus:bash$# Note that <VERSION>, <OS>, and <ARCH> are placeholders.$wget https://github.com/prometheus/node_exporter/releases/download/v<VERSION>/node_exporter-<VERSION>.<OS>-<ARCH>.tar.gz$tar xvfz node_exporter-*.*-amd64.tar.gz$cd node_exporter-*.*-amd64$./node_exporterConfigure Node Exporter para que se ejecute en segundo plano con los comandos de teclado
CONTROL + z
ybg
. En entorno de producción, querrás configurar esto como un servicio (por ejemplo, consystemd
).
Configuración
Antes de iniciar Prometheus, deberá realizar algunos cambios en su archivo de configuración principal prometheus.yml
. Comenzaremos con este ejemplo básico prometheus.yml
a continuación y le agregaremos configuración en las secciones restantes. Puede copiar estos ejemplos y pegarlos en su archivo de configuración.
Tenga en cuenta que job_name
está configurado en node
:
# my 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 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 time series scraped from this config. - job_name: node
Conecta Prometheus con New Relic
En su prometheus.yml
, inserte el fragmento remote_write
del siguiente ejemplo. Tenga en cuenta lo siguiente:
- Este es un fragmento de Prometheus v2.26 y superior. Si está utilizando una versión anterior, consulte nuestras instrucciones principales de escritura remota.
- Asegúrese de reemplazar
YOUR_LICENSE_KEY
con su valor. - Puede insertar esto en la parte inferior del archivo de configuración en el mismo nivel de sangría que la sección
global
.
# my 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 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 time series scraped from this config. - job_name: node
remote_write: - url: https://metric-api.newrelic.com/prometheus/v1/write?prometheus_server=NodeExporter authorization: credentials: YOUR_LICENSE_KEY
Configurar objetivo
Puede configurar el objetivo de forma estática a través del parámetro static_configs
o puede utilizar el descubrimiento dinámico con uno de los mecanismos de descubrimiento de servicios admitidos.
Objetivo estático
Puede configurar una configuración estática en un nuevo comentario # Target setup
:
Objetivo dinámico
En lugar de configurar un objetivo estático, puede configurar el descubrimiento de servicios.
Configurar la relación de host a APM
Si está monitoreando una aplicación con un agente APM en este servidor Linux, necesitará realizar alguna configuración adicional para habilitar la característica de relación en New Relic. Estas características dependen de la relación entre el host y la aplicación.
Las relaciones requieren atributos que se eliminan de forma predeterminada en Prometheus. Para solucionar esto, puede incluirlos a través de la estrofa relabel_configs
en el archivo de configuración.
Sugerencia
Puede ver todos los metaatributos disponibles en el sd_config
correspondiente en la página de configuración de Prometheus.
En los ejemplos siguientes, mostramos la combinación de descubrimiento dinámico con etiquetas. Si está utilizando un objetivo estático, simplemente inserte el objetivo estático que se muestra arriba.
Iniciar Prometheus
Ahora puedes iniciar el raspador Prometheus.
Ejecute lo siguiente:
bash$./prometheus --config.file=./prometheus.ymlConfigure el raspador para que se ejecute en segundo plano con los comandos de teclado
CONTROL + z
ybg
. En entorno de producción, querrás configurar esto como un servicio (por ejemplo, consystemd
).Vea sus datos en la yendo New Relic UI a one.newrelic.com > Infrastructure > Hosts.