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 dicho hace unos días, este año daremos un impulso a la recopilación de métricas, logs y trazas con distintas soluciones, hoy toca algo sencillito (Davvero), no es más que coger las métricas de FortiGate, almacenarlas en Prometheus y verlas en Grafana, per questo, Bisogno la base que vimos anteriormente.

Os dejo unas imágenes de ejemplo del tipo de información que podrás obtener, con métricas a nivel de 1 secondo, 5 Secondi… Al finalizar este post, tendrás esta misma info. Datos de carga, CPU, Memoria, sesiones

Estado y uso de las interfaces de red del firewall en tiempo real,

Uso de las reglas del firewall en tiempo real, y bastantes cosas más

Inizio, en este caso usaremos FortiGate Exporter, un exportador de métricas para Prometheus, en este caso lo desplegaremos de manera rápida bajo un contenedor de 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 Admindesde System > Gli amministratori. En el ‘Administrator profileindicaremos que sea ‘super_admin_readonlyy 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/Queue
      - 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: '3'

services:
  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 crear un dashboard, le diremos que queremos importarlo e indicaremos el ID 14011. Con eso lo tendremos listo!

Come al solito, espero que os pueda resultar útil, y que os vaya bien y que os portéis mejor 🤠, la verdad que hay muchas curiosas que podemos explotar, espero ir sacando tiempo e ir al menos poniendo cosas rápidas y fáciles de implementar. 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!!!