Você deseja monitor métricas de hardware e kernel para um servidor Linux? Você pode fazer isso com a integração de gravação remota do New Relic e o Prometheus Node Exporter. Ao combinar esses dois programas com o sistema de monitoramento Prometheus, você pode enviar dados para a New Relic onde poderá utilizá-los para resolução de problemas.
As instruções aqui são baseadas no guia Prometheus de monitoramento de métricas de host Linux com o node exporter. Repetiremos algumas dessas informações e as expandiremos com etapas para ajudá-lo a enviar seus dados para a New Relic.
Pré-requisitos
Aqui está o que você precisa para começar:
- Decida qual host Linux você deseja usar. Mostraremos exemplos abaixo para servidores Linux nas instâncias EC2, GCP e Azure.
- Certifique-se de ter instalado o sistema de monitoramento Prometheus. Se ainda não o fez, você pode baixá-lo no site do Prometheus.
Baixe e inicie o Node Exporter
Complete o seguinte:
Baixe e inicie o Node Exporter com os comandos abaixo. Certifique-se de substituir o URL
wget
pelo mais recente da página de downloads do 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 o Node Exporter para ser executado em segundo plano com os comandos de teclado
CONTROL + z
ebg
. No ambiente de produção, você deseja configurar isso como um serviço (por exemplo, comsystemd
).
Configuração
Antes de iniciar o Prometheus, você precisará fazer algumas alterações no arquivo de configuração prometheus.yml
principal. Começaremos com este exemplo básico prometheus.yml
abaixo e adicionaremos configuração a ele nas seções restantes. Você pode copiar esses exemplos e colá-los em seu arquivo de configuração.
Observe que job_name
está definido como 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
Conecte Prometheus à New Relic
No seu prometheus.yml
, insira o trecho remote_write
do exemplo abaixo. Tenha o seguinte em mente:
- Este é um trecho do Prometheus v2.26 e superior. Se você estiver usando uma versão mais antiga, consulte nossas principais instruções de gravação remota.
- Certifique-se de substituir
YOUR_LICENSE_KEY
pelo seu valor. - Você pode inserir isso na parte inferior do arquivo de configuração no mesmo nível de recuo da seção
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 destino
Você pode configurar o destino estaticamente por meio do parâmetro static_configs
ou usar a descoberta dinâmica com um dos mecanismos de descoberta de serviço compatíveis.
Destino estático
Você pode definir uma configuração estática em um novo comentário # Target setup
:
Destino dinâmico
Em vez de configurar o destino estático, você pode configurar a descoberta de serviço.
Configurar o host para o relacionamento APM
Se você estiver monitorando uma aplicação com um agente APM neste servidor Linux, será necessário fazer algumas configurações adicionais para habilitar o recurso de relacionamento no New Relic. Esses recursos dependem do relacionamento entre o host e o aplicativo.
Os relacionamentos exigem atributos que são descartados por padrão no Prometheus. Para contornar isso, você pode incluí-los por meio da sub-rotina relabel_configs
no arquivo de configuração.
Dica
Você pode ver todos os meta atributos disponíveis no sd_config
apropriado na página de configuração do Prometheus.
Nos exemplos abaixo, mostramos a combinação de descoberta dinâmica com rótulos. Se você estiver usando destino estático, basta inserir o destino estático mostrado acima.
Inicie o Prometheus
Agora você pode iniciar o raspador Prometheus.
Execute o seguinte:
bash$./prometheus --config.file=./prometheus.ymlConfigure o scraper para ser executado em segundo plano com os comandos de teclado
CONTROL + z
ebg
. No ambiente de produção, você deseja configurar isso como um serviço (por exemplo, comsystemd
).Veja seus dados na interface do New Relic acessando one.newrelic.com > Infrastructure > Hosts.