Può monitorare i dispositivi di rete Prometheus

Può monitorare i dispositivi di rete Prometheus
La maggior parte dei dispositivi di rete supporta il protocollo SNMP (Simple Network Management Protocol). Puoi usare il Prometeo snmp_exporter Per monitorare i dispositivi di rete supportati da SNMP con Prometheus e Grafana.

In questo articolo, ti mostrerò come monitorare la rete di un router Home (TP-Link Archer C5 V4) con Prometheus e Grafana. Quindi iniziamo.

Sommario

  1. Prerequisiti
  2. Abilitazione di SNMP sui dispositivi di rete
  3. Installazione dell'esportatore SNMP
  4. Aggiunta di esportatore SNMP a Prometeo
  5. Creazione di una dashboard Grafana per il monitoraggio dei dispositivi di rete
  6. Imposta una dashboard Grafana predefinita
  7. Dove andare dopo?
  8. Conclusione
  9. Riferimenti

Prerequisiti

Per provare gli esempi di questo articolo, devi avere Prometheus e Grafana installati sul tuo computer e Prometheus aggiunto a Grafana come fonte di dati.

Se hai bisogno di assistenza sull'installazione di Prometheus sul tuo computer, controlla l'articolo come installare Prometheus su Ubuntu 20.04 LTS.

Se hai bisogno di assistenza per l'installazione di Grafana sul tuo computer e l'apprendimento delle basi di Grafana, dai un'occhiata all'articolo (Come collego Grafana con Prometeo).

Abilitazione di SNMP sui dispositivi di rete

Se si desidera monitorare un dispositivo di rete con Prometheus tramite SNMP, è necessario abilitare SNMP nel dispositivo di rete.

Sul mio TP-Link Archer C5 V4 router, le impostazioni SNMP sono in Avanzate > Strumenti di sistema > Impostazioni SNMP > Agente SNMP, Come mostrato nello screenshot seguente. Se stai anche cercando di monitorare la rete di un router TP-Link, le impostazioni SNMP dovrebbero essere nella stessa posizione. Dopo aver abilitato SNMP, fai clic su Salva affinché le modifiche abbiano effetto.

Installazione dell'esportatore SNMP

Per Prometeo raccogliere metriche tramite il protocollo SNMP, devi avere il Prometeo snmp_exporter installato sul tuo computer e configura Prometheus per usarlo.

In questa sezione, ti mostrerò come installare l'ultima versione di Prometheus snmp_exporter su Ubuntu 20.04 LTS. Quindi iniziamo.

Innanzitutto, navigare verso il ~/Download directory come segue:

$ cd ~/download

NOTA: L'ultima versione di Prometeo snmp_exporter È V0.20.0 Al momento di questa scrittura. Quando stai leggendo questo articolo, versioni più recenti di Prometheus snmp_exporter può essere rilasciato. In tal caso, puoi copiare il link per il download dell'ultima versione del snmp_exporter e sostituiscilo qui. Puoi trovare il link all'ultima versione di snmp_exporter Nella pagina di rilascio ufficiale SNMP_EXPORTER GITHUB.

Scarica l'ultima versione di Prometheus snmp_exporter con il seguente comando:

$ wget https: // github.com/prometheus/snmp_exporter/uscite/download/v0.20.0/snmp_exporter-0.20.0.Linux-AMD64.catrame.Gz

Prometeo snmp_exporter L'archivio dovrebbe essere scaricato.

Dovresti trovare un nuovo file snmp_exporter-0.20.0.Linux-AMD64.catrame.Gz nel ~/Download directory, come puoi vedere nello screenshot qui sotto.

$ ls -lh

Estrarre il snmp_exporter-0.20.0.Linux-AMD64.catrame.Gz Archivio sulla tua attuale directory di lavoro come segue:

$ tar xzf snmp_exporter-0.20.0.Linux-AMD64.catrame.Gz

Una nuova directory snmp_exporter-0.20.0.Linux-Amd64/ dovrebbe essere creato sulla tua attuale directory di lavoro, come puoi vedere nello screenshot seguente.

$ ls -lh

Muovi il snmp_exporter-0.20.0.Linux-Amd64/ directory al /optare directory e rinominarlo a snmp_exporter come segue:

$ sudo mv -v snmp_exporter -0.20.0.Linux-AMD64 /OPT /SNMP_Exporter

IL snmp_exporter-0.20.0.Linux-Amd64/ La directory dovrebbe essere spostata a /optare e rinominato snmp_exporter/, Come puoi vedere nello screenshot qui sotto.

$ ls -lh /opt /

Nel /opt/snmp_exporter/ directory, il snmp_exporter binario viene utilizzato per iniziare il SNMP-Exporter servizio e il snmp.YML è il snmp_exporter file di configurazione.

NOTA: Il file di configurazione snmp.YML è molto lungo e non è consigliabile modificarlo a mano. Invece, dovresti usare il snmp_exporter configurazione Generatore Per generare un'usanza snmp.YML file di configurazione. È fuori dall'ambito di questo articolo mostrarti come utilizzare il generatore per generare un'usanza snmp.YML file di configurazione. Se stai utilizzando dispositivi di rete più recenti, quello predefinito dovrebbe andare bene. Per ulteriori informazioni al riguardo, consultare la pagina GitHub del generatore di configurazione SNMP_EXPORTER.

$ ls -lh /opt /snmp_exporter

Crea un collegamento simbolico del snmp_exporter binario nel percorso /USR/Local/Bin/Snmp_Exporter In modo che la snmp_exporter Il comando è disponibile dal terminale come qualsiasi altro comando.

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

Crea un nuovo file di servizio SystemD SNMP-Exporter.servizio nel /etc/systemd/system/ directory come segue:

$ sudo nano/etc/systemd/system/snmp-exporter.servizio

Digitare le seguenti righe di codici in SNMP-Exporter.servizio file.

[Unità]
Descrizione = servizio di esportatore SNMP Prometheus
After = Network-Online.bersaglio
[Servizio]
Riavvia = on-failure
Utente = Prometheus
ExecStart =/usr/local/bin/snmp_exporter -config.file =/opt/snmp_exporter/snmp.YML
[Installare]
WANTEDBY = Multi-utente.bersaglio

Una volta che hai finito, premere + X seguito da Y E per salvare il SNMP-Exporter.servizio file.

Per avere effetto sulle modifiche, ricaricare i demoni Systemd con il seguente comando:

$ sudo systemctl demone-ricaricamento

Ora dovresti essere in grado di iniziare il SNMP-Exporter Servizio SystemD con il seguente comando:

$ sudo systemctl avvia snmp-exporter.servizio

IL SNMP-Exporter Il servizio SystemD dovrebbe essere attivo/in esecuzione, come puoi vedere nello screenshot seguente.

$ sudo systemctl status snmp-esporter.servizio

Eseguire il comando seguente per aggiungere il SNMP-Exporter Sistemad servizio all'avvio del sistema in modo che inizi automaticamente al momento dell'avvio.

$ sudo systemctl abilita snmp-exporter.servizio

IL SNMP-Exporter Il servizio SystemD dovrebbe essere abilitato (aggiunto all'avvio del sistema).

$ sudo systemctl status snmp-esporter.servizio

IL snmp_exporter Il servizio dovrebbe essere in esecuzione sulla porta 9116, Come puoi vedere nello screenshot qui sotto.

$ sudo ss -tlpn

Per verificare se snmp_exporter può raschiare le metriche da un dispositivo di rete, è necessario conoscere l'indirizzo IP del computer dove snmp_exporter è installato. Nel mio caso, l'indirizzo IP è 192.168.0.117. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo da ora in poi.

$ hostname -i

Se il tuo router di casa utilizza l'indirizzo IP 192.168.0.1, Passare all'URL http: // 192.168.0.117: 9116/SNMP?Target = 192.168.0.1 dal tuo browser Web preferito per verificare se snmp_exporter può raschiare le metriche dal router di casa tramite SNMP.

Tutte le proprietà che snmp_exporter raschiato dal router dovrebbe essere visualizzato, come puoi vedere nello screenshot qui sotto. COSÌ, snmp_exporter funziona bene.

Aggiunta di esportatore SNMP a Prometeo

Ora che hai installato snmp_exporter E funziona, devi aggiungerlo a Prometeo per poter monitorare il snmp_exporter metrica.

Apri il Prometeo.YML File di configurazione con il nano Editor di testo come segue:

$ sudo nano/opt/prometheus/prometeo.YML

Aggiungi le seguenti righe in rash_configs sezione del Prometeo.YML File come contrassegnato nello screenshot di seguito. Una volta che hai finito, premere + X seguito da Y E per salvare il Prometeo.YML file.

- job_name: 'snmp_exporter'
static_configs:
- Obiettivi: ['192.168.0.1 ']
metrics_path: /snmp
Parame:
Modulo: [if_mib]
RELLABEL_CONFIGS:
- Source_labels: [__Address__]
target_label: __param_target
- Source_labels: [__param_target]
Target_label: istanza
- target_label: __address__
Sostituzione: Localhost: 9116

Qui, nel obiettivi sezione, aggiungi gli indirizzi IP dei dispositivi di rete che si desidera monitorare. In questo caso, il mio router di casa con l'indirizzo IP 192.168.0.1.

Se si desidera monitorare più dispositivi di rete, puoi aggiungerli al obiettivi sezione come segue:

Nel sostituzione sezione, sostituire Localhost con l'indirizzo IP o il nome host del computer dove snmp_exporter è in esecuzione. Sto correndo Prometeo E snmp_exporter Sullo stesso computer, quindi ho usato Localhost come nome host di snmp_exporter.

Affinché le modifiche abbiano effetto, riavvia il Prometeo Servizio SystemD con il seguente comando:

$ sudo systemctl riavvia Prometeo.servizio

Se tutto va bene, il Prometeo il servizio dovrebbe essere attivo/corsa.

$ sudo systemctl status Prometheus.servizio

Se navighi al Obiettivi sezione di Prometheus Web UI, Dovresti vederlo snmp_exporter è nel SU stato.

Creazione di una dashboard Grafana per il monitoraggio dei dispositivi di rete

Per monitorare i dispositivi di rete con Grafana, è necessario che Prometeo sia aggiunto a Grafana come fonte di dati.

Per creare un nuovo dashboard Grafana, navigare a Dashboard > Maneggio e fare clic su Nuovo dashboard come contrassegnato nello screenshot seguente.

Per aggiungere un nuovo pannello alla dashboard, fare clic su Aggiungi un pannello vuoto come contrassegnato nello screenshot seguente.

L'editore del pannello Grafana dovrebbe essere aperto. Da qui puoi configurare un pannello dashboard Grafana.

Voglio visualizzare le seguenti metriche dal mio router Home Archer C5 V4 TP-Link sul cruscotto Grafana.

  1. Uptime del router
  2. Dati totali scaricati
  3. Dati totali caricati
  4. Velocità di download
  5. Velocità di caricamento

Il tempo di uptime del router sarà un statistica, non Serie temporali. Per modificare il tipo di visualizzazione, fare clic sul menu a discesa come contrassegnato nello screenshot seguente.

Selezionare statistica dal Visualizzazioni sezione come contrassegnato nello screenshot seguente.

statistica Il tipo di visualizzazione deve essere selezionato.

Cambia il titolo del panel in Uptime del router dal Opzioni del pannello sezione come contrassegnato nello screenshot seguente.

Nel Browser di metriche, Digita la query Prometheus sysuptime istanza = "192.168.0.1 " / 100. Qui, 192.168.0.1 è l'indirizzo IP del mio router di casa. Potrebbe essere diverso per te. Quindi, assicurati di sostituirlo con il tuo da ora in poi.

Il tempo di uptime del sistema deve essere visualizzato nella finestra di anteprima del pannello in secondi, come mostrato nello screenshot seguente.

NOTA: Se stai monitorando più dispositivi di rete con snmp_exporter, Prometeo, E Grafana, Assicurati di includere il esempio Filtra in ciascuna delle query Prometheus per assicurarti di monitorare il dispositivo di rete corretto.

Per esempio,

sysuptime istanza = "192.168.0.1 "
IFoutOCTETS Instance = "192.168.0.1 "
IfInoctets Instance = "192.168.0.1 "

In questo articolo, monitorerò solo il mio router domestico. Quindi, non userò il esempio Filtra su ciascuna delle domande Prometeo.

Imposta l'unità Tempo / secondi (s) dal Opzioni standard > Unità sezione come contrassegnato nello screenshot seguente.

L'uptime dovrebbe essere visualizzato in un formato adatto all'uomo.

Per eliminare le cifre decimali, impostata Decimali A 0 dal Opzioni standard sezione come contrassegnato nello screenshot seguente. L'opportunità dovrebbe sembrare molto meglio ora.

Inoltre non hai bisogno di un valore di soglia per i dati di uptime. Quindi, rimuovere la soglia dal Soglie sezione come contrassegnato nello screenshot seguente.

La soglia dovrebbe essere rimossa.

L'uptime è un contatore e continua ad aumentare. Un grafico dell'uptime sullo sfondo del pannello non ha alcun senso. Quindi, impostare Modalità grafico A Nessuno dal Stili statistici sezione come contrassegnato nello screenshot seguente per rimuovere il grafico dallo sfondo.

Una volta che sei soddisfatto dei risultati, fai clic su Fare domanda a Per aggiungere il pannello alla dashboard.

IL Uptime del router Il pannello deve essere aggiunto alla dashboard, come mostrato nello screenshot seguente.

Il pannello che visualizza i dati totali scaricati sarà un statistica anche e sarà quasi come il Uptime del router pannello. Quindi, invece di creare un nuovo pannello, dupliciamo l'esistenza Uptime del router pannello. Questo ti farà risparmiare molto tempo.

Per duplicare l'esistenza Uptime del router pannello, fare clic su Uptime del router menu a discesa del pannello e fare clic su Di più… > Duplicare come segnato sullo screenshot qui sotto.

IL Uptime del router Il pannello deve essere duplicato, come puoi vedere nello screenshot seguente.

Per modificare il clonato Uptime del router Pannello, fare clic su Uptime del router > Modificare come contrassegnato nello screenshot seguente.

Il clonato Uptime del router Il pannello deve essere aperto con l'editor del pannello Grafana.

Cambia il titolo del panel in Totale scaricato, come contrassegnato nello screenshot seguente.

Un router ha molte interfacce di rete. Dovrai scegliere l'interfaccia di rete corretta da questi per monitorare correttamente le metriche di caricamento e scaricare correttamente.

Per scoprire le interfacce di rete disponibili sul tuo router che stanno generando una sorta di traffico di rete, esegui la query Prometheus iFoutoctets> 0. Le interfacce di rete che stanno generando una sorta di traffico di rete dovrebbero essere elencate, come puoi vedere nello screenshot seguente.

Qui, Eth0, Eth0.1, Eth0.2, e così via può essere utilizzato per monitorare i singoli traffici di port LAN.

IL PPP0, PPP1, e così via può essere utilizzato per monitorare il traffico di rete esterno/Internet.

IL Br0 è un'interfaccia di rete ponte. Può colmare alcune delle interfacce di rete insieme e potresti essere in grado di utilizzarle per monitorare del tutto il traffico di rete delle interfacce di rete a ponte.

IL RA0 L'interfaccia può essere l'interfaccia di rete della radio wireless (Wi-Fi) del router e potresti essere in grado di utilizzarla per monitorare il traffico wireless del tuo router.

In questo articolo, monitorerò il Br0 Interfaccia di rete, ad esempio. Il tuo caso può differire e puoi monitorare un'interfaccia di rete diversa.

L'esatta interfaccia di rete che è necessario monitorare per ottenere le statistiche corrette della rete dipende dal router. Potrebbe essere necessario vedere come questi valori cambiano nel tempo per determinare quale interfaccia di rete è necessario monitorare.

Puoi eseguire la query Prometheus tasso (iFoutoctets [1M] * 8)> 0 Su un pannello Dashboard Grafana vuoto con le seguenti impostazioni e trasmetti in streaming un video di YouTube sul tuo computer per avere un'idea di quale interfaccia di rete monitorano.

Per monitorare il traffico di download totale dell'interfaccia di rete BR0, è possibile utilizzare la seguente query Prometheus.

iFoutoctets ifdescr = "br0" * 8

O,

iFoutoctets ifDescr = "Br0"

NOTA: L'unità predefinita è byte. Se lo moltiplichi per 8, ottieni bit.

Se si desidera visualizzare i dati in Kib (kibibyte), GIB (Gibibyte), TIB (tebibyte), ecc., Unità, usa la prima query Prometheus (moltiplica per 8).

Se si desidera visualizzare i dati in KB (kilobyte), GB (gigabytes), TB (terabytes), ecc., Unità, usa la seconda query Prometheus (non moltiplicata per 8).

Seleziona l'unità Dati / byte (IEC) Se si desidera visualizzare i dati in KIB, GIB, TIB e così via.

Seleziona l'unità Dati / byte (SI) Se si desidera visualizzare i dati in KB, GB, TB e così via.

I dati totali scaricati del Br0 L'interfaccia deve essere visualizzata correttamente, come puoi vedere nello screenshot seguente.

Se si desidera vedere 2 posti decimali, imposta i decimali su 2 nella sezione Opzioni standard, come mostrato di seguito.

Una volta che sei soddisfatto dei risultati, fai clic su Fare domanda a Per aggiungere il pannello alla dashboard.

IL Totale scaricato Il pannello deve essere aggiunto alla dashboard, come mostrato nello screenshot seguente.

IL Totale caricato Il pannello sarà lo stesso del Totale scaricato pannello. L'unica differenza è che calcolerà invece il traffico del caricamento totale. Quindi, per rendere le cose più facili, clona il Totale scaricato pannello e modifica il clonato Totale scaricato pannello.

Cambia la query Prometeo da iFoutoctets A ifinoctets e imposta il titolo del panel su Totale caricato, come contrassegnato nello screenshot seguente.

Il traffico di caricamento totale deve essere visualizzato correttamente.

Una volta che sei soddisfatto dei risultati, fai clic su Fare domanda a.

IL Totale caricato Il pannello deve essere aggiunto al file Pannello di controllo, Come mostrato nello screenshot seguente.

È possibile passare all'angolo in basso a destra di tutti i pannelli, premere e tenere premuto il pulsante LMB (sinistro) e trascinare per ridimensionare i pannelli del cruscotto.

Puoi anche trattenere e trascinare i pannelli con il titolo del loro pannello per allinearli ovunque sulla dashboard.

Ho ridimensionato e allineato i pannelli del cruscotto come segue.

Per monitorare la velocità di download di rete, fare clic sull'icona ADD () per creare un nuovo pannello sulla dashboard.

Clicca su Aggiungi un pannello vuoto.

L'editore del pannello Grafana dovrebbe essere aperto.

Per monitorare la velocità di download dell'interfaccia di rete Br0, Digita la seguente query Prometeo in Browser di metriche sezione.

rate (ifoutoctets ifdescr = "br0" [1m]) * 8

O,

rate (ifoutoctets ifdescr = "br0" [1M])

Imposta la leggenda su Velocità di download.

Imposta il titolo del panel su Velocità di download.

È possibile selezionare un intervallo di tempo per il grafico della velocità di download dal menu a discesa, come mostrato di seguito. Selezionerò il Ultimi 5 minuti in modo che visualizzerà la velocità di download di rete del Br0 interfaccia per gli ultimi 5 minuti.

Come puoi vedere, la velocità di download di rete dell'interfaccia Br0 viene visualizzato per gli ultimi 5 minuti.

Per rendere il grafico un po 'più bello, imposta Interpolazione della linea impostare Larghezza della linea A 2, Riempire l'opacità A 10, E Dimensione del punto A 10 dal Stili grafici sezione come contrassegnato nello screenshot seguente.

Imposta l'unità corretta per il grafico dal Unità sezione come contrassegnato nello screenshot seguente.

L'unità corretta deve essere visualizzata nel grafico.

Impostato Decimali A 2. Questo mostrerà solo 2 posti decimali per l'asse y del grafico della velocità di download.

Rimuovi la soglia perché non ne hai bisogno qui.

Una volta che sei soddisfatto dei risultati, fai clic su Fare domanda a.

Il pannello di velocità di download deve essere aggiunto alla dashboard, come mostrato nello screenshot seguente.

Trascina il Velocità di download pannello sotto tutti gli altri pannelli e ridimensionarlo come si vede opportuno.

IL Velocità di caricamento Il pannello sarà lo stesso del Velocità di download pannello. Quindi, duplicare il Velocità di download pannello e modificalo come prima per risparmiare tempo.

Il duplicato Velocità di download Il pannello deve essere aperto con l'editor del pannello Grafana.

Modifica iFoutoctets A ifinoctets della query Prometeo nel Browser di metriche come contrassegnato nello screenshot seguente.

Cambiare il Leggenda A Velocità di caricamento.

Cambia il titolo del panel in Velocità di caricamento.

Per rendere il grafico un po 'interessante, puoi anche cambiare il colore del grafico.

Per farlo, seleziona Singolo colore dal Combinazione di colori sezione come contrassegnato nello screenshot seguente.

Fai clic sul colore per selezionare un nuovo colore per il grafico.

Seleziona il colore che ti piace dal raccoglitore a colori come contrassegnato nello screenshot qui sotto.

Il grafico della velocità di upload sembra molto meglio.

Una volta che sei soddisfatto dei risultati, fai clic su Fare domanda a.

IL Velocità di caricamento Il pannello deve essere aggiunto alla dashboard, come mostrato nello screenshot seguente.

Ora, fai clic sull'icona di salvataggio come contrassegnato nello screenshot in basso per salvare la dashboard.

Digita un nome significativo per la dashboard e fai clic su Salva.

Lo chiamerò TP Link Archer C5 V4 Stats.

La dashboard dovrebbe essere salvata.

Imposta una dashboard Grafana predefinita

Per impostare la dashboard come dashboard Grafana predefinita, è necessario protagonista prima del cruscotto.

Per protagonista della dashboard, fai clic sull'icona stellare come contrassegnato nello screenshot seguente.

La dashboard dovrebbe essere interpretata.

Ora puoi selezionare la dashboard dal Dashboard di casa Menu a discesa della pagina Impostazioni Grafana, come puoi vedere nello screenshot qui sotto.

Una volta che hai finito, fai clic su Salva affinché le modifiche abbiano effetto.

Se si fa clic sull'icona della dashboard, la dashboard appena creata deve essere visualizzata per impostazione predefinita.

Dove andare dopo?

Tirare i dati da un dispositivo di rete tramite SNMP mette molta sollecitazione sulla CPU del dispositivo di rete. Quindi, non è bene estrarre i dati che non hai bisogno dai dispositivi di rete tramite SNMP. È una buona pratica estrarre solo i dati necessari per il monitoraggio dei dispositivi di rete.

Puoi configurare facilmente snmp_exporter Per estrarre dati specifici dai dispositivi di rete tramite SNMP. Tutto quello che devi fare è usare il Generatore Quello snmp_exporter fornisce per generare un nuovo snmp.YML file di configurazione.

Sfortunatamente, è fuori dall'ambito di questo articolo mostrarti come farlo. Per ulteriori informazioni sulla generazione di un'usanza snmp_exporter File di configurazione, controlla la sezione di configurazione di generazione della pagina GitHub per esportatore SNMP.

Conclusione

In questo articolo, ti ho mostrato come installare snmp_exporter su Ubuntu 20.04 LTS e aggiungilo a Prometheus per il monitoraggio dei dispositivi di rete tramite SNMP. Ti ho anche mostrato come abilitare SNMP sul tuo router Home TP-Link. Ti ho mostrato come utilizzare Grafana per creare una dashboard per il monitoraggio dei dispositivi di rete utilizzando Prometheus e impostare la dashboard come dashboard Grafana predefinita. Questo articolo dovrebbe aiutarti a iniziare con i dispositivi di rete monitor con Grafana e Prometheus.

Riferimenti

[1] GitHub - Prometheus/Snmp_Exporter: esportatore SNMP per Prometheus

[2] Q_A_SUPPORTED_PUBLIC_MIBS_FOR_TP-LINK_SWITCHES

[3] GitHub - Prometheus/Snmp_exporter: SPMP SPIERATER per Prometheus - Generazione della configurazione