Adora Grafana para monitoramento de métricas de servidor? Você também vai adorar o Blackbox Exporter para monitoramento de sites!
Neste tutorial, você aprenderá a instalar o Blackbox Exporter no CentOS/RHEL e entenderá como usá-lo com o Prometheus e o Grafana para monitorar o desempenho e o tempo de atividade do site.
O que é Blackbox Exporter?
Exportador Blackbox por Prometheus é usado para sondar endpoints como HTTPS, HTTP, TCP, DNS e ICMP. Depois de definir o endpoint, o exportador Blackbox gera centenas de métricas que podem ser visualizadas usando o Grafana. Medir o tempo de resposta é o recurso mais importante do exportador Blackbox.
O Blackbox Exporter é uma solução auto-hospedada. Se você está procurando algo semelhante, mas como SaaS ou baseado em nuvem, pode experimentar o Grafana worldPing.
últimas postagens
Pré-requisitos
Prometheus e Grafana devem ser pré-instalados. Siga este artigo para instalar o Prometheus e o Grafana.
Instalação do Blackbox Exporter
Deixe-me mostrar como instalar o exportador Blackbox primeiro.
Passo 1: Baixe o Blackbox Exporter
Vou ao Página Oficial para baixar o mais recente pacote do exportador Linux AMD Blackbox. Estou baixando o arquivo blackbox_exporter-0.16.0.linux-amd64.tar.gz.
- Transfira o arquivo baixado para o servidor
- Extraia os arquivos do pacote.
[[email protected] ~]$ tar -xzf blackbox_exporter-0.16.0.linux-amd64.tar.gz
Verifique todos os arquivos dentro do exportador Blackbox.
[[email protected] ~]$ cd blackbox_exporter-0.16.0.linux-amd64/ [[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ls -l total 16672 -rwxr-xr-x. 1 centos centos 17050332 Nov 11 2019 blackbox_exporter -rw-r--r--. 1 centos centos 629 Nov 11 2019 blackbox.yml -rw-r--r--. 1 centos centos 11357 Nov 11 2019 LICENSE -rw-r--r--. 1 centos centos 94 Nov 11 2019 NOTICE
Dois arquivos blackbox_exporter e blackbox.yml são importantes aqui.
- blackbox_exporter: Este é um arquivo executável para executar o serviço.
- blackbox.yml: Um arquivo YAML com todas as configurações do exportador backbox que você define todos os pontos de extremidade para sondar e módulos para executar.
O comando abaixo fornecerá todos os sinalizadores que você pode usar com o exportador Blackbox.
[[email protected] blackbox_exporter-0.16.0.linux-amd64]$ ./blackbox_exporter -h usage: blackbox_exporter [<flags>] Flags: -h, --help Show context-sensitive help (also try --help-long and --help-man). --config.file="blackbox.yml" Blackbox exporter configuration file. --web.listen-address=":9115" The address to listen on for HTTP requests. --timeout-offset=0.5 Offset to subtract from timeout in seconds. --config.check If true validate the config file and then exit. --history.limit=100 The maximum amount of items to keep in the history. --web.external-url=<url> The URL under which Blackbox exporter is externally reachable (for example, if Blackbox exporter is served via a reverse proxy). Used for generating relative and absolute links back to Blackbox exporter itself. If the URL has a path portion, it will be used to prefix all HTTP endpoints served by Blackbox exporter. If omitted, relevant URL components will be derived automatically. --web.route-prefix=<path> Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url. --log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error] --log.format=logfmt Output format of log messages. One of: [logfmt, json] --version Show application version.
Etapa 2: Criar usuário para Blackbox
Isso é opcional.
Você pode criar um novo usuário para executar o Blackbox ou usar usuários existentes do Prometheus para executá-lo.
Forneça permissões e atribua a propriedade de todos os seus arquivos ao novo usuário.
[[email protected] ~]$ sudo useradd -rs /bin/false blackbox [[email protected] ~]$ sudo chmod -R 777 /home/centos/blackbox_exporter-0.16.0.linux-amd64 [[email protected] ~]$ sudo chown -R blackbox:blackbox /home/centos/blackbox_exporter-0.16.0.linux-amd64
Etapa 3: configurar o serviço Blackbox
É hora de configurar o Blackbox Exporter como um serviço dentro do systemd. Crie um arquivo blackbox.service e coloque as linhas mencionadas abaixo no arquivo e salve-o.
[[email protected] ~]$ sudo gedit /etc/systemd/system/blackbox.service [Unit] Description=Blackbox Exporter Service Wants=network-online.target After=network-online.target [Service] Type=simple User=blackbox Group=blackbox ExecStart=/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox_exporter --config.file==/home/centos/blackbox_exporter-0.16.0.linux-amd64/blackbox.yml [Install] WantedBy=multi-user.target
Não se esqueça de alterar o caminho para o local onde você o extraiu.
Passo 4: Inicie o Blackbox Exporter
Execute os comandos abaixo para iniciar o exportador Blackbox como um serviço.
[[email protected] ~]$ sudo systemctl daemon-reload [[email protected] ~]$ sudo systemctl start blackbox.service [[email protected] ~]$ sudo systemctl status blackbox.service ● blackbox.service - Blackbox Exporter Service Loaded: loaded (/etc/systemd/system/blackbox.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-06-13 17:28:40 EDT; 1s ago Main PID: 30427 (blackbox_export) Tasks: 5 CGroup: /system.slice/blackbox.service └─30427 /usr/local/bin/blackbox_exporter --config.file=/etc/blackbox.yml Jun 13 17:28:40 etechpt.com.linuxvmimages.com systemd[1]: Started Blackbox Exporter Service. Jun 13 17:28:40 etechpt.com.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:212 msg="Starting b...b9a9)" Jun 13 17:28:40 etechpt.com.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:213 msg="Build cont...SSING) Jun 13 17:28:40 etechpt.com.linuxvmimages.com blackbox_exporter[30427]: level=info ts=2020-06-13T21:28:40.283Z caller=main.go:225 msg="Loaded config file" Jun 13 17:28:40 etechpt.com.linuxvmimages.com blackbox_exporter[30
Excelente!
O exportador Blackbox foi iniciado com sucesso. Em http://localhost:9115/ você pode encontrar o Blackbox Exporter em execução.
Integrando o Blackbox com o Prometheus
Vamos integrar o Blackbox Exporter com o Prometheus para começar a coletar as métricas.
- Adicione um trabalho blackbox com as configurações abaixo dentro do arquivo prometheus.yml. Vou monitorar o desempenho de https://www.telegraph.co.uk.
[[email protected] ~]$ sudo gedit /etc/prometheus/prometheus.yml - job_name: 'blackbox' metrics_path: /probe params: module: [http_2xx] # Look for a HTTP 200 response. static_configs: - targets: - https://www.telegraph.co.uk 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 # The blackbox exporter's real hostname:port.
[[email protected] ~]$ sudo systemctl restart prometheus.service
- Ao verificar os destinos em http://localhost:9090/targets novamente, você encontrará um trabalho de caixa preta em execução com o endpoint que defini.
- Clique no gráfico e execute a consulta – probe_http_duration_seconds.
- Uma visualização será criada nos dados que estão sendo monitorados pelo Prometheus.
Agora é hora de visualizar o trabalho do Blackbox no Grafana.
Há muitas maneiras de começar, mas uma das mais rápidas seria começar com um painel pronto – Prometheus Blackbox Exportador.
- Vá para o painel do Grafana, clique no sinal + e clique em Importar.
- Em Import via grafana.com, coloque o id do painel 7587 e clique em Load.
- Em seguida, selecione a fonte de dados Prometheus e clique em Importar.
- O painel do Prometheus Blackbox Exporter será importado.
- Você poderá visualizar métricas como duração global da sondagem, status, duração do HTTP, duração média da sondagem, pesquisa média de DNS, expiração de SSL e muito mais.
- Todos esses são painéis separados no painel. Deixe-me mostrar o painel HTTP Duration em detalhes. Este painel mostra a visualização da duração do tempo gasto para conectar, processar, resolver, tls e solicitações de transferência.
Existem muitas opções no painel com as quais você pode brincar. Você pode alterar o intervalo de tempo para o qual deseja que a visualização apareça. Você também pode alterar o intervalo de tempo na atualização de dados; aqui, os novos dados chegam ao painel a cada 5 segundos.
- Ao clicar na seta para baixo Duração do HTTP, você obterá as opções mostradas abaixo. Clique em editar.
- Abaixo do painel de visualização, você terá um editor de consultas. Atualmente, a consulta mostrada no instantâneo abaixo está sendo visualizada – probe_http_duration_seconds.
- Existem centenas de consultas que você pode visualizar facilmente e adicioná-las ao seu painel de acordo com o requisito.
- Você também tem muitas opções para alterar o tipo de visualização. A duração média do probe está presente no painel no formato de texto. No painel de visualização à direita, clique na opção Medidor para obter a duração média da sonda.
- E é assim que a visualização mudará.
Conclusão
O que foi dito acima é apenas para você ter uma ideia de como é fácil monitorar o site com o Prometheus Blackbox e o Grafana. Existem muitas opções, e eu sugiro fortemente brincar com ele para experimentá-lo. Se você está curioso para aprender Grafana, então confira o curso online.
Gostou de ler o artigo? Que tal compartilhar com o mundo?