跳转到主要内容

OPNSense Prometheus导出器

项目描述

pipeline status coverage report Version status PyPi Package

OPNSense Prometheus导出器

我已经配置了使用2台服务器的OPNSense,以高可用性设置。

因此,我有2台服务器: MAINBACKUP,在正常情况下,MAIN 服务器应该处于 active 状态,而 BACKUP 服务器处于 hot_standby 状态。

最初的目的是确保BACKUP服务器随时可以准备好(热备用),以便在需要时将主服务器角色转换为active状态。

不幸的是,我没有找到在备份服务器上使用blackbox配置调用OPNSense HTTP API的适当配置。这就是为什么我开始开发这个导出器,并将其安装在局域网上的服务器上,以便能够请求两个OPNSense服务器。

度量标准

此导出器提供了以下度量标准,所有度量标准都按照以下标签接收

  • instance:默认情况下,此设置为运行此导出器服务的计算机的主机名
  • host:OPNSense的主机
  • rolemainbackup 以确定OPNSense服务器的角色。

枚举

  • opnsense_main_ha_state:(已弃用) 主服务器的OPNSense HA状态
  • opnsense_backup_ha_state:(已弃用) 备份服务器的OPNSense HA状态
  • opnsense_server_ha_state:OPNSense HA状态,以下值之一
    • active:该OPNSense服务器正在接收流量
    • hot_standby:OPNSense服务器已准备好提升为活动服务器
    • maintenancemode:OPNSense服务器被切换到维护模式
    • unavailable:OPNSense服务器不可用或返回意外的值

拨号计费

  • opnsense_active_server_traffic_rate:活动OPNSense服务器接口的流量率(以每秒比特数表示),添加以下标签
    • interface:要导出的接口(使用--opnsense-interfaces提供的值)
    • metric:度量名称(今天有rate_bits_inrate_bits_out

用法

注意:大多数最新文档来自命令行!

opnsense-exporter --help
usage: opnsense-exporter [-h] [--check-frequency-seconds FREQUENCY]
                         [--main-host MAIN] [--backup-host BACKUP]
                         [--opnsense-user USER]
                         [--opnsense-interfaces INTERFACES]
                         [--opnsense-password PASSWORD]
                         [--prometheus-instance PROM_INSTANCE]

OPNSense prometheus exporter

optional arguments:
  -h, --help            show this help message and exit
  --check-frequency-seconds FREQUENCY, -c FREQUENCY
                        How often (in seconds) this server requests
                        OPNSense servers (default: 2)
  --main-host MAIN, -m MAIN
                        MAIN OPNsense server that should be in `active`
                        state in normal configuration.
  --backup-host BACKUP, -b BACKUP
                        BACKUP OPNsense server that should be `hot_standby`
                        state in normal configuration.
  --opnsense-user USER, -u USER
                        OPNsense user. Expect to be the same on MAIN and
                        BACKUP servers
  --opnsense-interfaces INTERFACES, -i INTERFACES
                        OPNsense interfaces (coma separated) list to
                        export trafic rates (bytes/s). An empty string ''
                        means not calling the traffic diagnostic REST API
                        so no `opnsense_active_server_traffic_rate`
                        metric. (default: wan,lan)
  --opnsense-timeout-sec-get-vip-status GET_VIP_STATUS_TIMEOUT_SEC
                        Allow to configure timeout while requesting
                        OPNSense REST API
                        /api/diagnostics/interface/get_vip_status/
                        (default: 5)
  --opnsense-timeout-sec-get-traffic GET_TRAFFIC_TIMEOUT_SEC
                        Allow to configure timeout while requesting
                        OPNSense REST API
                        /api/diagnostics/traffic/top/[INTERFACES]
                        (default: 15)
  --opnsense-password PASSWORD, -p PASSWORD
                        OPNsense password. Expect to be the same on MAIN
                        and BACKUP servers
  --prometheus-instance PROM_INSTANCE
                        Exporter Instance name, default value computed with
                        hostname where the server is running. Use to set
                        the instance label. (default: my-opnsense-prom-exporter-server)

您可以通过 .env 文件或环境变量设置环境,默认值定义为(因此命令行将优先)

  • CHECK_FREQUENCY_SECONDS--check-frequency-seconds 参数的默认值
  • OPNSENSE_MAIN_HOST--main-host 参数的默认值
  • OPNSENSE_BACKUP_HOST--backup-host 参数的默认值
  • OPNSENSE_USERNAME--opnsense-user 参数的默认值
  • OPNSENSE_PASSWORD--opnsense-password 参数的默认值
  • OPNSENSE_INTERFACES--opnsense-interfaces 参数的默认值
  • OPNSENSE_TIMEOUT_SEC_GET_VIP_STATUS--opnsense-timeout-sec-get-vip-status 参数的默认值
  • OPNSENSE_TIMEOUT_SEC_GET_TRAFFIC--opnsense-timeout-sec-get-traffic 参数的默认值

路线图

  • 允许更改监听端口(今天它强制使用 8000
  • 改进日志记录以获取调试模式,以基于意外的有效载荷理解错误

变更日志

版本 1.1.0 (2023-09-06)

  • 允许通过添加 --opnsense-timeout-sec-get-vip-status--opnsense-timeout-sec-get-traffic 参数来配置 OPNSense REST API 调用的超时

版本 1.0.0 (2023-09-06)

  • 删除了标记为已弃用的版本 0.5.0 的 opnsense_main_ha_stateopnsense_backup_ha_state 指标,并替换为 opnsense_server_ha_staterole 标签
  • 允许空字符串接口 调用诊断流量 REST API

版本 0.5.1 (2023-09-04)

  • 修复了未实现 opnsense_server_ha_state 调用的问题

版本 0.5.0 (2023-09-04)

  • 在指标中添加了角色标签
  • 所有通过 --opnsense-interfaces 配置监控接口
  • active_server_bytes_receivedactive_server_bytes_transmitted 替换为 opnsense_active_server_traffic_rate
  • 添加 opnsense_server_ha_state 并将 opnsense_main_ha_stateopnsense_backup_ha_state 标记为已弃用。

版本 0.4.0 (2023-09-02)

  • 获取 WAN 流量信息时的超时更高

版本 0.3.0 (2023-09-02)

  • 使用正确的方法来计算 WAN 流量

版本 0.2.0 (2023-09-01)

  • 当推送新的标签时,从 gitlab 设置自动发布

版本 0.1.0 (2023-09-01)

  • 初始版本

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

opnsense-prom-exporter-1.1.0.tar.gz (13.0 kB 查看哈希)

上传时间

构建分布

opnsense_prom_exporter-1.1.0-py3-none-any.whl (12.3 kB 查看哈希)

上传时间 Python 3

由以下支持