简介: BlackBox Exporter 顾名思义就是在应用程序的外部对其进行探测, 支持 HTTP、HTTPS、DNS、TCP、ICMP等方式对目标进行检测。

BlackBox Exporter 顾名思义就是在应用程序的外部对其进行探测,
支持 HTTP、HTTPS、DNS、TCP、ICMP等方式对目标进行检测。

官网文档:https://github.com/prometheus/blackbox_exporter

1、 HTTP 测试

定义 Request Header 信息
判断 Http status / Http Respones Header / Http Body 内容

2、 TCP 测试

业务组件端口状态监听
应用层协议定义与监听

3、 ICMP 测试

主机探活机制

4、 POST 测试

接口联通性

5、 SSL 证书过期时间

运行Blackbox Exporter时,需要用户提供探针的配置信息,这些配置信息可能是一些自定义的HTTP头信息,也可能是探测时需要的一些TSL配置,也可能是探针本身的验证行为。在Blackbox Exporter每一个探针配置称为一个module,并且以YAML配置文件的形式提供给Blackbox Exporter。每一个module主要包含以下配置内容,包括探针类型(prober)、验证访问超时时间(timeout)、以及当前探针的具体配置项:

  # 探针类型:http、 tcp、 dns、 icmp.prober: <prober_string># 超时时间[ timeout: <duration> ]# 探针的详细配置,最多只能配置其中的一个[ http: <http_probe> ][ tcp: <tcp_probe> ][ dns: <dns_probe> ][ icmp: <icmp_probe> ]

2. black_exporter 安装

2.1 docker 方式安装 推荐

docker pull prom/blackbox-exporterdocker run -d -p 9115:9115 --name blackbox-exporter  prom/blackbox-exporter

2.2 宿主机安装
下载地址 https://github.com/prometheus/blackbox_exporter/releases

# 下载
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.18.0/blackbox_exporter-0.19.0.darwin-amd64.tar.gz
# 解压
tar -zxvf blackbox_exporter-0.19.0.darwin-amd64.tar.gz
# 重命名
mv blackbox_exporter-0.19.0.darwin-amd64/ blackbox_exporter
# 进入 blackbox_exporter 目录
cd blackbox_exporter
# 启动
nohup ./blackbox_exporter --web.listen-address=:9115 --config.file=/home/apps/blackbox_exporter/blackbox.yml &

默认监听9115端口:

# ss -tunlp|grep 9115
tcp    LISTEN     0      32768                  *:9115                  *:*      users:(("blackbox_export",29880,3))

blackbox.yml 配置文件介绍,具体配置参考https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md:

modules:http_2xx: # http监测模块,这个名字是随便写的,但是需要在 prometheus.yml 配置文件中对应起来。prober: http # 进行探测的协议,可以是 http、tcp、dns、icmptimeout: 10shttp_post_2xx:  # http post检测模块prober: httphttp:method: POSTtcp_connect: # tcp检测,比如检测某个端口是否在线prober: tcpicmp: # icmp 检测,比如ping某个服务器prober: icmp

3.监控主机存活状态

# vim prometheus.yml
- job_name: crawler_statusmetrics_path: /probeparams:module: [icmp]static_configs:- targets: ['10.45.3.8','10.45.3.9','10.45.3.10','10.45.3.11']labels:instance: node_statusgroup: 'node'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

注意:10.45.3.8是被监控端ip,127.0.0.1是Blackbox_exporter

3.监控主机端口存活状态

- job_name: 'crawler_port_status'metrics_path: /probeparams:module: [tcp_connect]static_configs:- targets: ['10.45.3.8:3128']labels:instance: 'port_status'group: 'tcp'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

4.监控网站状态 URL

- job_name: qianxin_web_statusmetrics_path: /probeparams:module: [http_2xx]static_configs:- targets: ['https://www.qianxin.com']labels:instance: qianxin_web_statusgroup: 'web'relabel_configs:- source_labels: [__address__]target_label: __param_target- target_label: __address__replacement: 127.0.0.1:9115- job_name: baidu_web_statusmetrics_path: /probeparams:module: [http_2xx]static_configs:- targets: ['https://www.baidu.com']labels:instance: baidu_web_statusgroup: 'web'relabel_configs:- source_labels: [__address__]target_label: __param_target- target_label: __address__replacement: 127.0.0.1:9115- job_name: jd_web_statusmetrics_path: /probeparams:module: [http_2xx]static_configs:- targets: ['https://www.jd.com']labels:instance: jd_web_statusgroup: 'web'relabel_configs:- source_labels: [__address__]target_label: __param_target- target_label: __address__replacement: 127.0.0.1:9115

URL部分详解:

root@prometheus-01:~# cat /usr/local/prometheus/prometheus.yml #网站监控- job_name: 'http_status'metrics_path: /probeparams:module: [http_2xx]  # Look for a HTTP 200 response.static_configs:- targets:                  # 宿主机或docker不开启IPV6,则不支持IPV6解析。- http://www.baidu.com    # Target to probe with http.- https://www.xiaomi.com   # Target to probe with https.- http://192.168.174.120:9090 # Target to probe with http on port 8080.labels:instance: http_statusgroup: webrelabel_configs:- source_labels: [__address__]  #relabel 通过将__address__(当前目标地址)写入__param_target标签来创建一个labeltarget_label: __param_target #监控目标 www.baidu.com,作为__address__的value- source_labels: [__param_target] #监控目标target_label: url #将监控目标与URL创建一个label- target_label: __address__replacement: 192.168.174.104:9115  # The blackbox exporter's real hostname:port.

完整测试配置可参考:

global:scrape_interval:     60sevaluation_interval: 60sscrape_configs:- job_name: prometheusstatic_configs:- targets: ['localhost:9090']labels:instance: prometheus- job_name: linuxstatic_configs:- targets: ['172.19.209.51:9100']labels:instance: localhost- job_name: 'blackbox'metrics_path: /probeparams:module: [http_2xx]  # Look for a HTTP 200 response.static_configs:- targets:- http://www.baidu.comlabels:instance: www.baidu.comgroup: webrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]#target_label: instancetarget_label: url- target_label: __address__replacement: 172.19.209.51:9115  # The blackbox exporter's real hostname:port.- job_name: 'blackbox-01'metrics_path: /probeparams:module: [http_2xx]  # Look for a HTTP 200 response.static_configs:- targets:- http://www.cc.comlabels:instance: www.cc.comgroup: webrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: url- target_label: __address__replacement: 172.19.209.51:9115  # The blackbox exporter's real hostname:port.

5.检查配置文件是否书写正确

#/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
Checking /usr/local/prometheus/prometheus.ymlSUCCESS: 1 rule files foundChecking /usr/local/prometheus/alert_rules/instance_up.yamlSUCCESS: 1 rules found

6.重启prometheus

systemctl restart prometheus
或
docker restart ID

7.查看targets界面

8.grafana中加入blackbox_exporter监控数据

安装grafana

docker run -d -p 3000:3000 --name grafana grafana/grafana
运行完成打开,127.0.0.1:3000登录页面输入 超级管理员的账号密码第一次登录 默认 账号 admin 密码admin

2、添加数据源



9.grafana中加入blackbox_exporter监控数据

1、添加模版

https://grafana.com/grafana/dashboards/9965
https://grafana.com/grafana/dashboards/9719

此模板需要安装饼状图插件 下载地址 https://grafana.com/grafana/plugins/grafana-piechart-panel
安装插件,重启grafana生效。

docker exec -it grafana grafana-cli plugins install grafana-piechart-panel
docker restart grafana

效果图: 推荐:11543

Pormetheus(普罗米修斯) 采用blackbox_exporter实现监控相关推荐

  1. Centos7安装普罗米修斯(Prometheus)监控

    一.普罗米修斯介绍 在古希腊神话中普罗米修斯曾与智慧女神雅典娜共同创造了人类,普罗米修斯负责用泥土雕塑出人的形状,雅典娜则为泥人灌注灵魂,并教会了人类很多知识.普罗米修斯还反抗宙斯,将火种带到人间.在 ...

  2. 普罗米修斯Prometheus+Grafana,监控搭建与界面基础配置

    一.Prometheus 简介 gitlab官方地址:https://github.com/prometheus/prometheus Prometheus(普罗米修斯)是一套开源的监控&报警 ...

  3. 普罗米修斯 监控_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  4. metrics类型 普罗米修斯_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  5. 接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  6. 普罗米修斯(Prometheus)安装配置部署

    一.基础环境 环境/组件 版本 操作系统 CentOS Linux release 7.6.1810 Prometheus prometheus-2.22.1.linux-amd64.tar.gz g ...

  7. 监控神器普罗米修斯Prometheus安装配置

    一.基础环境 环境/组件 版本 下载地址 操作系统 CentOS 7.3 http://archive.kernel.org/centos-vault/7.3.1611/isos/x86_64/Cen ...

  8. 普罗米修斯Prometheus安装和使用

    文章目录 一.prometheus安装 二.AlertManager的使用(邮件告警) 1.原文链接 2.自己操作-prometheus+alertmanager实现CPU的监控报警 3.promet ...

  9. Promethus(普罗米修斯)监控随笔

    Promethus(普罗米修斯)监控随笔 promethus安装 安装consul用于普罗米修斯监控端注册服务统一监控 安装node_exporter 修改普罗米修配置文件新增监控项 安装grafan ...

  10. 普罗米修斯Prometheus的安装及Grafana使用

    首先安装运行环境go 如果有网络 使用命令 yum install go -y 如果没有网络使用离线安装包 下载:Linux :go1.8.3.linux-amd64.tar.gz [root@bob ...

最新文章

  1. 程序人生--从这里开始
  2. ionic+angularJS+iOS混合开发app的学习资料介绍和基本步骤(干货)
  3. lampp mysql 等待响应时间很长,XAMPP 最大执行时间(max_execution_time) 问题
  4. C语言矩阵M*N节省空间的算法(附完整源码)
  5. C++函数调用运算符重载
  6. 12套经典java实战教程下载链接
  7. Leet Code OJ 1. Two Sum [Difficulty: Easy]
  8. 【线性回归】面向新手的基础知识
  9. uni-app 实现点击列表隐藏显示
  10. 基于docker搭建zookeeper集群、kafka集群(多台真机之间的集群)
  11. [转载] XStream的分析
  12. 关闭Windows自动更新—大法
  13. CAD制图软件中如何设置CAD打印样式表(CTB)?
  14. vue项目结构目录简介
  15. 怎么注册Google Earth Engine(GEE)
  16. 【阿里Java技术进阶】官方钉群直播大全(持续更新)...
  17. Apache日志分割及分析
  18. IE浏览器提示无法显示网页的三种情况
  19. cesium实现简单地图展示
  20. [附源码]java毕业设计房屋租赁管理系统

热门文章

  1. NetBeans修改字体中文乱码问题
  2. Flixel横板游戏制作教程(九)—SquashingthePlayer(挤压Player)
  3. 案例介绍 犹他州交通规划网络地图中心
  4. PCA 实践 利用 PCA 算法对人脸数据集内所有人进行降维和特征提取 PCA原理解析+代码
  5. LeetCode:在线编程刷题网站
  6. 转载:ecCodes 学习 利用ecCodes Python API对GRIB文件进行读写
  7. 山西大同大学教务处学生端--送给学弟,学妹的礼物,可在PC端,手机端操作
  8. LiveZilla 详细 配置 设置 (四) 查看成果及总结
  9. html5背景泡泡,HTML5 canvas梦幻圆形泡泡动画背景特效
  10. 信息窃取器概述:如何从浏览器窃取百万数据