FortiGate-Metriken mit Prometheus und Grafana

Für alle von uns, die ein oder mehrere FortiGates in den Händen halten, wenn wir die Echtzeitmetriken dieser Geräte mit Prometheus sehen möchten, In wenigen Schritten haben wir es voll funktionsfähig. Metriken, die wir in schönen Grafana-Dashboards visualisieren werden!

Was vor ein paar Tagen gesagt wurde, In diesem Jahr werden wir die Sammlung von Metriken ankurbeln, Protokolle und Traces mit unterschiedlichen Lösungen, Heute ist es Zeit für etwas Einfaches (Wirklich), es nimmt nur die Metriken von FortiGate, Speichern Sie sie in Prometheus und sehen Sie sie in Grafana an, hierfür, Benötigen Die Basis die wir vorhin gesehen haben.

Hier sind einige Beispielbilder für die Art von Informationen, die Sie erhalten können, mit Metriken auf der 1 Sekunde, 5 Nachschlag… Am Ende dieses Beitrags, Sie werden die gleichen Informationen haben. Daten laden, CPU, Gedächtnis, Sitzungen…

Status und Nutzung der Firewall-Netzwerkschnittstelle in Echtzeit,

Verwenden von Echtzeit-Firewallregeln, und viele andere Dinge…

Anfangen, In diesem Fall verwenden wir FortiGate Exporteur, ein Metrik-Exporter für Prometheus, In diesem Fall werden wir es schnell unter einem Docker-Container bereitstellen. Zuallererst, Wir müssen in unserem FortiGate einen Benutzer erstellen, der über Systemleseberechtigungen verfügt. Um dies zu tun,, Aus dem FortiGate erstellen wir einen 'REST API Admin'’ aus dem System > Administratoren. Im 'Administrator-Profil'’ Wir werden darauf hinweisen, dass es sich um einen super_admin_readonly’ und ohne PKI Group; Achten Sie darauf, dass wir, wenn Sie auf OK klicken, sein Token erhalten, das wir aufschreiben müssen.

Los geht's, Herunterladen von FortiGate Exporter:

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

Innerhalb des Ordners erstellen wir die Datei 'fortigate-key.yaml’ mit folgendem Inhalt, unter Berücksichtigung der Angabe der IP-Adresse des FortiGate, Der Token, den wir erhalten haben, Und wir werden in der Lage sein, Metriken zu kommentieren, die wir nicht verwenden, so dass es nicht versucht, sie zu erhalten:

"https://DIRECCION_IP_FORTIGATE":
  Zeichen: TOKEN_DEL_ADMIN_READ_ONLY Sonden:
    ausschließen:
      - WLAN
      - System/SDNConnector
      #- Protokoll/Fortianalyzer/Status
      #- Protokoll/Fortianalyzer/Warteschlange
      - Protokoll/Fortianalyzer
      - Virtuelles WAN
      - Schalter
      #- Switch/ManagedSwitch
      - System-/SensorInfo

Zum Schluss erstellen wir die Definitionsdatei des Containers, den wir bereitstellen werden, Wir haben 'docker-compose.yml’

Version: '3'

services:
  prometheus_fortigate_exporter:
    bauen: ./
    Häfen:
      - 9710:9710
    Inhalte:
      - ./fortigate-schlüssel.yaml:/config/fortigate-key.yaml-Befehl: ["-auth-Datei", "/config/fortigate-key.yaml", "-Unsicher"]
    Neustarten: Es sei denn, Netzwerke werden gestoppt:
      fortigate_exporter_default:

Netzwerke:
  fortigate_exporter_default:
    Fahrer: Brücke

Und damit haben wir es fertig, Jetzt müssen wir nur noch den Container bereitstellen, indem wir:

sudo docker compose up -d

Sobald der Container bereitgestellt ist, Es verbindet sich mit dem FortiGate und stellt seine Metriken auf Port 9710tcp zur Verfügung, Wir können dies bestätigen, wenn wir einen Browser gegen die Docker-IP öffnen, so etwas wie: HTTP (Englisch)://DIRECCION_IP_DOCKER:9710/Metriken Die Frage wird sein:, was wir nun unserem Prometheus mitteilen müssen, , der eine Verbindung zu diesem Exporter herstellt und seine Metriken speichert.

Um dies zu tun,, während wir die Konfigurationsdatei unseres Prometheus bearbeiten (nano~/prometheus/prometheus/prometheus.yml) und wir werden den Job im Abschnitt scrape_configs hinzufügen:

global:
  scrape_interval: 5scrape_timeout: 5evaluation_interval: 5scrape_configs:
  - job_name: 'fortigate_exporter'
    metrics_path: /Ich habe static_configs:
      - Ziele:
        - https://DIRECCION_IP_FORTIGATE
        #- https://mein-anderes-fortigate:8443
    relabel_configs:
      - source_labels: [__Adresse__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: Beispiel
        # Lassen Sie das https:// und Port (Falls angegeben) for the 'instance=' label
        regex: '(?:.+)(?::\/\/)([^:]*).*'
      - target_label: __address__ Ersatz: 'DIRECCION_IP_DOCKER_FORTIGATE_EXPORTER:9710'

Und für Prometheus, um die Daten neu zu laden, Vergessen Sie nicht, Prometheus neu zu starten:

sudo Docker Prometheus neu starten

Damit haben wir bereits die FortiGate-Metriken auf unserem Prometheus-Server gespeichert, Was wir übrig gelassen hätten, Das ist der schöne Teil. Visualisieren Sie in diesem Fall diese Metriken aus Grafana. Um dies zu tun,, Es reicht aus, ein Dashboard zu importieren, das bereits von der Community entwickelt wurde (Vielen Dank) die wir im Handumdrehen verwenden können. Von Grafana, indem Sie auf Dashboard erstellen klicken, Wir werden Ihnen mitteilen, dass wir es importieren möchten, und die ID angeben 14011. Damit haben wir es fertig!

Wie gewöhnlich, Ich hoffe, Sie finden es nützlich, und möge es gut gehen und sich besser 🤠 benehmen, Die Wahrheit ist, dass es viele merkwürdige Dinge gibt, die wir ausnutzen können, Ich hoffe, dass ich mir Zeit nehme und zumindest Dinge einsetze, die schnell und einfach umzusetzen sind. Eine Umarmung!

Empfohlene Beiträge

Verfasser

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Zögern Sie nicht, mich zu kontaktieren, Ich werde versuchen, dir zu helfen, wann immer ich kann, Teilen ist Leben ;) . Genießen Sie Dokumente!!!