Domine o monitoramento de rede com este tutorial abrangente sobre o Prometheus SNMP Exporter e Grafana. Aprenda a coletar métricas de dispositivos de rede de forma eficiente usando o Prometheus SNMP Exporter e visualize-as em insights acionáveis com painéis impressionantes do Grafana. Descubra como criar painéis personalizados, solucionar problemas comuns e desbloquear todo o potencial do Prometheus e Grafana para suas necessidades de monitoramento de rede.
Para consultas comerciais ou consultoria, envie-me um e-mail para: info@distrodomain.com
Confirmação do snmpwalk
snmpwalk -v3 -l authPriv -u admin -a SHA -A "PWt89voowUiDcJBi9boiSM" -x AES -X "PWt89voowUiDcJBi9boiSM" 192.168.0.84
#### arquivo docker compose do snmp exporter ####
---
services:
snmp-exporter:
container_name: snmp-exporter
image: quay.io/prometheus/snmp-exporter:v0.26.0
ports:
- "9116:9116"
- "161:161/udp"
volumes:
- ./config:/etc/snmp-exporter
command: --config.file=/etc/snmp-exporter/snmp.yml
restart: unless-stopped
networks:
prometheus_frontend:
ipv4_address: 172.19.0.12
networks:
prometheus_frontend:
external: true
#### Git clone do projeto snmp_exporter ####
#### Instalar dependências e compilar gerador ####
Distribuições baseadas em Debian.
sudo apt-get install unzip build-essential libsnmp-dev # distribuições baseadas em Debian
Distribuições baseadas em Redhat.
sudo yum install gcc make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel golang
#### Compilar gerador ####
make generator mibs
#### Modificação da configuração do gerador ####
walk:
- sysUpTime
- interfaces
- ifXTable
- sysName
- ifHCInOctets
- ifHCOutOctets
- ifInErrors
- ifOutErrors
#### configuração do docker do Prometheus ####
---
services:
prometheus:
image: prom/prometheus:v2.53.0
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus:/etc/prometheus
- ./prometheus-data:/prometheus
command: "--config.file=/etc/prometheus/prometheus.yml"
restart: unless-stopped
networks:
frontend:
ipv4_address: 172.19.0.11
networks:
frontend:
driver: bridge
ipam:
config:
- subnet: 172.19.0.0/16
gateway: 172.19.0.1
#### arquivo de configuração do Prometheus ####
---
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'snmp'
static_configs:
- targets:
- 192.168.0.84 # Dispositivo SNMP.
metrics_path: /snmp
params:
auth: [public_v3]
module: [if_mib]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.0.153:9116 # O hostname:porta real do exportador SNMP.
#### configuração do docker do Grafana ####
---
services:
grafana:
image: grafana/grafana-oss:10.2.8
container_name: grafana
ports:
- "3000:3000"
volumes:
- ./grafana-data:/var/lib/grafana
restart: unless-stopped
networks:
prometheus_frontend:
ipv4_address: 172.19.0.13
networks:
prometheus_frontend:
external: true
#### Dashboard do Grafana ####
Tráfego Total
sum(irate(ifHCInOctets{instance="$Device"}[$__rate_interval]) * 8)
sum(irate(ifHCOutOctets{instance="$Device"}[$__rate_interval]) * 8)
ENTRADA & SAÍDA por interface
irate(ifHCInOctets{instance="192.168.0.84",ifIndex="2"}[$__rate_interval]) * 8
irate(ifHCOutOctets{instance="192.168.0.84",ifIndex="2"}[$__rate_interval]) * 8
Tempo de Atividade
sysUpTime{instance="$Device"} * 10
Nome do Sistema
sysName{instance="$Device"}
0:00 - O que você precisa
0:23 - Unifi SNMP v3
1:08 - Ferramentas snmp do Linux
2:43 - docker compose do snmp exporter
4:11 - gerador snmp
5:49 - configuração do gerador
7:11 - configuração compilada do snmp
8:25 - docker compose do prometheus
10:34 - confirmação do container do snmp exporter
11:17 - docker compose do grafana
12:26 - fonte de dados do prometheus
13:13 - dashboards snmp do grafana
13:41 - corrigindo o prometheus
14:21 - painel de hostname do switch
15:15 - painel de tráfego total do switch
17:48 - painel de tráfego de porta do switch
19:32 - painel de tempo de atividade do switch
#prometheus #snmp #snmp_exporter #monitoramentodenetwork #devops