
Métriques FortiGate avec Prometheus et Grafana
Pour tous ceux d’entre nous qui ont un ou plusieurs FortiGates entre les mains, si nous voulons voir les métriques en temps réel de ces appareils avec Prometheus, En quelques étapes, nous l’aurons entièrement fonctionnel. Métriques que nous allons visualiser dans de magnifiques tableaux de bord Grafana!
Ce qui s’est dit il y a quelques jours, Cette année, nous donnerons un coup de pouce à la collecte de métriques, Logs et traces avec différentes solutions, Aujourd’hui, il est temps de passer à quelque chose de simple (Vraiment), il s’agit simplement de prendre les mesures de FortiGate, stockez-les dans Prometheus et visualisez-les dans Grafana, pour cela, Besoin La base que nous avons vu plus tôt.
Voici quelques exemples d’images du type d’informations que vous pouvez obtenir, avec des métriques au niveau 1 deuxième, 5 Secondes… À la fin de cet article, Vous aurez ces mêmes informations. Charger les données, CPU, Mémoire, Sessions…
État et utilisation de l’interface réseau du pare-feu en temps réel,
Utilisation des règles de pare-feu en temps réel, et bien d’autres choses encore…
Commencer, Dans ce cas, nous utiliserons Exportateur FortiGate, un exportateur de métriques pour Prometheus, dans ce cas nous allons rapidement le déployer sous un conteneur Docker. Tout d’abord, nous devrons créer un utilisateur dans notre FortiGate qui dispose des autorisations de lecture du système. Pour ce faire,, à partir du FortiGate, nous allons créer un 'REST API Admin’ à partir du système > Administrateurs. Dans le 'Profil administrateur'’ Nous indiquerons qu’il s’agit de 'super_admin_readonly’ et sans PKI Group; attention que lorsque vous cliquez sur OK, il nous donnera son jeton que nous devons noter.
Commençons,, Téléchargement de FortiGate Exporter:
cd git clone https://github.com/bluecmd/fortigate_exporter.git CD fortigate_exporter
À l’intérieur du dossier, nous créons le fichier 'fortigate-key.yaml’ avec le contenu suivant, en prenant en compte l’indication de l’adresse IP du FortiGate, Le jeton que nous avons obtenu, et nous pourrons commenter des métriques que nous n’utilisons pas afin qu’il ne cherche pas à les obtenir:
"https://DIRECCION_IP_FORTIGATE": Jeton: Sondes TOKEN_DEL_ADMIN_READ_ONLY: exclure: - Le wifi - Système/SDNConnector #- Journal/Fortianalyzer/Statut #- Journal/Fortianalyzer/File d’attente - Log/Fortianalyzer - VirtualWAN - Interrupteur #- Commutateur/ManagedSwitch - System/SensorInfo
Et on termine en créant le fichier de définition du conteneur que l’on va déployer, Nous avons créé 'docker-compose.yml’
Version: '3'
services:
prometheus_fortigate_exporter:
construire: ./
Ports:
- 9710:9710
Volumes:
- ./fortigate-key.yaml:/config/fortigate-key.yaml, commande: ["-fichier-auth", "/config/fortigate-key.yaml", "-Insécurité"]
Redémarrer: réseaux à moins qu’ils ne soient arrêtés:
fortigate_exporter_default:
Réseau:
fortigate_exporter_default:
chauffeur: Pont
Et avec cela, nous l’avons prêt, Il ne nous reste plus qu’à déployer le conteneur en exécutant:
sudo docker compose up -d
Une fois le conteneur déployé, il se connectera au FortiGate et exposera ses métriques sur le port 9710tcp, nous pouvons le confirmer si nous ouvrons un navigateur contre l’IP Docker, quelque chose comme: HTTP://DIRECCION_IP_DOCKER:9710/métriques La question sera, ce qu’il nous faut maintenant indiquer à notre Prométhée, qui se connecte à cet exportateur et stocke ses métriques.
Pour ce faire,, comme nous éditons le fichier de configuration de notre Prometheus (nano~/prométhée/prométhée/prometheus.yml) et nous ajouterons le travail dans la section scrape_configs:
global: scrape_interval: 5scrape_timeout: 5evaluation_interval: 5scrape_configs: - job_name: 'fortigate_exporter' metrics_path: /J’ai essayé static_configs: - Cibles: - https://DIRECCION_IP_FORTIGATE #- https://mon-autre-fortigate:8443 relabel_configs: - source_labels: [__adresse__] target_label: __param_target - source_labels: [__param_target] target_label: instance # Abandonnez le https:// et port (si spécifié) for the 'instance=' label regex: '(?:.+)(?::\/\/)([^:]*).*' - target_label: __address__ remplacement: 'DIRECCION_IP_DOCKER_FORTIGATE_EXPORTER:9710'
Et pour Prometheus de recharger les données, N’oubliez pas de redémarrer Prometheus:
sudo Docker Redémarrer Prometheus
Avec cela, nous avons déjà les métriques FortiGate stockées sur notre serveur Prometheus, Ce qu’il nous serait resté, C’est la belle partie. Dans ce cas, visualisez ces métriques à partir de Grafana. Pour ce faire,, Il suffira d’importer un tableau de bord déjà développé par la communauté (Merci) que l’on peut utiliser en un tour de main. De Grafana, en cliquant sur Créer un tableau de bord, nous vous dirons que nous voulons l’importer et indiquerons l’ID 14011. Avec cela, nous l’aurons prêt!
Comme d'habitude, J’espère que vous le trouverez utile, et puisse-t-il bien se passer et se comporter mieux 🤠, La vérité est qu’il y a beaucoup de choses curieuses que nous pouvons exploiter, J’espère prendre le temps et au moins mettre des choses qui sont rapides et faciles à mettre en œuvre. Un câlin!