Esportatore Prometheus di Telegraf
Telegraf raccoglie le metriche di sistema e dei servizi del firewall e le scrive nell'istanza locale di VictoriaMetrics. A partire da NethSecurity 8.8, Telegraf può esporre le stesse metriche anche in formato Prometheus, così un server Prometheus esterno, Grafana Agent o qualsiasi altro collettore compatibile può leggerle direttamente dal firewall.
L'esportatore è disabilitato per impostazione predefinita.
Abilitare l'esportatore
Scegliere sempre una porta di ascolto diversa da quella predefinita 9273:
quella porta è riservata al controller, che legge le metriche dell'unità
attraverso il tunnel VPN. La porta 9274 è una scelta sicura.
- Aprire un terminale sul firewall.
- Abilitare l'output Prometheus sulla porta
9274e applicare la modifica:
uci set telegraf.output_prometheus.enabled='1'
uci set telegraf.output_prometheus.listen_addr=':9274'
uci commit telegraf
reload_config
- Verificare che le metriche vengano servite:
curl -s http://127.0.0.1:9274/metrics | head
L'esportatore ora ascolta sulla porta 9274 e pubblica le metriche sul percorso
/metrics. Proseguire con Accedere all'esportatore da
remoto per raggiungerlo dal collettore.
L'esportatore si lega a tutti gli indirizzi del firewall, quindi la porta è
raggiungibile da ogni zona la cui politica di ingresso è ACCEPT. Con la
configurazione predefinita questo significa tutta la LAN; se la politica di
ingresso di una zona WAN o guest è stata modificata in ACCEPT, le metriche
sono esposte anche lì. Non lasciare mai la porta aperta in questo modo:
limitarla come descritto in Limitare l'accesso alle
metriche.
Se l'esportatore viene lasciato sulla porta predefinita 9273 mentre il
firewall è collegato a un controller, due output Prometheus entrano in
competizione sulla stessa porta e uno dei due non riesce ad aprirla. Vedere
Unità collegate a un controller.
Accedere all'esportatore da remoto
Sono disponibili due opzioni. Entrambe limitano chi può leggere le metriche, quindi scegliere quella più adatta al collettore.
Percorso su reverse proxy
Consigliata: le metriche transitano su HTTPS sulla porta 443 e non viene aperta nessuna porta aggiuntiva sul firewall. Accedere alla pagina Certificati e reverse proxy, fare clic su Aggiungi reverse proxy e compilare:
Type: Path, per esempio/telegraf-metricsDestination URL:http://127.0.0.1:9274/metricsAllowed networks: l'indirizzo del collettore in formato CIDR, per esempio203.0.113.5/32
Le metriche sono poi disponibili all'indirizzo
https://<firewall-ip>/telegraf-metrics.
Regola di firewall in ingresso
Usare questa opzione quando il collettore deve raggiungere direttamente la porta
9274. Accedere alla pagina Regole, scheda
Regole di ingresso, e aggiungere una regola con:
Indirizzo sorgente: l'indirizzo del collettoreZona sorgente: la zona a cui appartiene il collettoreServizio di destinazione: Personalizzato, protocolloTCP, porta9274Azione: Accetta
Le metriche sono poi disponibili all'indirizzo
http://<firewall-ip>:9274/metrics. Questa regola da sola non chiude la porta
alle altre zone: completare la configurazione come descritto in Limitare
l'accesso alle metriche. L'esportatore è
esposto in chiaro, quindi proteggerlo anche con una password.
Limitare l'accesso alle metriche
Scegliere uno dei due approcci seguenti, in base a come il collettore raggiunge l'esportatore.
Con il percorso su reverse proxy, legare l'esportatore solo all'indirizzo di
loopback: nulla viene pubblicato sulle interfacce di rete e il reverse proxy
resta l'unico punto di accesso, filtrato dal suo campo Allowed networks.
uci set telegraf.output_prometheus.listen_addr='127.0.0.1:9274'
uci commit telegraf
reload_config
Con una regola di firewall in ingresso, chiudere la porta a tutti gli altri.
Nella pagina Regole, scheda Regole di ingresso, aggiungere una seconda regola sotto quella che accetta il
collettore:
Indirizzo sorgente: qualsiasi indirizzo sorgenteZona sorgente: QualsiasiServizio di destinazione: Personalizzato, protocolloTCP, porta9274Azione: Scarta
Vince la prima regola che corrisponde, quindi il collettore viene accettato e ogni altro host viene scartato, qualunque sia la politica di ingresso della sua zona.
Proteggere l'esportatore con una password
L'esportatore può richiedere l'autenticazione HTTP basic. Devono essere impostati sia il nome utente sia la password, altrimenti l'autenticazione non viene configurata:
uci set telegraf.output_prometheus.basic_auth_username='prometheus'
uci set telegraf.output_prometheus.basic_auth_password='<password>'
uci commit telegraf
reload_config
Verificare le credenziali con:
curl -s -u prometheus:'<password>' http://127.0.0.1:9274/metrics | head
L'esportatore serve HTTP in chiaro e non richiede alcuna autenticazione fino a quando le due opzioni sopra non vengono impostate. Non esporlo al di fuori di una rete fidata senza una password.
Modificare l'indirizzo di ascolto
L'opzione listen_addr accetta la sintassi indirizzo:porta; se l'indirizzo
viene omesso, Telegraf si lega a tutti gli indirizzi IPv4 e IPv6 disponibili.
Per limitare l'esportatore a un solo indirizzo:
# raggiungibile solo dal firewall stesso, sufficiente per il reverse proxy
uci set telegraf.output_prometheus.listen_addr='127.0.0.1:9274'
# raggiungibile solo su un indirizzo LAN specifico
uci set telegraf.output_prometheus.listen_addr='192.168.1.1:9274'
uci commit telegraf
reload_config
Unità collegate a un controller
Quando il firewall è collegato a un controller, il controller legge già le
metriche di Telegraf attraverso il tunnel VPN: a ogni connessione l'unità apre
la porta 9273 sul proprio indirizzo VPN.
Quell'endpoint è gestito dal sistema e non va modificato. Mantenendo il
listen_addr dell'esportatore su una porta differente, come descritto in
Abilitare l'esportatore, i due endpoint convivono
senza interferire tra loro.
Disabilitare l'esportatore
uci set telegraf.output_prometheus.enabled='0'
uci commit telegraf
reload_config
Il monitoraggio locale e le metriche salvate in VictoriaMetrics non vengono influenzati: l'esportatore è un output aggiuntivo e disabilitarlo interrompe solo l'endpoint Prometheus.