一搏色、blackbox_exporter介紹
blackbox_exporter 是 Prometheus 官方提供的一個(gè) exporter, 可以監(jiān)控 HTTP券册、HTTPS,频轿、 DNS垂涯、 TCP 、 ICMP 等目標(biāo)實(shí)例航邢, 從而實(shí)現(xiàn)對(duì)被監(jiān)控節(jié)點(diǎn)進(jìn)行監(jiān)控和數(shù)據(jù)采集耕赘。
HTTP/HTPPS: URL/API 可用性檢測(cè)
TCP: 端口監(jiān)聽(tīng)檢測(cè)
ICMP: 主機(jī)存活檢測(cè)
DNS: 域名解析
二、安裝部署blackbox_exporter
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.22.0/blackbox_exporter-0.22.0.linux-amd64.tar.gz
tar -xf blackbox_exporter-0.22.0.linux-amd64.tar.gz -C /apps/
cd /apps/
mv blackbox_exporter-0.22.0.linux-amd64/ blackbox_exporter
[root@monitoring ~]# vim /etc/systemd/system/blackbox-exporter.service
[root@monitoring ~]# cat /etc/systemd/system/blackbox-exporter.service
[Unit]
Description=Prometheus Blackbox Exporter
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/apps/blackbox_exporter/blackbox_exporter \
--config.file=/apps/blackbox_exporter/blackbox.yml \
--web.listen-address=:9115
Restart=on-failure
[Install]
WantedBy=multi-user.target
[root@monitoring ~]#
[root@monitoring ~]# systemctl enable --now blackbox-exporter.service
Created symlink /etc/systemd/system/multi-user.target.wants/blackbox-exporter.service → /etc/systemd/system/blackbox-exporter.service.
[root@monitoring ~]# systemctl status blackbox-exporter.service
● blackbox-exporter.service - Prometheus Blackbox Exporter
Loaded: loaded (/etc/systemd/system/blackbox-exporter.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-09-27 16:56:04 CST; 1min 13s ago
Main PID: 29832 (blackbox_export)
Tasks: 8 (limit: 49440)
Memory: 4.9M
CGroup: /system.slice/blackbox-exporter.service
└─29832 /apps/blackbox_exporter/blackbox_exporter --config.file=/apps/blackbox_exporter/blackbox.yml --web.listen-address=:9115
Sep 27 16:56:04 monitoring systemd[1]: Started Prometheus Blackbox Exporter.
Sep 27 16:56:04 monitoring blackbox_exporter[29832]: ts=2022-09-27T08:56:04.252Z caller=main.go:256 level=info msg="Starting blackbox_exporter" version="(version=0.22.0, >
Sep 27 16:56:04 monitoring blackbox_exporter[29832]: ts=2022-09-27T08:56:04.253Z caller=main.go:257 level=info build_context="(go=go1.18.5, user=root@4d81de342d10, date=2>
Sep 27 16:56:04 monitoring blackbox_exporter[29832]: ts=2022-09-27T08:56:04.255Z caller=main.go:269 level=info msg="Loaded config file"
Sep 27 16:56:04 monitoring blackbox_exporter[29832]: ts=2022-09-27T08:56:04.257Z caller=main.go:417 level=info msg="Listening on address" address=:9115
Sep 27 16:56:04 monitoring blackbox_exporter[29832]: ts=2022-09-27T08:56:04.258Z caller=tls_config.go:195 level=info msg="TLS is disabled." http2=false
[root@monitoring ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 835/sshd
tcp6 0 0 :::22 :::* LISTEN 835/sshd
tcp6 0 0 :::3000 :::* LISTEN 24712/grafana-serve
tcp6 0 0 :::9115 :::* LISTEN 29832/blackbox_expo
tcp6 0 0 :::9090 :::* LISTEN 29615/prometheus
tcp6 0 0 :::51234 :::* LISTEN 24847/node_exporter
tcp6 0 0 :::9256 :::* LISTEN 24879/process-expor
[root@monitoring ~]#
2.1膳殷、blackbox exporter 實(shí)現(xiàn) URL 監(jiān)控
配置Prometheus
[root@monitoring prometheus]# vim prometheus.yml
[root@monitoring prometheus]# grep http_status -A10 prometheus.yml
- job_name: 'http_status'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets: ['http://www.xiaomi.com', 'http://www.magedu.com']
labels:
instance: http_status
group: web
relabel_configs:
- source_labels: [__address__] # 將__address__(當(dāng)前監(jiān)控目標(biāo)URL地址的標(biāo)簽)修改為_(kāi)_param_target,用于傳遞給blackbox_exporter
target_label: __param_target #標(biāo)簽key為_(kāi)_param_target操骡、value為www.xiaomi.mkey為_(kāi)_param_target、value為www.magedu.com
- source_labels: [__param_target] #基于__param_target獲取監(jiān)控目標(biāo)
target_label: url #將監(jiān)控目標(biāo)的值與 url 創(chuàng)建一個(gè)label
- target_label: __address__ #新添加一個(gè)目標(biāo)__address__,指向blackbox_exporter服務(wù)器地址,用于將監(jiān)控請(qǐng)求發(fā)送給指定的blackbox_exporter服務(wù)器
replacement: 172.16.88.20:9115 #指定blackbox_exporter服務(wù)器地址
#API Serevr節(jié)點(diǎn)發(fā)現(xiàn)
[root@monitoring prometheus]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax
[root@monitoring prometheus]# systemctl restart prometheus.service
[root@monitoring prometheus]#
2.2赚窃、blackbox exporter 實(shí)現(xiàn) ICMP 監(jiān)控
ICMP就是Ping使用的協(xié)議当娱,可以探測(cè)IP是否在線:
[root@monitoring prometheus]# vim prometheus.yml
[root@monitoring prometheus]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax
[root@monitoring prometheus]# grep ping_status -A10 prometheus.yml
- job_name: 'ping_status'
metrics_path: /probe
params:
module: [icmp]
static_configs:
- targets: ['172.16.88.254',"223.6.6.6"]
labels:
instance: 'ping_status'
group: 'icmp'
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: ip
- target_label: __address__
replacement: 172.16.88.20:9115
#API Serevr節(jié)點(diǎn)發(fā)現(xiàn)
[root@monitoring prometheus]# systemctl restart prometheus.service
[root@monitoring prometheus]#
2.3、blackbox exporter 實(shí)現(xiàn)端口監(jiān)控
[root@monitoring prometheus]# vim prometheus.yml
[root@monitoring prometheus]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax
[root@monitoring prometheus]# grep port_status -A10 prometheus.yml
- job_name: 'port_status'
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets: ['172.16.88.20:51234', '172.16.88.20:9256','172.16.88.20:22']
labels:
instance: 'port_status'
group: 'port'
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: ip
- target_label: __address__
replacement: 172.16.88.20:9115
#API Serevr節(jié)點(diǎn)發(fā)現(xiàn)
[root@monitoring prometheus]# systemctl restart prometheus.service
[root@monitoring prometheus]#
Grafana模板
可在官網(wǎng)查找blackbox_exporter相關(guān)的模板:
https://grafana.com/grafana/dashboards/
推薦模板ID:9965, 13587