Metriche FortiGate con Prometheus e Grafana

Per tutti noi che abbiamo tra le mani uno o più FortiGate, se vogliamo vedere le metriche in tempo reale di questi dispositivi con Prometheus, In pochi passaggi lo avremo perfettamente funzionante. Metriche che visualizzeremo in bellissime dashboard di Grafana!

Lo detto qualche giorno fa, quest'anno daremo un impulso alla raccolta delle metriche, log e tracce con diverse soluzioni, oggi facciamo qualcosa di semplice (Davvero), non è altro che prendere le metriche di FortiGate, immagazzinarle in Prometheus e visualizzarle in Grafana, per questo, Bisogno la base che abbiamo visto in precedenza.

Vi lascio alcune immagini di esempio del tipo di informazioni che potrete ottenere, con metriche a livello di 1 secondo, 5 Secondi… Al termine di questo post, avrete queste stesse info. Dati di carico, CPU, Memoria, sessioni…

Stato e utilizzo delle interfacce di rete del firewall in tempo reale,

Utilizzo delle regole del firewall in tempo reale, e tante altre cose…

Inizio, in questo caso useremo FortiGate Exporter, un esportatore di metriche per Prometheus, in questo caso lo distribuiremo in modo rapido sotto un contenitore Docker. Innanzitutto, necesitaremos crear un usuario en nuestro FortiGate que tenga permisos de lectura del sistema. Per fare ciò,, desde el FortiGate crearemos un 'REST API Admin’ desde System > Gli amministratori. En el 'Administrator profile’ indicaremos que sea 'super_admin_readonly’ y sin PKI Group; ojito que al darle al OK nos dará su Token que deberemos anotar.

Comenzamos pues, descargando FortiGate Exporter:

cd
git clone https://github.com/bluecmd/fortigate_exporter.git
cd fortigate_exporter

Dentro de la carpeta creamos el archivo 'fortigate-key.yaml’ con il seguente contenuto, teniendo en cuenta de indicar la dirección IP del FortiGate, el token que hemos conseguido, y podremos comentar métricas que no usamos para que no las intente obtener:

"https://DIRECCION_IP_FORTIGATE":
  token: TOKEN_DEL_ADMIN_READ_ONLY
 probes:
    escludere:
      - Connessione Wi-Fi
      - System/SDNConnector
      #- Log/Fortianalyzer/Status
      #- Log/Fortianalyzer/Coda
      - Log/Fortianalyzer
      - VirtualWAN
      - Interruttore
      #- Switch/ManagedSwitch
      - System/SensorInfo

Y finalizamos creando el fichero de definición del contenedor que vamos a desplegar, creamos 'docker-compose.yml’

Versione: Servizi '3':
  prometheus_fortigate_exporter:
    costruire: ./
    Porte:
      - 9710:9710
    Volumi:
      - ./fortigate-key.yaml:/config/fortigate-key.yaml
 command: ["-auth-file", "/config/fortigate-key.yaml", "-insecure"]
    Riavviare: reti a meno che non siano state arrestate:
      fortigate_exporter_default:

Reti:
  fortigate_exporter_default:
    autista: Ponte

Y con esto lo tenemos listo, ya sólo nos queda desplegar el contenedor ejecutando:

sudo docker compose up -d

Una volta distribuito il container, éste se conectará al FortiGate y nos expondrá sus métricas en el puerto 9710tcp, podremos confirmarlo si abrimos un navegador contra la IP del Docker, qualcosa come: Protocollo HTTP://DIRECCION_IP_DOCKER:9710/metrics La cuestión será, que ahora debemos indicarle a nuestro Prometheus, que se conecte a este exporter y almacene sus métricas.

Per fare ciò,, pues editamos el fichero de configuración de nuestro Prometheus (nano ~/prometheus/prometheus/prometheus.yml) y añadiremos el job en la sección de scrape_configs:

globale:
  scrape_interval: 5s
  scrape_timeout: 5s
  evaluation_interval: 5s
scrape_configs:
  - job_name: 'fortigate_exporter'
    metrics_path: /probe
    static_configs:
      - Obiettivi:
        - https://DIRECCION_IP_FORTIGATE
        #- https://my-other-fortigate:8443
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
        # Drop the https:// and port (if specified) for the 'instance=' label
        regex: '(?:.+)(?::\/\/)([^:]*).*'
      - target_label: __address__
        replacement: 'DIRECCION_IP_DOCKER_FORTIGATE_EXPORTER:9710'

Y para que Prometheus recargue los datos, que no se os olvide reiniciar Prometheus:

sudo Docker Restart Prometheus

Con esto ya tenemos las métricas de FortiGate almacenadas en nuestro servidor de Prometheus, lo que nos quedaría, es la parte bonita. En este caso visualizar estas métricas desde Grafana. Per fare ciò,, bastará con importar un dashboard ya desarrollado por la comunidad (Grazie) que podremos usar en un periquete. Da Grafana, con darle a creare un dashboard, le diremo che vogliamo importarlo e indicheremo l'ID 14011. Con questo lo avremo pronto!

Come al solito, spero che possa risultarvi utile, e che vi vada bene e che vi comportiate meglio 🤠, la verità è che ci sono molte curiosità che possiamo sfruttare, spero di riuscire a ritagliarmi del tempo e di iniziare almeno a mettere cose rapide e facili da implementare. Un abbraccio!

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!