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

Prometheus 官方提供的 exporter 之一,可以提供 http、dns、tcp、icmp 的监控数据采集
官方github: https://github.com/prometheus/blackbox_exporter

部署Blackbox_exporter

[sss@prometheus01 ]$ cd /usr/local/blackbox_exporter/
[sss@prometheus01 ]$ wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.12.0/blackbox_exporter-0.12.0.linux-amd64.tar.gz
[sss@prometheus01 ]$ tar zxvf blackbox_exporter-0.12.0.linux-amd64.tar.gz
[sss@prometheus01 blackbox_exporter-0.12.0.linux-amd64]$ cd blackbox_exporter-0.12.0.linux-amd64
[sss@prometheus01 blackbox_exporter-0.12.0.linux-amd64]$ ll
total 15720
-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
[sss@prometheus01 blackbox_exporter-0.12.0.linux-amd64]$cp -r blackbox_exporter /usr/local/bin
[sss@prometheus01 blackbox_exporter-0.12.0.linux-amd64]$ cat /etc/supervisord.conf|grep blackbox -A 20
[program:blackbox_exporter]
command=/usr/local/bin/blackbox_exporter   --config.file=/usr/local/prometheus/blackbox_exporter/blackbox_exporter-0.12.0.linux-amd64/blackbox.yml
stdout_logfile=/tmp/prometheus/blackbox_exporter.log
autostart=true
autorestart=true
startsecs=5
priority=1
user=root
stopasgroup=true
killasgroup=true
[sss@prometheus01 blackbox_exporter-0.12.0.linux-amd64]$ supervisorctl  status |grep blackbox
blackbox_exporter                RUNNING   pid 25343, uptime 0:19:25
blackbox.yml 文件
  • 通过 blackbox.yml 定义模块详细信息
  • 在 Prometheus 配置文件中引用该模块以及配置被监控目标主机
modules:http_2xx:prober: httptimeout: 10shttp:preferred_ip_protocol: "ip4" ##如果http监测是使用ipv4 就要写上,目前国内使用ipv6很少。http_post_2xx_query: ##用于post请求使用的模块)由于每个接口传参不同 可以定义多个module 用于不同接口(例如此命名为http_post_2xx_query 用于监测query.action接口 prober: httptimeout: 15shttp:preferred_ip_protocol: "ip4" ##使用ipv4method: POSTheaders:Content-Type: application/json ##header头body: '{"hmac":"","params":{"publicFundsKeyWords":"xxx"}}' ##传参tcp_connect:prober: tcppop3s_banner:prober: tcptcp:query_response:- expect: "^+OK"tls: truetls_config:insecure_skip_verify: falsessh_banner:prober: tcptcp:query_response:- expect: "^SSH-2.0-"irc_banner:prober: tcptcp:query_response:- send: "NICK prober"- send: "USER prober prober prober :prober"- expect: "PING :([^ ]+)"send: "PONG ${1}"- expect: "^:[^ ]+ 001"icmp:prober: icmptimeout: 5sicmp:

Blackbox_exporter 应用场景

  • HTTP 测试
    定义 Request Header 信息
    判断 Http status / Http Respones Header / Http Body 内容
  • TCP 测试
    业务组件端口状态监听
    应用层协议定义与监听
  • ICMP 测试
    主机探活机制
  • POST 测试
    接口联通性
  • SSL 证书过期时间
HTTP 测试
  • 相关代码块添加到 Prometheus 文件内
  • 对应 blackbox.yml文件的 http_2xx 模块
- job_name: 'blackbox_http_2xx'scrape_interval: 45smetrics_path: /probeparams:module: [http_2xx]  # Look for a HTTP 200 response.static_configs:- targets:- https://www.baidu.com/- 172.0.0.1:9090relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 10.XXX.XX.XX:9115  # The blackbox exporter's real hostname:port.

http截图

TCP 测试
  • 监听 业务端口地址,用来判断服务是否在线,我觉的和telnet 差不多
  • 相关代码块添加到 Prometheus 文件内
  • 对应 blackbox.yml文件的 tcp_connect 模块
- job_name: "blackbox_telnet_port]"scrape_interval: 5smetrics_path: /probeparams:module: [tcp_connect]static_configs:- targets: [ '1x3.x1.xx.xx4:443' ]labels:group: 'xxxidc机房ip监控'- targets: ['10.xx.xx.xxx:443']labels:group: 'Process status of nginx(main) server'relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 10.xxx.xx.xx:9115

tcp_connect截图

ICMP 测试
  • 相关代码块添加到 Prometheus 配置文件内
  • 对应 blackbox.yml文件的 icmp 模块
- job_name: 'blackbox00_ping_idc_ip'scrape_interval: 10smetrics_path: /probeparams:module: [icmp]  #pingstatic_configs:- targets: [ '1x.xx.xx.xx' ]labels:group: 'xxnginx 虚拟IP'relabel_configs:- source_labels: [__address__]regex: (.*)(:80)?target_label: __param_targetreplacement: ${1}- source_labels: [__param_target]regex: (.*)target_label: pingreplacement: ${1}- source_labels: []regex: .*target_label: __address__replacement: 1x.xxx.xx.xx:9115

icmp截图

POST 测试
  • 监听业务接口地址,用来判断接口是否在线
  • 相关代码块添加到 Prometheus 文件内
  • 对应 blackbox.yml文件的 http_post_2xx_query 模块(监听query.action这个接口)
- job_name: 'blackbox_http_2xx_post'scrape_interval: 10smetrics_path: /probeparams:module: [http_post_2xx_query]static_configs:- targets:- https://xx.xxx.com/api/xx/xx/fund/query.actionlabels:group: 'Interface monitoring'relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 1x.xx.xx.xx:9115  # The blackbox exporter's real hostname:port.

POST截图

查看监听过程

类似于

curl http://172.16.10.65:9115/probe?target=prometheus.io&module=http_2xx&debug=true

告警应用测试

icmp、tcp、http、post 监测是否正常可以观察probe_success 这一指标
probe_success == 0 ##联通性异常
probe_success == 1 ##联通性正常
告警也是判断这个指标是否等于0,如等于0 则触发异常报警

[sss@prometheus01 prometheus]$ cat rules/blackbox-alert.rules
groups:
- name: blackbox_network_statsrules:- alert: blackbox_network_statsexpr: probe_success == 0for: 1mlabels:severity: criticalannotations:summary: "Instance {{ $labels.instance }}  is down"description: "This requires immediate action!"

参考:https://www.tidb.cc/Monitor/170603-Blackbox_exporter.html#告警测试案例

SSL 证书过期时间监测

cat << 'EOF' > prometheus.yml
rule_files:- ssl_expiry.rules
scrape_configs:- job_name: 'blackbox'metrics_path: /probeparams:module: [http_2xx]  # Look for a HTTP 200 response.static_configs:- targets:- example.com  # Target to proberelabel_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 exporter.EOF
cat << 'EOF' > ssl_expiry.rules
groups: - name: ssl_expiry.rules rules: - alert: SSLCertExpiringSoon expr: probe_ssl_earliest_cert_expiry{job="blackbox"} - time() < 86400 * 30 for: 10m
EOF

Prometheus 监控之 Blackbox_exporter黑盒监测 [icmp、tcp、http(get\post)、dns、ssl证书过期时间]相关推荐

  1. 服务器证书过期时间,ssl证书过期时间监控

    前几天,因为网易邮箱有部分域名的ssl证书过期,导致很多苹果用户的手机遇到疯狂弹窗,提示无法验证服务器身份.在我看来,这肯定是运维的锅了. 即使ssl厂商有续费提示,但是有可能因为人为的原因或者沟通的 ...

  2. Prometheus监控实战之Blackbox_exporter黑盒监测

    1 Blackbox_exporter应用场景 blackbox_exporter是Prometheus官方提供的exporter之一,可以提供HTTP.HTTPS.DNS.TCP以及ICMP的方式对 ...

  3. Blackbox_exporter黑盒监测

    一.概述 blackbox_exporter是Prometheus 官方提供的 exporter 之一,可以提供 http.dns.tcp.icmp 的监控数据采集. Blackbox_exporte ...

  4. zabbix6 通过脚本监控SSL证书到期时间

    前提: zabbix6 +网上资料 写这编文件的目的是让更多的人在查询了网上资料,还会遇上无法正常读取SSL证书到期时间的问题.所以在观看本文时,你需要有搭建ZABBIX6的基础,及Cenos8系统操 ...

  5. prometheus监控ssl证书过期(使用插件blackbox_exporter)

    blackbox_exporter的Github网址:https://github.com/prometheus/blackbox_exporter 1.安装blackbox_exporter wge ...

  6. Prometheus 监控服务端口、网站状态等(黑盒监测)

    1.blackbox_exporter介绍 blackbox_exporter是Prometheus 官方提供的 exporter 之一,可以提供 http.dns.tcp.icmp 的监控数据采集. ...

  7. Prometheus黑盒监测之blackbox_exporter

    1 什么是黑盒监控 我们监控主机的资源用量.容器的运行状态.数据库中间件的运行数据.这些都是支持业务和服务的基础设施,通过白盒能够了解其内部的实际运行状态,通过对监控指标的观察能够预判可能出现的问题, ...

  8. 性能监控之 blackbox_exporter+Prometheus+Grafana 实现网络探测

    文章目录 一.什么是黑盒监控? 二.blackbox_exporter 简介 三.安装 1.二进制包 2.docker 四.使用原理 五.几种应用场景 1.ICMP 测试(主机探活) 2.TCP 测试 ...

  9. 使用开源软件Prometheus监控企业内部应用

    使用开源软件Prometheus监控企业内部资源 1. 写在前面 ​ 在公司行政管理大区内,因为业务体量小,业务变化相对少,之前公司采用的监控技术栈较为落后,只有简单的北塔网络监控,基本没有任何的监控 ...

最新文章

  1. redis可以存多少条数据_最新数据!在武汉14区排名多少可以上高中?精准定位...
  2. jquery each函数 break和continue功能
  3. arduino控制直流电机_Arduino的高电流直流电机控制板
  4. .Net Framework名词定义
  5. 多种语言签名代码实现
  6. python单元测试示范卷_Python单元测试--Unittest
  7. bzoj 3672 利用点分治将CDQ分治推广到树型结构上
  8. Python就是为了方便生活,比如看VIP电影
  9. 塔望食业洞察|人参饮料行业环境 市场现状及发展思考
  10. 电信客户流失数据分析(二)
  11. plc梯形图的c语言写法,PLC梯形图讲解.ppt
  12. linux网络凭据,适用于Linux和Windows的服务器凭据管理
  13. Global Illumination_Spherical Harmonic Lighting(球谐光照)
  14. 网页小技巧-360doc个人图书馆复制文字
  15. 定位及overflow
  16. js 计算两个日期之间相差的天数,并适配 Ios
  17. linux下基于qt和v4l2驱动的usb摄像头视频采集与显示,用v4l2和framebuffer实现usb摄像头视频采集并显示...
  18. 志翔亮相中国网络安全年会 终端安全要“轻管控,重感知”
  19. 丘成桐中学生计算机科学竞赛,丘成桐中学生科学竞赛国内外赛区介绍
  20. scrapy过滤重复数据和增量爬取

热门文章

  1. 电脑能打开微信,但是访问不了百度,打不开网页,打不开浏览器!
  2. linux 下nginx搭建php项目访问报错502
  3. 免费ChatGPT自动批量生成文章工具
  4. Sigmoid Tanh and Relu 原函数导函数图像python绘制
  5. ifconfig和ip命令配置网络
  6. 《无冬之夜》简明流程攻略 2
  7. 7-5 计算银行存款的本息
  8. 解决 VMware 中鼠标灵敏度过高,难以控制的问题
  9. 俏丽·教师杂志俏丽·教师杂志社俏丽·教师编辑部2023年第3期目录查询
  10. 数据库资深“学霸”再启程,专访数据库初创公司矩阵起源全球 CTO 田丰博士