Consul_template自动注册prometheus-蓝叶子Water

Windows Windows 2个月前 (08-15) 3次浏览 未收录 0个评论 扫描二维码

第1章 Consul_template自动注册prometheus

https://github.com/hashicorp/consul-template#templating-language

1.1 搭建blackbox_exporter

Blackbox_exporter 主动监测主机与服务状态

Prometheus 官方提供的 exporter 之一,可以提供 http、dns、tcp、icmp 的监控数据采集

官方github: https://github.com/prometheus/blackbox_exporter

使用docker镜像版的blackbox_exporter

监控项

HTTP?测试
定义?Request?Header?信息
判断?Http?status?/?Http?Respones?Header?/?Http?Body?内容
TCP?测试
业务组件端口状态监听
应用层协议定义与监听
ICMP?测试
主机探活机制
POST?测试
接口联通性
SSL?证书过期时间
证书到期时间表达式
probe_ssl_earliest_cert_expiry{job="blackbox"}?-?time()?<?86400?*?30

1.1.1 手动安装blackbox_exporter

下载安装包

wget?https://github.com/prometheus/blackbox_exporter/releases/download/v0.14.0/blackbox_exporter-0.14.0.linux-amd64.tar.gz

部署

tar?zxvf?blackbox_exporter-0.14.0.linux-amd64.tar.gz
cd?blackbox_exporter-0.12.0.linux-amd64
ll
-rwxr-xr-x.?1?1000?1000?16074005?Feb?27??2018?blackbox_exporter
-rw-rw-r--.?1?1000?1000??????932?Nov?21?16:05?blackbox.yml
-rw-rw-r--.?1?1000?1000????11357?Feb?27??2018?LICENSE
-rw-rw-r--.?1?1000?1000???????94?Feb?27??2018?NOTICE
cp?-r?blackbox_exporter?/usr/local/bin

启动

/usr/local/bin/blackbox_exporter???--config.file=/usr/local/prometheus/blackbox_exporter/blackbox_exporter-0.14.0.linux-amd64/blackbox.yml

启动后会启动9115端口

?

1.1.2 Docker方式部署(中间有坑缺文件)

git?clone?https://github.com/prometheus/blackbox_exporter.git
docker?build?-t?blackbox_exporter?.
docker?run?-d?-p?9115:9115?--name?blackbox_exporter?-v?`pwd`:/config?blackbox_exporter?--config.file=/config/blackbox.yml

?

1.1.3 概念介绍

配置文件为/etc/blackbox_exporter/blackbox.yml
blackbox_exporter通过配置文件和命令行标志(例如要加载什么配置文件,监听哪个端口以及日志记录格式和级别)进行配置。?
同时可以运行时动态的重新加载配置文件,当重新加载配置文件失败时,不影响在运行的配置?
重载方式:curl?-XPOST?http://127.0.0.1:9115/-/reload
blackbox_exporter?的超时时间由Prometheus配置中的scrape_timeout自动确定,略微减少以允许网络延迟.默认是10s

?

示例配置:

https://github.com/prometheus/blackbox_exporter/blob/master/example.yml

?

?

1.2 配置prometheus

?

1.2.1 Tcp端口检测配置

-?job_name:?'black_box_tcp_port'
????scrape_interval:?5s
????metrics_path:?/probe
????params:
??????module:?[tcp_connect]
????file_sd_configs:
??????-?files:
????????-?/home/work/software/Prometheus/config/tcp_port.json
????relabel_configs:
??????-?source_labels:?[__address__]
????????target_label:?__param_target
??????-?source_labels:?[__param_target]
????????target_label:?instance
??????-?target_label:?__address__
????????replacement:?10.111.2.176:30392
重载prometheus配置
curl?-XPOST?http://127.0.0.1:9090/-/reload

?

1.2.2 Ping ip 检测配置

-?job_name:?'black_box_ping'
????scrape_interval:?10s
????metrics_path:?/probe
????params:
??????module:?[icmp]
????file_sd_configs:
??????-?files:
????????-?/home/work/software/Prometheus/config/ping_ip_bj.json
????????-?/home/work/software/Prometheus/config/ping_ip_tj.json
????????-?/home/work/software/Prometheus/config/ping_ip_other.json
????relabel_configs:
??????-?source_labels:?[__address__]
????????target_label:?__param_target
??????-?source_labels:?[__param_target]
????????target_label:?instance
??????-?target_label:?__address__
????????replacement:?10.111.2.176:30392
?
重载prometheus配置
curl?-XPOST?http://127.0.0.1:9090/-/reload

?

1.3 部署consul_template

$?wget?https://releases.hashicorp.com/consul-template/0.18.3/consul-template_0.18.3_linux_amd64.zip
$?unzip?consul-template_0.18.3_linux_amd64.zip
$?mv?consul-template?/usr/local/bin/

其它系统版本可在这里下载:https://releases.hashicorp.com/consul-template/

编写配置模板

ping_ip_bj_template.json
[{{?range?nodes}}
{
“targets”:?[“{{?.Address?}}”],
“labels”:?{
“node_name”:?“{{?.Node?}}”
}
},
{{?end?}}
{
“targets”:?[“10.111.2.161”],
“labels”:?{
“node_name”:?“upweb01-bj-linkdoc”
}
}
]

?

?

编写consul-template配置

Mkdir?-p?/home/work/software/consul_template/?&&?cd?/home/work/software/consul_template/
Consul{
Address?=?“172.23.4.21:8500”
}
?
Template{
Source?=?“/home/work/software/consul_template/tcp_port_template.json”
Destination=?“/home/work/software/Prometheus/config/tcp_port.json”
Command=”/usr/bin/curl?-X?POST?http://127.0.0.1:9090/-/reload”
}
Template{
Source?=?“/home/work/software/consul_template/ping_ip_tj_template.json”
Destination=?“/home/work/software/Prometheus/config/ping_ip_tj.json”
Command=”/usr/bin/curl?-X?POST?http://127.0.0.1:9090/-/reload”
}
?
?
?
?
Consul{
Address?=?“10.111.3.15:8500”
}
?
Template{
Source?=?“/home/work/software/consul_template/?ping_ip_bj_template.json”
Destination=?“/home/work/software/Prometheus/config/?ping_ip_bj.json”
Command=”/usr/bin/curl?-X?POST?http://127.0.0.1:9090/-/reload”
}

启动consul_template

nohup?consul-template?-config?/home/work/software/consul_template/prometheus.ops?&

?

此时consul_template会自动从consul服务中获取配置并更新到prometheus配置文件中重载prometheus

喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址