Maîtrisez la surveillance réseau avec ce tutoriel complet sur Prometheus SNMP Exporter et Grafana. Apprenez à collecter efficacement les métriques des dispositifs réseau en utilisant Prometheus SNMP Exporter et à les visualiser sous forme d'insights exploitables avec des tableaux de bord Grafana époustouflants. Découvrez comment créer des tableaux de bord personnalisés, résoudre des problèmes courants et débloquer tout le potentiel de Prometheus et Grafana pour vos besoins de surveillance réseau.
Pour des demandes commerciales ou des consultations, envoyez-moi un e-mail à : info@distrodomain.com
Confirmation snmpwalk
snmpwalk -v3 -l authPriv -u admin -a SHA -A "PWt89voowUiDcJBi9boiSM" -x AES -X "PWt89voowUiDcJBi9boiSM" 192.168.0.84
#### Fichier docker compose 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
#### Cloner le projet snmp_exporter ####
#### Installer les dépendances et compiler le générateur ####
Distributions basées sur Debian.
sudo apt-get install unzip build-essential libsnmp-dev # Distributions basées sur Debian
Distributions basées sur Redhat.
sudo yum install gcc make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel golang
#### Compiler le générateur ####
make generator mibs
#### Modification de la configuration du générateur ####
walk:
- sysUpTime
- interfaces
- ifXTable
- sysName
- ifHCInOctets
- ifHCOutOctets
- ifInErrors
- ifOutErrors
#### Configuration docker de 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
#### Fichier de configuration de Prometheus ####
---
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'snmp'
static_configs:
- targets:
- 192.168.0.84 # Dispositif 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 # Le véritable nom d'hôte:port de l'exportateur SNMP.
#### Configuration docker de 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
#### Tableau de bord Grafana ####
Trafic total
sum(irate(ifHCInOctets{instance="$Device"}[$__rate_interval]) * 8)
sum(irate(ifHCOutOctets{instance="$Device"}[$__rate_interval]) * 8)
IN & OUT par 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
Temps de fonctionnement
sysUpTime{instance="$Device"} * 10
Nom du système
sysName{instance="$Device"}
0:00 - Ce dont vous avez besoin
0:23 - Unifi SNMP v3
1:08 - Outils snmp sous Linux
2:43 - docker compose snmp exporter
4:11 - générateur snmp
5:49 - configuration du générateur
7:11 - configuration compilée snmp
8:25 - docker compose prometheus
10:34 - confirmation du conteneur snmp exporter
11:17 - docker compose grafana
12:26 - source de données prometheus
13:13 - tableaux de bord grafana snmp
13:41 - correction de prometheus
14:21 - panneau de nom d'hôte du switch
15:15 - panneau de trafic total du switch
17:48 - panneau de trafic du port du switch
19:32 - panneau de temps de fonctionnement du switch
#prometheus #snmp #snmp_exporter #surveillancenetwork #devops