The Prometheus documentation 提供了一个基于文件的发现的简单示例,我对其进行了略微调整以说明监控多个系统:
scrape_configs:
- job_name: 'node'
file_sd_configs:
- files:
- 'targets.json'
[
{
"targets": [
"APP-SERVER-001:9100"
],
"labels": {
"job": "node"
}
},
{
"targets": [
"APP-SERVER-002:9100"
],
"labels": {
"job": "node"
}
}
]
虽然这很棒,但它涉及大量重复。就我而言,我有大约 50 个模块(作业)在 8 个系统中的每一个上运行。同一个模块总是报告同一个端口,所以我真正想做的是在一个地方列出目标 IP/服务器名称,而在另一个地方列出作业/端口。
这是可能的吗?否则维护会变得非常棘手且容易出错。