FritzBox Exporter项目教程
1. 项目目录结构及介绍
FritzBox Exporter项目的目录结构如下:
fritzbox_exporter/
├── .github/ # GitHub相关配置文件
├── fritzbox_lua/ # FritzBox Lua脚本相关文件
├── fritzbox_upnp/ # FritzBox UPnP相关代码
├── grafana/ # Grafana仪表盘相关文件
├── systemd/ # systemd系统服务相关文件
├── .gitignore # Git忽略文件列表
├── Dockerfile # Docker构建文件
├── LICENSE # 项目许可证文件
├── README.md # 项目说明文件
├── all_available_metrics_* # 不同版本FritzBox的可用指标文件
├── docker-compose.yml # Docker Compose配置文件
├── go.mod # Go依赖管理文件
├── go.sum # Go依赖校验文件
├── k8s-fritzbox.yaml # Kubernetes部署配置文件
├── luaTest-many.json # Lua测试文件
├── luaTest.json # Lua测试文件
├── main.go # 项目主Go文件
├── metrics-lua.json # Lua指标定义文件
├── metrics-lua_cable.json # 电缆版Lua指标定义文件
├── metrics.json # 指标定义文件
└── renovate.json # Renovate配置文件
2. 项目的启动文件介绍
项目的启动文件是main.go
。该文件包含了FritzBox Exporter的主要逻辑,包括:
- 解析命令行参数
- 设置HTTP服务监听地址
- 初始化和读取配置文件
- 连接FritzBox并获取指标数据
- 将获取到的指标数据转换为Prometheus可以使用的格式,并通过HTTP服务暴露
3. 项目的配置文件介绍
项目的配置文件主要有两个:metrics.json
和metrics-lua.json
。
-
metrics.json
:这个文件定义了通过UPnP API从FritzBox收集的指标。这些指标包括网络状态、连接设备信息等。文件中的每个指标都有详细的描述,包括其类型、帮助信息和可能的标签。 -
metrics-lua.json
:这个文件定义了通过FritzBox的Lua API收集的额外指标。这些指标可能包括CPU温度、利用率等,它们不是通过UPnP API提供的,需要通过Lua脚本获取。
这些配置文件是JSON格式的,可以根据需要修改以添加或删除指标。在运行fritzbox_exporter
时,可以通过命令行参数指定配置文件的路径。