1. 服务发现
1.1 静态方式
直接手动添加,机器量少还能接受,机器量大,此方法不可取
1.2 动态方式
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config
1.文件服务发现
添加的配置可以是json或者yaml格式的,推荐使用yaml格式的
- 默认配置文件
yaml
# Patterns for files from which target groups are extracted.
files:
[ - <filename_pattern> ... ]
# Refresh interval to re-read the files.
[ refresh_interval: <duration> | default = 5m ]
# Patterns for files from which target groups are extracted.
files:
[ - <filename_pattern> ... ]
# Refresh interval to re-read the files.
[ refresh_interval: <duration> | default = 5m ]
- 创建targets目录
bash
mkdir /data/apps/prometheus/targets/ -p
mkdir /data/apps/prometheus/targets/ -p
- 创建black_export.yml
yaml
- targets:
- 192.168.5.254
- targets:
- 192.168.5.254
- 完整配置
yaml
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
scrape_configs:
- job_name: 'black_export'
file_sd_configs:
- refresh_interval: 10s
files:
- targets/black_export.yml
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
scrape_configs:
- job_name: 'black_export'
file_sd_configs:
- refresh_interval: 10s
files:
- targets/black_export.yml
node_exporter
- 创建targets文件targets.yml
yaml
- targets:['node_exporter:9100']
labels:
instance:Prometheus服务器
job:node-exporter
- targets:['node_exporter:9100']
labels:
instance:Prometheus服务器
job:node-exporter
依次往下添加即可
- 完整配置
yaml
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
scrape_configs:
- job_name : 'file_sd_targets'
file_sd_configs:
- refresh_interval: 10s
files:
- targets/targets.yml
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
scrape_configs:
- job_name : 'file_sd_targets'
file_sd_configs:
- refresh_interval: 10s
files:
- targets/targets.yml
blackbox
icmp
- 配置prometheus
yaml
- job_name: 'blackbox-icmp'
metrics_path: /probe
params:
module: [icmp_ipv4]
static_configs:
- targets:
- 192.168.0.1
- 192.168.0.3
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115
- job_name: 'blackbox-icmp'
metrics_path: /probe
params:
module: [icmp_ipv4]
static_configs:
- targets:
- 192.168.0.1
- 192.168.0.3
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115
- 配置blackbox
yaml
## ----------- ICMP 检测配置 -----------
icmp:
prober: icmp
timeout: 5s
icmp:
preferred_ip_protocol: "ip4" # 默认是 ip6
## ----------- ICMP 检测配置 -----------
icmp:
prober: icmp
timeout: 5s
icmp:
preferred_ip_protocol: "ip4" # 默认是 ip6
tcp
- 配置prometheus
yaml
- job_name: 'blackbox-tcp'
scrape_timeout: 15s
scrape_interval: 15s
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets:
- <my_tcp_server>:<my_tcp_server_port>
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: prometheus-blackbox-exporter:9115
- job_name: 'blackbox-tcp'
scrape_timeout: 15s
scrape_interval: 15s
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets:
- <my_tcp_server>:<my_tcp_server_port>
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: prometheus-blackbox-exporter:9115
- 配置blackbox
yaml
## ----------- TCP 检测模块配置 -----------
tcp_connect:
prober: tcp
tcp:
ip_protocol_fallback: false
preferred_ip_protocol: ip4
timeout: 5s
## ----------- TCP 检测模块配置 -----------
tcp_connect:
prober: tcp
tcp:
ip_protocol_fallback: false
preferred_ip_protocol: ip4
timeout: 5s
https
- 配置prometheus
yaml
- job_name: 'blackbox-https'
scrape_timeout: 15s
scrape_interval: 15s
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- https://example.com
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: prometheus-blackbox-exporter:9115
- job_name: 'blackbox-https'
scrape_timeout: 15s
scrape_interval: 15s
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- https://example.com
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: prometheus-blackbox-exporter:9115
- 配置blackbox
yaml
modules:
## ----------- HTTP GET 2xx 检测模块配置 -----------
modules:
## ----------- HTTP GET 2xx 检测模块配置 -----------
http_get_2xx:
prober: http
timeout: 10s
http:
method: GET
fail_if_ssl: false
tls_config:
insecure_skip_verify: true
ip_protocol_fallback: false
no_follow_redirects: false
preferred_ip_protocol: ip4
valid_http_versions:
- HTTP/1.1
- HTTP/2.0
valid_status_codes:
- 200
- 204
modules:
## ----------- HTTP GET 2xx 检测模块配置 -----------
modules:
## ----------- HTTP GET 2xx 检测模块配置 -----------
http_get_2xx:
prober: http
timeout: 10s
http:
method: GET
fail_if_ssl: false
tls_config:
insecure_skip_verify: true
ip_protocol_fallback: false
no_follow_redirects: false
preferred_ip_protocol: ip4
valid_http_versions:
- HTTP/1.1
- HTTP/2.0
valid_status_codes:
- 200
- 204
2.consul服务发现(推荐)
Consul 是基于 GO 语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。Consul 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。通过 Prometheus 实现监控,当新增一个 Target 时,需要变更服务器上的配置文件,即使使用 file_sd_configs 配置,也需要登录服务器修改对应 Json 文件,会非常麻烦。不过 Prometheus 官方支持多种自动服务发现的类型,其中就支持 Consul。
部署
看consul章节
配置prometheus
yaml
cat > /data/monitor/prometheus/config <<EOF
global:
scrape_interval: 15s # 每15s采集一次数据
scrape_timeout: 10s # 超时时间
evaluation_interval: 15s # 每15s做一次告警检测
############ 告警配置 ###################
alerting:
alertmanagers:
- static_configs:
- targets: []
scheme: http
timeout: 10s
scrape_configs:
# 配置prometheus服务本身
- job_name: prometheus
honor_timestamps: true
metrics_path: /prometheus/metrics/
scheme: http
static_configs:
- targets: ['10.103.236.199:19090']
labels:
instance: prometheus
############ consul ###################
- job_name: 'consul-node-exporter'
consul_sd_configs:
- server: '10.103.236.199:8500' #ip根据自己环境进行修改
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*node-exporter.*
action: keep
- source_labels: ['__meta_consul_service']
regex: '(.*)'
target_label: 'job'
replacement: '$1'
- source_labels: ['__meta_consul_service_address']
regex: '(.*)'
target_label: 'instance'
replacement: '$1'
- source_labels: ['__meta_consul_service_metadata_project']
regex: '(.*)'
target_label: 'project'
replacement: '$1'
EOF
cat > /data/monitor/prometheus/config <<EOF
global:
scrape_interval: 15s # 每15s采集一次数据
scrape_timeout: 10s # 超时时间
evaluation_interval: 15s # 每15s做一次告警检测
############ 告警配置 ###################
alerting:
alertmanagers:
- static_configs:
- targets: []
scheme: http
timeout: 10s
scrape_configs:
# 配置prometheus服务本身
- job_name: prometheus
honor_timestamps: true
metrics_path: /prometheus/metrics/
scheme: http
static_configs:
- targets: ['10.103.236.199:19090']
labels:
instance: prometheus
############ consul ###################
- job_name: 'consul-node-exporter'
consul_sd_configs:
- server: '10.103.236.199:8500' #ip根据自己环境进行修改
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*node-exporter.*
action: keep
- source_labels: ['__meta_consul_service']
regex: '(.*)'
target_label: 'job'
replacement: '$1'
- source_labels: ['__meta_consul_service_address']
regex: '(.*)'
target_label: 'instance'
replacement: '$1'
- source_labels: ['__meta_consul_service_metadata_project']
regex: '(.*)'
target_label: 'project'
replacement: '$1'
EOF
- 热更新服务
bash
#查看语法
/usr/local/prometheus/promtool check config /data/monitor/prometheus/prometheus.yml
#查看语法
/usr/local/prometheus/promtool check config /data/monitor/prometheus/prometheus.yml
bash
curl -v --request POST 'http://10.103.236.199:19090/prometheus/-/reload'
curl -v --request POST 'http://10.103.236.199:19090/prometheus/-/reload'
prometheus 多个这个的原因,我要用同一个域名代理多个后端,默认是没有prometheus
注册服务
node-export
- 配置prometheus
yaml
- job_name: 'consul_node_exporter'
consul_sd_configs:
- server: '10.103.236.199:8500'
services: [] #代表所有服务
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*node-exporter.*
action: keep
- source_labels: ['__meta_consul_service']
regex: '(.*)'
target_label: 'job'
replacement: '$1'
- source_labels: ['__meta_consul_service_address']
regex: '(.*)'
target_label: 'instance'
replacement: '$1'
- source_labels: ['__meta_consul_service_metadata_project']
regex: '(.*)'
target_label: 'project'
replacement: '$1'
- job_name: 'consul_node_exporter'
consul_sd_configs:
- server: '10.103.236.199:8500'
services: [] #代表所有服务
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*node-exporter.*
action: keep
- source_labels: ['__meta_consul_service']
regex: '(.*)'
target_label: 'job'
replacement: '$1'
- source_labels: ['__meta_consul_service_address']
regex: '(.*)'
target_label: 'instance'
replacement: '$1'
- source_labels: ['__meta_consul_service_metadata_project']
regex: '(.*)'
target_label: 'project'
replacement: '$1'
- 注入consul服务
bash
curl -X PUT -d '{"id": "node-exporter","name": "node-exporter-10.103.236.199","address": "10.103.236.199","port": 9100,"tags": ["node-exporter"],"Meta":{"app": "linux-node","project": "yewu"},"checks": [{"http": "http://10.103.236.199:9100/metrics", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
curl -X PUT -d '{"id": "node-exporter","name": "node-exporter-10.103.236.199","address": "10.103.236.199","port": 9100,"tags": ["node-exporter"],"Meta":{"app": "linux-node","project": "yewu"},"checks": [{"http": "http://10.103.236.199:9100/metrics", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
❌ 注意
- ID 指定实例的唯一ID名称;
- Name 指定服务名,可以多个实例共用服务名;(相当于在prometheus展示job)
- Tags 指定服务的标签列表,这些标签可用于过滤服务,并通过API进行公开;
- Address 指定服务的实例地址;(相当于instance)
- Port 指定实例的端口号;
- Meta 指定服务的元数据,格式为key:value,此处用于保存我们的标签信息;
- EnableTagOverride 此处禁用服务标签的反熵功能;
- Check 服务的检查列表,Consul会根据配置信息定时发起检查,确定服务是否正常;
- 效果
consul中
prometheus中
blackbox_export
- 配置prometheus
bash
############ consul blackbox_exporter ###################
- job_name: 'blackbox-exporter'
consul_sd_configs:
- server: '10.103.236.199:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*blackbox-exporter.*
action: keep
- source_labels: ['__meta_consul_service']
regex: '(.*)'
target_label: 'job'
replacement: '$1'
- source_labels: ['__meta_consul_service_address']
regex: '(.*)'
target_label: 'instance'
replacement: '$1'
############ consul blackbox_exporter ###################
- job_name: 'blackbox-exporter'
consul_sd_configs:
- server: '10.103.236.199:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*blackbox-exporter.*
action: keep
- source_labels: ['__meta_consul_service']
regex: '(.*)'
target_label: 'job'
replacement: '$1'
- source_labels: ['__meta_consul_service_address']
regex: '(.*)'
target_label: 'instance'
replacement: '$1'
- 注入服务
bash
curl -X PUT -d '{"id": "blackbox-exporter","name": "blackbox-exporter-10.103.236.199","address": "10.103.236.199","port": 9100,"tags": ["blackbox-exporter"],"Meta":{"app": "linux-node"},"checks": [{"http": "http://10.103.236.199:9100/metrics", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
curl -X PUT -d '{"id": "blackbox-exporter","name": "blackbox-exporter-10.103.236.199","address": "10.103.236.199","port": 9100,"tags": ["blackbox-exporter"],"Meta":{"app": "linux-node"},"checks": [{"http": "http://10.103.236.199:9100/metrics", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
backbox_http_200
- 配置prometheus
yaml
############ consul domain ###################
- job_name: 'consul_blackbox_domain'
scrape_interval: 10s
scrape_timeout: 5s
metrics_path: /probe
consul_sd_configs:
- server: '10.103.236.199:8500'
services: []
params:
module:
- http_get_2xx
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*blackbox_domain.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- source_labels: [__meta_consul_service_address]
target_label: __param_target
- target_label: __address__
replacement: 10.103.236.199:19115
############ consul domain ###################
- job_name: 'consul_blackbox_domain'
scrape_interval: 10s
scrape_timeout: 5s
metrics_path: /probe
consul_sd_configs:
- server: '10.103.236.199:8500'
services: []
params:
module:
- http_get_2xx
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*blackbox_domain.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- source_labels: [__meta_consul_service_address]
target_label: __param_target
- target_label: __address__
replacement: 10.103.236.199:19115
或者
yaml
############ consul http_get_2xx ###################
- job_name: 'consul-blackbox-http_get_2xx'
scrape_interval: 30s
scrape_timeout: 15s
scheme: http
metrics_path: /probe
params:
module:
- http_get_2xx
consul_sd_configs:
- server: '10.103.236.199:8500'
tag_separator: ','
services:
- http_get_2xx
relabel_configs:
- source_labels: ['__meta_consul_service_address']
target_label: __param_target
- source_labels: ['__meta_consul_service_address']
target_label: instance
- target_label: __address__
replacement: 10.103.236.199:19115
- source_labels: ['__meta_consul_service_metadata_project']
regex: '(.*)'
target_label: 'project'
replacement: '$1'
############ consul http_get_2xx ###################
- job_name: 'consul-blackbox-http_get_2xx'
scrape_interval: 30s
scrape_timeout: 15s
scheme: http
metrics_path: /probe
params:
module:
- http_get_2xx
consul_sd_configs:
- server: '10.103.236.199:8500'
tag_separator: ','
services:
- http_get_2xx
relabel_configs:
- source_labels: ['__meta_consul_service_address']
target_label: __param_target
- source_labels: ['__meta_consul_service_address']
target_label: instance
- target_label: __address__
replacement: 10.103.236.199:19115
- source_labels: ['__meta_consul_service_metadata_project']
regex: '(.*)'
target_label: 'project'
replacement: '$1'
- 注入服务
bash
curl -X PUT -d '{"id": "blackbox-http","name": "http_get_2xx","address": "https://www.baidu.com","port": 443,"tags": ["blackbox-http"],"Meta":{"app": "linux-node","project": "web"},"checks": [{"http": "http://10.103.236.199:19115", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
curl -X PUT -d '{"id": "blackbox-http","name": "http_get_2xx","address": "https://www.baidu.com","port": 443,"tags": ["blackbox-http"],"Meta":{"app": "linux-node","project": "web"},"checks": [{"http": "http://10.103.236.199:19115", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
blackbox_icmp
- 配置prometheus
yaml
- job_name: consul_blackbox_icmp
params:
module:
- icmp
scrape_interval: 2s
scrape_timeout: 2s
metrics_path: /probe
consul_sd_configs:
# consul 服务地址
- server: '10.103.236.199:8500'
tag_separator: ','
services: [] # 代表所有服务
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*blackbox_icmp.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- source_labels: ['__meta_consul_service_address']
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.103.236.199:19115
- job_name: consul_blackbox_icmp
params:
module:
- icmp
scrape_interval: 2s
scrape_timeout: 2s
metrics_path: /probe
consul_sd_configs:
# consul 服务地址
- server: '10.103.236.199:8500'
tag_separator: ','
services: [] # 代表所有服务
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*blackbox_icmp.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- source_labels: ['__meta_consul_service_address']
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.103.236.199:19115
- 注入服务
bash
curl -X PUT -d '{"id": "blackbox-icmp","name": "blackbox_icmp","address": "10.103.236.199","port": 19115,"tags": ["blackbox-icmp"],"Meta":{"app": "linux-node","project": "yewu"},"checks": [{"http": "http://10.103.236.199:19115", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
curl -X PUT -d '{"id": "blackbox-icmp","name": "blackbox_icmp","address": "10.103.236.199","port": 19115,"tags": ["blackbox-icmp"],"Meta":{"app": "linux-node","project": "yewu"},"checks": [{"http": "http://10.103.236.199:19115", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
blackbox_tcp
yaml
############ consul tcp_connect ###################
- job_name: 'consul_blackbox_tcp_connect'
scrape_interval: 10s
scrape_timeout: 5s
scheme: http
params:
module: [tcp_connect]
consul_sd_configs:
- server: '10.103.236.199:8500'
tag_separator: ','
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*blackbox-tcp.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- source_labels: [__meta_consul_service_address]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.103.236.199:19115 #根据环境进行修改
############ consul tcp_connect ###################
- job_name: 'consul_blackbox_tcp_connect'
scrape_interval: 10s
scrape_timeout: 5s
scheme: http
params:
module: [tcp_connect]
consul_sd_configs:
- server: '10.103.236.199:8500'
tag_separator: ','
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*blackbox-tcp.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- source_labels: [__meta_consul_service_address]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.103.236.199:19115 #根据环境进行修改
- 添加ssh服务
bash
curl -X PUT -d '{"id": "blackbox-tcp","name": "blackbox-tcp","address": "10.103.236.199","port": 22,"tags": ["blackbox-tcp"],"Meta":{"app": "linux-node","project": "ssh"},"checks": [{"http": "http://10.103.236.199:19115", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
curl -X PUT -d '{"id": "blackbox-tcp","name": "blackbox-tcp","address": "10.103.236.199","port": 22,"tags": ["blackbox-tcp"],"Meta":{"app": "linux-node","project": "ssh"},"checks": [{"http": "http://10.103.236.199:19115", "interval": "5s"}]}' http://10.103.236.199:8500/v1/agent/service/register
json方式
将自动发现的服务进行分类
- 配置prometheus
yaml
- job_name: 'consul_node_exporter'
consul_sd_configs:
- server: '192.168.75.41:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*node-exporter.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- job_name: 'cadvisor-exporter'
consul_sd_configs:
- server: '192.168.75.41:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*cadvisor-exporter.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- job_name: 'consul_node_exporter'
consul_sd_configs:
- server: '192.168.75.41:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*node-exporter.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- job_name: 'cadvisor-exporter'
consul_sd_configs:
- server: '192.168.75.41:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*cadvisor-exporter.*
action: keep
- regex: __meta_consul_service_metadata_(.+)
action: labelmap
- 注入consul服务
bash
cat > consul-0.json <<EOF
{
"ID": "node-exporter",
"Name": "node-exporter-192.168.75.41",
"Tags": [
"node-exporter"
],
"Address": "192.168.75.41",
"Port": 9100,
"Meta": {
"app": "spring-boot",
"team": "appgroup",
"project": "bigdata"
},
"EnableTagOverride": false,
"Check": {
"HTTP": "http://192.168.75.41:9100/metrics",
"Interval": "10s"
},
"Weights": {
"Passing": 10,
"Warning": 1
}
}
EOF
#更新注册服务
curl --request PUT --data @consul-0.json http://192.168.75.41:8500/v1/agent/service/register?replace-existing-checks=1
#容器方式
cat >docker_json_consul.json <<EOF
{
"ID": "cadvisor-exporter-test",
"Name": "cadvisor-exporter-192.168.75.42",
"Tags": [
"cadvisor-exporter"
],
"Address": "192.168.75.42",
"Port": 8080,
"Meta": {
"app": "docker",
"team": "cloudgroup",
"project": "docker-service"
},
"EnableTagOverride": false,
"Check": {
"HTTP": "http://192.168.75.42:8080/metrics",
"Interval": "10s"
},
"Weights": {
"Passing": 10,
"Warning": 1
}
}
EOF
curl --request PUT --data @consul2.json http://192.168.75.41:8500/v1/agent/service/register?replace-existing-checks=1
cat > consul-0.json <<EOF
{
"ID": "node-exporter",
"Name": "node-exporter-192.168.75.41",
"Tags": [
"node-exporter"
],
"Address": "192.168.75.41",
"Port": 9100,
"Meta": {
"app": "spring-boot",
"team": "appgroup",
"project": "bigdata"
},
"EnableTagOverride": false,
"Check": {
"HTTP": "http://192.168.75.41:9100/metrics",
"Interval": "10s"
},
"Weights": {
"Passing": 10,
"Warning": 1
}
}
EOF
#更新注册服务
curl --request PUT --data @consul-0.json http://192.168.75.41:8500/v1/agent/service/register?replace-existing-checks=1
#容器方式
cat >docker_json_consul.json <<EOF
{
"ID": "cadvisor-exporter-test",
"Name": "cadvisor-exporter-192.168.75.42",
"Tags": [
"cadvisor-exporter"
],
"Address": "192.168.75.42",
"Port": 8080,
"Meta": {
"app": "docker",
"team": "cloudgroup",
"project": "docker-service"
},
"EnableTagOverride": false,
"Check": {
"HTTP": "http://192.168.75.42:8080/metrics",
"Interval": "10s"
},
"Weights": {
"Passing": 10,
"Warning": 1
}
}
EOF
curl --request PUT --data @consul2.json http://192.168.75.41:8500/v1/agent/service/register?replace-existing-checks=1
注销服务
Consul API 注销"id=node-exporter" 服务
bash
curl -X PUT http://10.103.236.199:8500/v1/agent/service/deregister/id_name
curl -X PUT http://10.103.236.199:8500/v1/agent/service/deregister/id_name