Monitoramento de Comunicação - Blackbox Exporter(ICMP) + Prometheus + Grafana
Descubra como monitorar a comunicação entre servidores com o poderoso módulo ICMP do Blackbox Exporter. Neste artigo, você aprenderá passo a passo como configurar e utilizar essa ferramenta essencial para garantir a integridade da sua rede. Através do monitoramento ICMP, será possível identificar problemas de conectividade, verificar a disponibilidade dos serviços e obter métricas de desempenho.
Introdução
O Blackbox Exporter é um componente do ecossistema Prometheus, um sistema de monitoramento e alerta de código aberto amplamente utilizado. O Blackbox Exporter é um servidor independente que permite realizar verificações de sondagem (probing) em serviços externos para coletar métricas relacionadas à disponibilidade e desempenho desses serviços.
Em termos simples, o Blackbox Exporter permite ao Prometheus "enxergar" o estado de serviços externos, mesmo que não sejam diretamente instrumentados com a biblioteca do Prometheus. Ele atua como uma "caixa-preta" (blackbox), onde é possível enviar solicitações de sondagem (probes) para serviços externos e obter informações sobre sua integridade e tempo de resposta.
Essas métricas coletadas podem ser usadas para criar gráficos, alertas e painéis de monitoramento, permitindo que os administradores de sistemas acompanhem a disponibilidade e o desempenho dos serviços externos que são importantes para o funcionamento de uma aplicação ou infraestrutura.
Iremos realizar o download do exporter "Blackbox". Para isso acesse a URL abaixo:
Após realizar o download do arquivo, iremos descompactá-lo:
tar -xvf blackbox_exporter-0.24.0.linux-amd64.tar.gz
Iremos acessar o diretório:
cd blackbox_exporter-0.24.0.linux-amd64
Por padrão o blackbox exporter já traz um arquivo de configuração como exemplo, então você irá encontrá-lo neste diretório com o nome "blackbox.yml". Porém neste artigo não iremos utilizá-la, portando poderemos movê-lo para um outro nome:
mv blackbox.yml blackbox.yml_default
Então iremos criar um novo arquivo blackbox.yml com a nossa configuração, que especificamente utilizará apenas a probe de ICMP.
vim blackbox.yml
Após incluir as linhas acima, salve seu arquivo de configuração do blackbox. Na sequência iremos iniciar o serviço do blackbox_exporter. Para isso siga o passo abaixo:
./blackbox_exporter --config.file=blackbox.yml
Caso queira colocá-lo em execução em segundo plano, utilize o comando abaixo:
nohup ./blackbox_exporter --config.file=blackbox.yml &
Por padrão, quando o exportador é executado, ele passa a escutar na porta 9115.
Agora criaremos um JOB no prometheus para que ele passe todas as máquinas que eu desejo monitorar para o blackbox exporter e ele faça todas as coletas de métricas. Adicione o seguinte bloco ao prometheus.yml.
Perceba que na configuração acima, será necessário realizar as alterações mencionadas nos comentários. É importante que o nome do JOB sempre comece com "ICMP_", pois quando formos exibir os dados no Grafana ele será importante.
Em termos simples, o Blackbox Exporter permite ao Prometheus "enxergar" o estado de serviços externos, mesmo que não sejam diretamente instrumentados com a biblioteca do Prometheus. Ele atua como uma "caixa-preta" (blackbox), onde é possível enviar solicitações de sondagem (probes) para serviços externos e obter informações sobre sua integridade e tempo de resposta.
Essas métricas coletadas podem ser usadas para criar gráficos, alertas e painéis de monitoramento, permitindo que os administradores de sistemas acompanhem a disponibilidade e o desempenho dos serviços externos que são importantes para o funcionamento de uma aplicação ou infraestrutura.
Configuração
Neste artigo, não abordaremos a instalação do Prometheus. Partiremos do princípio de que você já possui o Prometheus instalado e funcionando corretamente.Iremos realizar o download do exporter "Blackbox". Para isso acesse a URL abaixo:
Após realizar o download do arquivo, iremos descompactá-lo:
tar -xvf blackbox_exporter-0.24.0.linux-amd64.tar.gz
Iremos acessar o diretório:
cd blackbox_exporter-0.24.0.linux-amd64
Por padrão o blackbox exporter já traz um arquivo de configuração como exemplo, então você irá encontrá-lo neste diretório com o nome "blackbox.yml". Porém neste artigo não iremos utilizá-la, portando poderemos movê-lo para um outro nome:
mv blackbox.yml blackbox.yml_default
Então iremos criar um novo arquivo blackbox.yml com a nossa configuração, que especificamente utilizará apenas a probe de ICMP.
vim blackbox.yml
modules:
icmp:
prober: icmp
timeout: 5s
icmp:
preferred_ip_protocol: "ip4"
icmp:
prober: icmp
timeout: 5s
icmp:
preferred_ip_protocol: "ip4"
Após incluir as linhas acima, salve seu arquivo de configuração do blackbox. Na sequência iremos iniciar o serviço do blackbox_exporter. Para isso siga o passo abaixo:
./blackbox_exporter --config.file=blackbox.yml
Caso queira colocá-lo em execução em segundo plano, utilize o comando abaixo:
nohup ./blackbox_exporter --config.file=blackbox.yml &
Por padrão, quando o exportador é executado, ele passa a escutar na porta 9115.
Agora criaremos um JOB no prometheus para que ele passe todas as máquinas que eu desejo monitorar para o blackbox exporter e ele faça todas as coletas de métricas. Adicione o seguinte bloco ao prometheus.yml.
- job_name: 'ICMP_VIVAOLINUX'
metrics_path: /probe
params:
module: [icmp]
static_configs:
- targets: ["host1","host2","host3"] #Alterar para os hosts desejados
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: "127.0.0.1:9115" # Alterar para onde o blackbox está em execução
metrics_path: /probe
params:
module: [icmp]
static_configs:
- targets: ["host1","host2","host3"] #Alterar para os hosts desejados
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: "127.0.0.1:9115" # Alterar para onde o blackbox está em execução
Perceba que na configuração acima, será necessário realizar as alterações mencionadas nos comentários. É importante que o nome do JOB sempre comece com "ICMP_", pois quando formos exibir os dados no Grafana ele será importante.
Glad you like it. We have been using this for several weeks now and it seems to be going nicely. https://www.mybkexperience.one/