FortiGate-eko metrikak Prometheus eta Grafana-rekin

Gure eskuetan FortiGate bat edo gehiago dituen guztientzat, Gailu hauen metrikak denbora errealeko Prometheus bidez ikusi nahi baditugu, Pausu gutxi batzuetan guztiz funtzional izango dugu. Metrikak Grafana-ren dashboards ederretan ikusiko ditugu!

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 (de verdad), no es más que coger las métricas de FortiGate, almacenarlas en Prometheus y verlas en Grafana, horretarako, necesitaremos 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 segundo, 5 segundo bakoitzean… 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…

Hasi gaitezen, 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. Antes de nada, necesitaremos crear un usuario en nuestro FortiGate que tenga permisos de lectura del sistema. Para ello, desde el FortiGate crearemos un 'REST API Admin’ desde System > Administrators. 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 el siguiente contenido, 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:
    exclude:
      - Wifi
      - System/SDNConnector
      #- Log/Fortianalyzer/Status
      #- Log/Fortianalyzer/Queue
      - Log/Fortianalyzer
      - VirtualWAN
      - Switch
      #- Switch/ManagedSwitch
      - System/SensorInfo

Eta amaitzen dugu kontainer definizio-fitxategia sortzen, deploy egingo duguna, sortzen dugu ‘docker-compose.yml’

version: '3'

zerbitzuak:
  prometheus_fortigate_exporter:
    eraikuntza: ./
    ports:
      - 9710:9710
    volumes:
      - ./fortigate-key.yaml:/config/fortigate-key.yaml
    command: ["-auth-file", "/config/fortigate-key.yaml", "-insecure"]
    berrabiarazi: un-stopped
 networks:
      fortigate_exporter_default:

networks:
  fortigate_exporter_default:
    driver: bridge

Eta honekin prest dugu, orain bakarrik geratzen zaigu kontainera deployatzea exekutatuz:

sudo docker compose up -d

Una vez desplegado el contenedor, honek FortiGate-rekin konektatuko da eta bere metrikak 9710tcp portuan bistaratuko dizkigu, horrela egiaztatu ahal izango dugu Docker-en IP batetik nabigatzaile bat irekiz, zerbait halako modukoa: http://DIRECCION_IP_DOCKER:9710/metrics Galdera da, orain gure Prometheusi adierazi behar diogu, exporter honetara konektatu eta bere metrikak gorde ditzala.

Para ello, orduaz gure Prometheus konfigurazio-fitxategia editatzen dugu (nano ~/prometheus/prometheus/prometheus.yml) y añadiremos el job en la sección 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
        # Jaregin https:// eta ataka (zehaztu bada) 'instance=' etiketa
 regex: '(?:.+)(?::\/\/)([^:]*).*'
      - target_label: __address__
 ordezkapena: '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. Para ello, bastará con importar un dashboard ya desarrollado por la comunidad (gracias) que podremos usar en un periquete. Desde Grafana, dashboard bat sortzeko sakatuz, inportatu nahi dugula izango dugu eta IDa adieraziko dugu 14011. horrekin prest egongo da!

Betiko moduan, uste dut erabilgarria izan daiteke, eta ondo pasa eta hobeto porta zaitezte 🤠, egia da esploratu ditzakegun gauza asko daudela, denbora ateratzea espero dut eta gutxienez azkar eta erraz aplikatzeko gauzak jartzea. Muxu bat!

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!