
Prometheus 和 Grafana 的 FortiGate 指标
对于我们所有拥有一个或多个 FortiGate 的人, 如果我们想通过 Prometheus 查看这些设备的实时指标, 只需几个步骤,我们就能让它完全发挥作用. 我们将在漂亮的 Grafana 仪表板中可视化的指标!
几天前说了什么, 今年,我们将加强指标的收集, 具有不同解决方案的日志和跟踪, 今天,是时候做一些简单的事情了 (真), 它只是采用 FortiGate 的指标, 将它们存储在 Prometheus 中,并在 Grafana 中查看它们, 为此, 需要 基地 我们之前看到的.
以下是您可以获得的信息类型的一些示例图像, 其中,指标位于 1 第二, 5 秒… 在这篇文章的结尾, 您将拥有相同的信息. 加载数据, 中央处理器, 记忆, 会话…
实时防火墙网络接口状态和使用情况,
使用实时防火墙规则, 以及许多其他事物…
开始, 在这种情况下,我们将使用 FortiGate 导出器, Prometheus 的指标导出器, 在这种情况下,我们将快速将其部署在 Docker 容器下. 首先, 我们需要在 FortiGate 中创建一个具有系统读取权限的用户. 为此,, 从 FortiGate 中,我们将创建一个“REST API 管理员”’ 从系统 > 管理员. 在 'Administrator profile' 中’ 我们将指示它是 'super_admin_readonly’ 且没有 PKI Group; 请注意,当您单击“确定”时,它会给我们它的 令牌 我们必须写下来.
让我们开始吧, 下载 FortiGate 导出器:
cd git clone https://github.com/bluecmd/fortigate_exporter.git CD fortigate_exporter
在文件夹内,我们创建文件 'fortigate-key.yaml’ Con el siguiente contenido, 考虑到指示 FortiGate 的 IP 地址, 我们获得的代币, 我们将能够对我们不使用的指标进行评论,这样它就不会试图获取它们:
"https://DIRECCION_IP_FORTIGATE": 令 牌: TOKEN_DEL_ADMIN_READ_ONLY 探针: 排除: - 无线上网 - System/SDNConnector #- 日志/Fortianalyzer/状态 #- 日志/Fortianalyzer/队列 - Log/Fortianalyzer - 虚拟 WAN - 开关 #- 交换机/ManagedSwitch - 系统/传感器信息
最后,我们创建要部署的容器的定义文件, 我们创造了“docker-compose.yml’
版本: '3'
services:
prometheus_fortigate_exporter:
建: ./
港口:
- 9710:9710
卷:
- ./fortigate-key.yaml 文件:/config/fortigate-key.yaml 命令: ["-身份验证文件", "/config/fortigate-key.yaml", "-不安全的"]
重新启动: Unless-Stopped 网络:
fortigate_exporter_default:
网络:
fortigate_exporter_default:
司机: 桥
有了这个,我们已经准备好了, 现在我们只需要通过运行:
sudo docker compose up -d
部署容器后, 它将连接到 FortiGate 并在端口 9710tcp 上公开其指标, 如果我们针对 Docker IP 打开浏览器,我们可以确认这一点, 类似: HTTP 协议://DIRECCION_IP_DOCKER:9710/metrics 问题将是, 我们现在必须向我们的普罗米修斯表明这一点, 连接到此导出器并存储其指标.
为此,, 当我们编辑 Prometheus 的配置文件时 (纳米~/普罗米修斯/普罗米修斯/prometheus.yml) ,我们将在 scrape_configs 部分添加作业:
全球: scrape_interval: 5scrape_timeout: 5evaluation_interval: 5scrape_configs: - job_name: 'fortigate_exporter' metrics_path: /我试过static_configs: - 目标: - https://DIRECCION_IP_FORTIGATE #- https://我的其他 FortiGate:8443 relabel_configs: - source_labels: [__地址__] target_label: __param_target - source_labels: [__param_target] target_label: 实例 # 删除 https:// 和端口 (如果指定) for the 'instance=' label regex: '(?:.+)(?::\/\/)([^:]*).*' - target_label: __address__更换: 'DIRECCION_IP_DOCKER_FORTIGATE_EXPORTER:9710'
并让 Prometheus 重新加载数据, 不要忘记重新启动 Prometheus:
sudo Docker 重启 Prometheus
这样,我们已经将 FortiGate 指标存储在我们的 Prometheus 服务器上, 我们本来会留下什么, 这是美丽的部分. 在这种情况下,可视化来自 Grafana 的这些指标. 为此,, 导入社区已经开发的仪表板就足够了 (谢谢) 我们可以立即使用. 从 Grafana 出发, 单击 Create a dashboard, 我们会告诉你我们要导入它并指明 ID 14011. 这样我们就可以准备好了!
照常, 我希望你觉得它有用, 愿它进展顺利,表现得更好 🤠, 事实是,我们可以利用许多奇怪的东西, 我希望花时间,至少把一些快速和容易实现的东西放在一起. 拥抱!