Mètriques de FortiGate amb Prometheus i Grafana

Per a tots aquells que tinguem un o diversos FortiGate entre les nostres mans, si volem veure les mètriques en temps real d'aquests dispositius amb Prometheus, en uns pocs passos el tindrem totalment funcional. Mètriques que visualitzarem en uns dashboards preciosos de Grafana!

El que s'ha dit fa uns dies, enguany donarem un impuls al recull de mètriques, logs i traces amb diferents solucions, avui toca alguna cosa senzillesa (de veritat), no és més que agafar les mètriques de FortiGate, emmagatzemar-les a Prometheus i veure-les a Grafana, per a això, necessitarem la base que vam veure anteriorment.

Us deixo unes imatges d'exemple del tipus d'informació que podràs obtenir, amb mètriques a nivell de 1 segon, 5 segons… En finalitzar aquest post, tindràs aquesta mateixa info. Dades de càrrega, CPU, Memòria, sessions…

Estat i ús de les interfícies de xarxa del firewall en temps real,

Ús de les regles del firewall en temps real, i força coses més…

Comencem, en aquest cas farem servir FortiGate Exporter, un exportador de mètriques per a Prometheus, en aquest cas el desplegarem de manera ràpida sota un contenidor de Docker. Abans de res, necessitarem crear un usuari al nostre FortiGate que tingui permisos de lectura del sistema. Per a això, des del FortiGate crearem un 'REST API Admin’ des de System > Administrators. A l'Administrator profile’ indicarem que sigui 'super_admin_readonly’ i sense PKI Group; ojito que en donar-li a l'OK ens donarà el seu Token que haurem d'anotar.

Comencem doncs, descarregant FortiGate Exporter:

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

Dins la carpeta creem l'arxiu 'fortigate-key.yaml’ amb el contingut següent, tenint en compte d' indicar l' adreça IP del FortiGate, el token que hem aconseguit, i podrem comentar mètriques que no fem servir perquè no les intenti obtenir:

"https://DIRECCION_IP_FORTIGATE":
  token: TOKEN_DEL_ADMIN_READ_ONLY probes:
    excloent:
      - Wifi
      - System/SDNConnector
      #- Log/Fortianalyzer/Status
      #- Log/Fortianalyzer/Queue
      - Log/Fortianalyzer
      - VirtualWAN
      - Switch
      #- Switch/ManagedSwitch
      - System/SensorInfo

I finalitzem creant el fitxer de definició del contenidor que vam desplegar, creem 'docker-compose.yml’

version: '3'

services:
  prometheus_fortigate_exporter:
    build: ./
    ports:
      - 9710:9710
    volums:
      - ./fortigate-key.yaml:/config/fortigate-key.yaml command: ["-auth-file", "/config/fortigate-key.yaml", "-insecure"]
    restart: unless-stopped networks:
      fortigate_exporter_default:

networks:
  fortigate_exporter_default:
    driver: bridge

I amb això ho tenim llest, ja només ens queda desplegar el contenidor executant:

sudo docker compose up -d

Un cop desplegat el contenidor, aquest es connectarà al FortiGate i ens exposarà les seves mètriques al port 9710, podrem confirmar-ho si obrim un navegador contra la IP del Docker, alguna cosa com: http://DIRECCION_IP_DOCKER:9710/la qüestió serà, que ara hem d'indicar-li al nostre Prometheus, que es connecti aquest exporter i emmagatzemoni les seves mètriques.

Per a això, doncs editem el fitxer de configuració del nostre Prometheus (nano ~/prometheus/prometheus/prometheus.yml) i afegirem el job a la secció de scrape_configs:

global:
  scrape_interval: 5s scrape_timeout: 5s evaluation_interval: 5s scrape_configs:
  - job_name: 'fortigate_exporter'
    metrics_path: /probe static_configs:
      - targets:
        - 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'

I perquè Prometheus recargui les dades, que no se us oblidi reiniciar Prometheus:

sudo docker restart prometheus

Amb això ja tenim les mètriques de FortiGate emmagatzemades en el nostre servidor de Prometheus, el que ens quedaria, és la part bonica. En aquest cas visualitzar aquestes mètriques des de Grafana. Per a això, n'hi haurà prou amb importar un dashboard ja desenvolupat per la comunitat (gràcies) que podrem fer servir en un periquet. Des de Grafana, amb donar-li a crear un dashboard, li direm que volem importar-lo i indicarem l'ID 14011. Amb això ho tindrem llest!

Com sempre, espero que us pugui resultar útil, i que us vagi bé i que us porteu millor 🤠, la veritat que hi ha moltes curioses que podem explotar, espero anar traient temps i anar almenys posant coses ràpides i fàcils d'implementar. Una abraçada!

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!