目的
线上服务监控如果只有几个服务器或者十来个服务器,而且服务器也不怎么变动的可以直接修改prometheus.yml文件添加或者修改,重启一下服务就可以了,但是如果线上服务器过多,监控的数据也过多,那就需要系统自动去刷新发现这些需要监控的节点了。
服务发现分类
基于json文件服务发现
基于文件服务发现是最基础也是使用最多的一种,有yaml格式文件和json格式文件两种,配置方式如下
1.json格式
]
{
"targets": [ "192.168.1.1:9090","192.168.1.2:9090" ],
"lables": {
"env": "web",
"job": "linux"
}
},
{
"targets": [ "192.168.1.3:9104","192.168.1.4:9104" ],
"lables": {
"env": "mysql01",
"job": "mysqld"
}
}
]
prometheus.yml文件添加
- job_name: 'node_service_discovery'
file_sd_configs:
- files:
- path/*.json #配置文件地址
refresh_interval: 60m #读取配置文件的时间间隔
基于yaml文件发现
2.yaml格式
- targets: ['192.168.1.1:9100']
labels:
app: 'app1'
env: 'game1'
job: 'consul1'
- targets: ['192.168.1.2:9100']
labels:
app: 'app2'
env: 'game2'
job: 'consul2'
prometheus.yaml
- job_name: 'node_service_discovery'
file_sd_configs:
- files:
- path/*.yaml #配置文件地址
refresh_interval: 60m #读取配置文件的时间间隔
配置完重启服务后面只需要在文件中添加配置就可以自动发现需要监控的主机
如果是docker启动需要将本地文件挂载进去docker里面