Pode prometeus monitorar dispositivos de rede

Pode prometeus monitorar dispositivos de rede
A maioria dos dispositivos de rede suporta o protocolo SNMP (Simple Network Management). Você pode usar o prometeu SNMP_EXPORTER Para monitorar dispositivos de rede apoiados pelo SNMP com Prometheus e Grafana.

Neste artigo, mostrarei como monitorar a rede de um roteador doméstico (TP-Link Archer C5 V4) com Prometheus e Grafana. Então vamos começar.

Índice

  1. Pré -requisitos
  2. Permitindo SNMP em dispositivos de rede
  3. Instalando o exportador SNMP
  4. Adicionando exportador SNMP ao Prometheus
  5. Criando um painel de Grafana para monitorar dispositivos de rede
  6. Defina um painel de grafana padrão
  7. Para onde ir a seguir?
  8. Conclusão
  9. Referências

Pré -requisitos

Para experimentar os exemplos deste artigo, você deve ter Prometheus e Grafana instalados em seu computador, e o Prometeu adicionado ao Grafana como fonte de dados.

Se você precisar de assistência para instalar o Prometeu no seu computador, confira o artigo como instalar o Prometeu no Ubuntu 20.04 LTS.

Se você precisar de ajuda para instalar o Grafana no seu computador e aprender o básico do Grafana, confira o artigo (Como faço para conectar o Grafana com a Prometheus).

Permitindo SNMP em dispositivos de rede

Se você deseja monitorar um dispositivo de rede com Prometheus via SNMP, você deve ativar o SNMP em seu dispositivo de rede.

No meu TP-Link Archer C5 V4 roteador, as configurações do SNMP estão em Avançado > Ferramentas do sistema > Configurações SNMP > Agente SNMP, como mostrado na captura de tela abaixo. Se você também está tentando monitorar a rede de um roteador TP-Link, as configurações do SNMP devem estar no mesmo local. Depois de ativar o SNMP, clique em Salvar Para que as mudanças entrem em vigor.

Instalando o exportador SNMP

Para Prometheus coletar métricas através do protocolo SNMP, você deve ter o Prometheus SNMP_EXPORTER instalado no seu computador e configure o prometeu para usá -lo.

Nesta seção, mostrarei como instalar a versão mais recente de Prometheus SNMP_EXPORTER no Ubuntu 20.04 LTS. Então vamos começar.

Primeiro, navegue para o ~/Downloads diretório da seguinte maneira:

$ CD ~/Downloads

OBSERVAÇÃO: A versão mais recente de Prometheus SNMP_EXPORTER é v0.20.0 no momento da redação deste artigo. Quando você está lendo este artigo, versões mais recentes do Prometheus SNMP_EXPORTER pode ser liberado. Nesse caso, você pode copiar o link de download da versão mais recente do SNMP_EXPORTER e substitua aqui. Você pode encontrar o link para a versão mais recente de SNMP_EXPORTER Na página de liberação oficial do SNMP_EXPORTER GITHUB.

Baixe a versão mais recente do Prometheus SNMP_EXPORTER com o seguinte comando:

$ wget https: // github.com/prometeus/snmp_exporter/liberações/download/v0.20.0/snmp_exporter-0.20.0.Linux-AMD64.alcatrão.gz

Prometeu SNMP_EXPORTER Arquivo deve ser baixado.

Você deve encontrar um novo arquivo SNMP_EXPORTER-0.20.0.Linux-AMD64.alcatrão.gz no ~/Downloads diretório, como você pode ver na captura de tela abaixo.

$ ls -lh

Extraia o SNMP_EXPORTER-0.20.0.Linux-AMD64.alcatrão.gz Arquive em seu diretório de trabalho atual da seguinte forma:

$ tar xzf snmp_exporter-0.20.0.Linux-AMD64.alcatrão.gz

Um novo diretório SNMP_EXPORTER-0.20.0.Linux-amd64/ deve ser criado em seu diretório de trabalho atual, como você pode ver na captura de tela abaixo.

$ ls -lh

Mova o SNMP_EXPORTER-0.20.0.Linux-amd64/ diretório para o /optar diretório e renomeie -o para SNMP_EXPORTER do seguinte modo:

$ sudo mv -v snmp_exporter -0.20.0.linux-amd64 /opt /snmp_exporter

O SNMP_EXPORTER-0.20.0.Linux-amd64/ diretório deve ser movido para /optar e renomeado para snmp_exporter/, Como você pode ver na captura de tela abaixo.

$ ls -lh /opt /

No /opt/snmp_exporter/ diretório, o SNMP_EXPORTER O binário é usado para iniciar o SNMP-Exporter serviço e o SNMP.yml é o SNMP_EXPORTER arquivo de configuração.

OBSERVAÇÃO: O arquivo de configuração SNMP.yml é muito longo e não é aconselhável editá -lo à mão. Em vez disso, você deve usar o SNMP_EXPORTER configuração gerador Para gerar um costume SNMP.yml arquivo de configuração. Está fora do escopo deste artigo para mostrar como usar o gerador para gerar um personalizado SNMP.yml arquivo de configuração. Se você estiver usando dispositivos de rede mais novos, o padrão deve ficar bem. Para obter mais informações sobre isso, consulte a página do GitHub do gerador de configuração SNMP_EXPORTER.

$ ls -lh /opt /snmp_exporter

Criar um link simulado do SNMP_EXPORTER binário no caminho /usr/local/bin/snmp_exporter para que o SNMP_EXPORTER O comando está disponível no terminal como qualquer outro comando.

$ sudo ln -s/opt/snmp_exporter/snmp_exporter/usr/local/bin/snmp_exporter

Crie um novo arquivo de serviço Systemd SNMP-Exporter.serviço no /etc/Systemd/System/ diretório da seguinte maneira:

$ sudo nano/etc/systemd/system/snmp-exporter.serviço

Digite as seguintes linhas de códigos no SNMP-Exporter.serviço arquivo.

[Unidade]
Descrição = Serviço de Exportador SNMP Prometheus
Depois = rede-online.alvo
[Serviço]
Reinicie = falha
Usuário = Prometheus
Execstart =/usr/local/bin/snmp_exporter -config.arquivo =/opt/snmp_exporter/snmp.yml
[Instalar]
WantedBy = MultiUser.alvo

Depois de terminar, pressione + X seguido pela Y e Para salvar o SNMP-Exporter.serviço arquivo.

Para que as mudanças entrem em vigor, recarregue os daemons Systemd com o seguinte comando:

$ sudo systemctl daemon -load

Agora, você deve poder iniciar o SNMP-Exporter Serviço Systemd com o seguinte comando:

$ sudo systemctl start snmp-exporter.serviço

O SNMP-Exporter O serviço Systemd deve estar ativo/em execução, como você pode ver na captura de tela abaixo.

$ sudo Systemctl status snmp-exporter.serviço

Execute o seguinte comando para adicionar o SNMP-Exporter Serviço Systemd para a inicialização do sistema, para que ele inicie automaticamente na hora de inicialização.

$ sudo systemctl atability snmp-exporter.serviço

O SNMP-Exporter O serviço Systemd deve ser habilitado (adicionado à inicialização do sistema).

$ sudo Systemctl status snmp-exporter.serviço

O SNMP_EXPORTER O serviço deve estar em execução na porta 9116, Como você pode ver na captura de tela abaixo.

$ sudo ss -tlpn

Para verificar se SNMP_EXPORTER Pode raspar as métricas de um dispositivo de rede, você precisa conhecer o endereço IP do computador onde SNMP_EXPORTER está instalado. No meu caso, o endereço IP é 192.168.0.117. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.

$ hostname -i

Se o seu roteador doméstico usar o endereço IP 192.168.0.1, Navegue até o URL http: // 192.168.0.117: 9116/SNMP?Target = 192.168.0.1 do seu navegador favorito para verificar se SNMP_EXPORTER Pode raspar as métricas do seu roteador doméstico via SNMP.

Todas as propriedades que SNMP_EXPORTER raspado do seu roteador deve ser exibido, como você pode ver na captura de tela abaixo. Então, SNMP_EXPORTER está funcionando muito bem.

Adicionando exportador SNMP ao Prometheus

Agora que você instalou SNMP_EXPORTER E está funcionando, você deve adicioná -lo a Prometheus para poder monitorar o SNMP_EXPORTER Métricas.

Abra o Prometeu.yml arquivo de configuração com o Nano Editor de texto da seguinte forma:

$ sudo nano/opt/prometheus/prometheus.yml

Adicione as seguintes linhas no scrape_configs seção do Prometeu.yml arquivo marcado na captura de tela abaixo. Depois de terminar, pressione + X seguido pela Y e Para salvar o Prometeu.yml arquivo.

- job_name: 'snmp_exporter'
static_configs:
- Alvos: ['192.168.0.1 ']
METRICS_PATH: /SNMP
params:
Módulo: [IF_MIB]
relabel_configs:
- fonte_labels: [__address__]
Target_label: __param_target
- fonte_labels: [__param_target]
Target_label: instância
- Target_label: __address__
Substituição: localhost: 9116

Aqui no alvos Seção, você adiciona os endereços IP dos dispositivos de rede que deseja monitorar. Nesse caso, meu roteador doméstico com o endereço IP 192.168.0.1.

Se você deseja monitorar vários dispositivos de rede, poderá adicioná -los ao alvos Seção da seguinte forma:

No substituição seção, substitua LocalHost com o endereço IP ou nome do host do computador onde SNMP_EXPORTER está correndo. eu estou correndo Prometeu e SNMP_EXPORTER no mesmo computador, então eu usei LocalHost como o nome do host de SNMP_EXPORTER.

Para que as mudanças entrem em vigor, reinicie o Prometeu Serviço Systemd com o seguinte comando:

$ sudo systemctl reinicie prometeus.serviço

Se está tudo bem, o Prometeu o serviço deve ser ativo/correndo.

$ sudo systemctl status prometeus.serviço

Se você navegar para o Alvos Seção de Prometheus web ui, você deveria ver isso SNMP_EXPORTER está no ACIMA estado.

Criando um painel de Grafana para monitorar dispositivos de rede

Para monitorar seus dispositivos de rede com Grafana, você deve ter Prometeu adicionado ao Grafana como fonte de dados.

Para criar um novo painel de Grafana, navegue para Painéis > Gerenciar e clique em Novo painel conforme marcado na captura de tela abaixo.

Para adicionar um novo painel ao painel, clique em Adicione um painel vazio conforme marcado na captura de tela abaixo.

O editor de painel de Grafana deve ser aberto. Você pode configurar um painel de painel de Grafana daqui.

Quero exibir as seguintes métricas do meu tp-link arqueiro C5 V4 roteador doméstico no painel de Grafana.

  1. Time de subida do roteador
  2. Dados totais baixados
  3. Dados totais carregados
  4. Velocidade de download
  5. Velocidade de upload

O tempo de atividade do roteador será um Estado, não Série temporal. Para alterar o tipo de visualização, clique no menu suspenso, conforme marcado na captura de tela abaixo.

Selecione Estado de Visualizações Seção marcada na captura de tela abaixo.

Estado O tipo de visualização deve ser selecionado.

Altere o título do painel para Time de subida do roteador de Opções do painel Seção marcada na captura de tela abaixo.

No Navegador de métricas, Digite a consulta Prometheus sysuptime instance = ”192.168.0.1 " / 100. Aqui, 192.168.0.1 é o endereço IP do meu roteador doméstico. Pode ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.

O tempo de atividade do sistema deve ser exibido na janela de visualização do painel em segundos, conforme mostrado na captura de tela abaixo.

OBSERVAÇÃO: Se você está monitorando vários dispositivos de rede com SNMP_EXPORTER, Prometeu, e Grafana, Certifique -se de incluir o instância filtre em cada uma das consultas de Prometheus para garantir que você esteja monitorando o dispositivo de rede correto.

Por exemplo,

sysuptime instance = "192.168.0.1 "
IfoutocTets instance = "192.168.0.1 "
Ifinoctets instance = "192.168.0.1 "

Neste artigo, estarei monitorando apenas meu roteador doméstico. Então, eu não vou usar o instância filtre em cada uma das consultas de Prometheus.

Defina a unidade Tempo / segundos (s) de Opções padrão > Unidade Seção marcada na captura de tela abaixo.

O tempo de atividade deve ser exibido em um formato adequado para o ser humano.

Para eliminar os dígitos decimais, defina Decimais para 0 de Opções padrão Seção marcada na captura de tela abaixo. O tempo de atividade deve parecer muito melhor agora.

Você também não precisa de um valor limite para os dados de tempo de atividade. Então, remova o limiar do Limiares Seção marcada na captura de tela abaixo.

O limiar deve ser removido.

O tempo de atividade é um contador e continua aumentando. Um gráfico do tempo de atividade no fundo do painel não faz sentido. Então, defina Modo gráfico para Nenhum de Estilos de estatísticas Seção marcada na captura de tela abaixo para remover o gráfico do fundo.

Depois de ficar feliz com os resultados, clique em Aplicar Para adicionar o painel ao painel.

O Time de subida do roteador O painel deve ser adicionado ao painel, conforme mostrado na captura de tela abaixo.

O painel que exibe os dados do download total será um Estado também e será quase como o Time de subida do roteador painel. Então, em vez de criar um novo painel, vamos duplicar o existente Time de subida do roteador painel. Isso vai economizar muito tempo.

Para duplicar o existente Time de subida do roteador painel, clique no Time de subida do roteador menu suspenso do painel e clique em Mais… > Duplicado conforme marcado na captura de tela abaixo.

O Time de subida do roteador O painel deve ser duplicado, como você pode ver na captura de tela abaixo.

Para editar o clonado Time de subida do roteador painel, clique em Time de subida do roteador > Editar conforme marcado na captura de tela abaixo.

O clonado Time de subida do roteador O painel deve ser aberto com o editor de painel de Grafana.

Altere o título do painel para Total baixado, conforme marcado na captura de tela abaixo.

Um roteador tem muitas interfaces de rede. Você terá que escolher a interface de rede correta para monitorar o upload e baixar métricas do roteador corretamente.

Para descobrir as interfaces de rede disponíveis no seu roteador que estão gerando algum tipo de tráfego de rede, execute a consulta Prometheus ifoutoctets> 0. As interfaces de rede que estão gerando algum tipo de tráfego de rede devem ser listadas, como você pode ver na captura de tela abaixo.

Aqui, eth0, eth0.1, eth0.2, e assim por dia.

O PPP0, PPP1, e assim por diante pode ser usado para monitorar o tráfego de rede externa/na Internet.

O BR0 é uma interface de rede em ponte. Ele pode preencher algumas das interfaces de rede e você poderá usá -lo para monitorar o tráfego de rede das interfaces de rede em ponte por completo.

O RA0 A interface pode ser a interface de rede de rádio sem fio (Wi-Fi) do seu roteador, e você poderá usá-lo para monitorar o tráfego sem fio do seu roteador.

Neste artigo, vou monitorar o BR0 interface de rede, por exemplo. Seu caso pode diferir e você pode monitorar uma interface de rede diferente.

A interface de rede exata que você precisa monitorar para obter estatísticas de rede corretas depende do seu roteador. Pode ser necessário ver como esses valores mudam com o tempo para determinar qual interface de rede você precisa monitorar.

Você pode executar a consulta de Prometheus taxa (ifoutoctes [1m] * 8)> 0 Em um painel de painel de Grafana vazio com as seguintes configurações e transmita um vídeo do YouTube no seu computador para ter uma idéia de qual interface de rede monitorar.

Para monitorar o tráfego total de download da interface de rede BR0, você pode usar a seguinte consulta Prometheus.

ifoutoctets ifdescr = "BR0" * 8

Ou,

ifoutoctets ifDescr = "BR0"

OBSERVAÇÃO: A unidade padrão é bytes. Se você multiplicar por 8, você recebe pedaços.

Se você deseja exibir os dados em Kib (Kibibytes), Gib (Gibibytes), Tib (Tebibytes), etc., Unidades, use a primeira consulta de Prometheus (multiplique por 8).

Se você deseja exibir os dados em KB (Kilobytes), GB (Gigabytes), TB (Terabytes), etc., Unidades, use a segunda consulta de Prometheus (não multiplicada por 8).

Selecione a unidade Dados / bytes (IEC) Se você quiser exibir os dados em Kib, Gib, Tib, e assim por diante.

Selecione a unidade Dados / bytes (SI) Se você deseja exibir os dados em KB, GB, TB, e assim por diante.

Os dados baixados totais do BR0 A interface deve ser exibida corretamente, como você pode ver na captura de tela abaixo.

Se você quiser ver 2 lugares decimais, defina decimais como 2 na seção de opções padrão, como mostrado abaixo.

Depois de ficar feliz com os resultados, clique em Aplicar Para adicionar o painel ao painel.

O Total baixado O painel deve ser adicionado ao painel, conforme mostrado na captura de tela abaixo.

O Total carregado Painel será o mesmo que o Total baixado painel. A única diferença é que ele calculará o tráfego total de upload. Então, para facilitar as coisas, clonar o Total baixado painel e edite o clonado Total baixado painel.

Altere a consulta de Prometheus de ifoutocTets para ifinoctets e defina o título do painel como Total carregado, conforme marcado na captura de tela abaixo.

O tráfego total de upload deve ser exibido corretamente.

Depois de ficar feliz com os resultados, clique em Aplicar.

O Total carregado Painel deve ser adicionado ao Painel, como mostrado na captura de tela abaixo.

Você pode pairar até o canto inferior direito de qualquer painéis, pressionar e segurar o LMB (botão esquerdo do mouse) e arrastar para redimensionar os painéis do painel.

Você também pode segurar e arrastar os painéis pelo título do painel para alinhá -los em qualquer lugar do painel.

Eu redimensionei e alinhei os painéis do painel da seguinte maneira.

Para monitorar a velocidade de download da rede, clique no icon add () para criar um novo painel no painel.

Clique em Adicione um painel vazio.

O editor de painel de Grafana deve ser aberto.

Para monitorar a velocidade de download da interface de rede BR0, digite a seguinte consulta de Prometheus no Navegador de métricas seção.

taxa (ifoutoctets ifdescr = "BR0" [1m]) * 8

Ou,

taxa (ifoutoctets ifdescr = "Br0" [1m])

Defina a lenda para Velocidade de download.

Defina o título do painel como Velocidade de download.

Você pode selecionar um intervalo de tempo para o gráfico de velocidade de download no menu suspenso, como mostrado abaixo. Vou selecionar o Últimos 5 minutos para que ele exiba a velocidade de download da rede do BR0 Interface nos últimos 5 minutos.

Como você pode ver, a velocidade de download da rede da interface BR0 é exibido nos últimos 5 minutos.

Para fazer o gráfico parecer um pouco mais bonito, definido Interpolação de linha pôr Espessura da linha para 2, Preencher a opacidade para 10, e Tamanho de ponto para 10 de Estilos de gráfico Seção marcada na captura de tela abaixo.

Defina a unidade correta para o gráfico do Unidade Seção marcada na captura de tela abaixo.

A unidade correta deve ser exibida no gráfico.

Definir Decimais para 2. Isso mostrará apenas 2 lugares decimais para o eixo y do gráfico de velocidade de download.

Remova o limiar que não precisa aqui.

Depois de ficar feliz com os resultados, clique em Aplicar.

O painel de velocidade de download deve ser adicionado ao painel, conforme mostrado na captura de tela abaixo.

Arrastar o Velocidade de download painel abaixo de todos os outros painéis e redimensione -o como você achar adequado.

O Velocidade de upload Painel será o mesmo que o Velocidade de download painel. Então, duplique o Velocidade de download painel e edite -o como antes para economizar tempo.

O duplicado Velocidade de download O painel deve ser aberto com o editor de painel de Grafana.

Mudar ifoutocTets para ifinoctets da consulta de Prometheus no Navegador de métricas conforme marcado na captura de tela abaixo.

Mudar o Lenda para Velocidade de upload.

Altere o título do painel para Velocidade de upload.

Para tornar o gráfico um pouco interessante, você também pode alterar a cor do gráfico.

Para fazer isso, selecione Única cor de Esquema de cores Seção marcada na captura de tela abaixo.

Clique na cor para selecionar uma nova cor para o gráfico.

Selecione a cor que você gosta no seletor de cores, conforme marcado na captura de tela abaixo.

O gráfico de velocidade de upload parece muito melhor.

Depois de ficar feliz com os resultados, clique em Aplicar.

O Velocidade de upload O painel deve ser adicionado ao painel, conforme mostrado na captura de tela abaixo.

Agora, clique no ícone Salvar como marcado na captura de tela abaixo para salvar o painel.

Digite um nome significativo para o painel e clique em Salvar.

Eu vou chamá -lo TP Link Archer C5 V4 Estatísticas.

O painel deve ser salvo.

Defina um painel de grafana padrão

Para definir o painel como o painel de grafana padrão, você deve estrelar o painel primeiro.

Para estrelar o painel, clique no ícone da estrela, conforme marcado na captura de tela abaixo.

O painel deve ser estrelado.

Agora, você pode selecionar o painel do Painel doméstico Menu suspenso da página Configurações de Grafana, como você pode ver na captura de tela abaixo.

Depois de terminar, clique em Salvar Para que as mudanças entrem em vigor.

Se você clicar no ícone do painel, o painel recém -criado deve ser exibido por padrão.

Para onde ir a seguir?

Puxar dados de um dispositivo de rede via SNMP coloca muito estresse na CPU do dispositivo de rede. Portanto, não é bom puxar os dados que você não precisa dos dispositivos de rede via SNMP. É uma boa prática puxar apenas os dados necessários para monitorar os dispositivos de rede.

Você pode configurar facilmente SNMP_EXPORTER Para extrair dados específicos dos dispositivos de rede via SNMP. Tudo que você precisa fazer é usar o gerador que SNMP_EXPORTER fornece para gerar um novo SNMP.yml arquivo de configuração.

Infelizmente, está fora do escopo deste artigo para mostrar como fazer isso. Para obter mais informações sobre como gerar um costume SNMP_EXPORTER Arquivo de configuração, confira a seção de configuração geradora do exportador SNMP Github Page.

Conclusão

Neste artigo, mostrei como instalar SNMP_EXPORTER no Ubuntu 20.04 LTS e adicione -o a Prometheus para monitorar dispositivos de rede via SNMP. Eu também mostrei a você como ativar o SNMP no seu roteador TP-Link Home. Eu mostrei como usar o Grafana para criar um painel para monitorar dispositivos de rede usando Prometheus e definir o painel como o painel de grafana padrão também. Este artigo deve ajudá -lo a começar com os dispositivos de rede do Monitor com Grafana e Prometheus.

Referências

[1] Github - Prometheus/SNMP_EXPORTER: Exportador SNMP para Prometheus

[2] q_a_supported_public_mibs_for_tp-link_switches

[3] Github - Prometheus/SNMP_EXPORTER: Exportador SNMP para Prometheus - Geração de configuração