前言

前面我已经简单解释了Prometheus与Consul结合使用,今天分享一下blackbox_exporter.


一、Blackbox_exporter是什么?

blackbox_exporter允许通过HTTP,HTTPS,DNS,TCP和ICMP对监控目标发起黑盒测试。
这个与白盒的区别一个由内而发起,黑盒是由外而发起的探测

二、Blackbox使用步骤

1.从官网下载

blackbox_exporter下载地址
源码地址:https://github.com/prometheus/blackbox_exporter

下载之后,我们这边的启动脚本为

#!/bin/bash
nohup /data/blackbox_exporter-0.19.0/blackbox_exporter &

重启的脚本为:

#!/bin/bash
curl -X POST http://127.0.0.1:9115/-/reload

以下为官网的yaml参考配置:

modules:http_2xx_example:prober: httptimeout: 5shttp:valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]valid_status_codes: []  # Defaults to 2xxmethod: GETheaders:Host: vhost.example.comAccept-Language: en-USOrigin: example.comno_follow_redirects: falsefail_if_ssl: falsefail_if_not_ssl: falsefail_if_body_matches_regexp:- "Could not connect to database"fail_if_body_not_matches_regexp:- "Download the latest version here"fail_if_header_matches: # Verifies that no cookies are set- header: Set-Cookieallow_missing: trueregexp: '.*'fail_if_header_not_matches:- header: Access-Control-Allow-Originregexp: '(\*|example\.com)'tls_config:insecure_skip_verify: falsepreferred_ip_protocol: "ip4" # defaults to "ip6"ip_protocol_fallback: false  # no fallback to "ip6"http_post_2xx:prober: httptimeout: 5shttp:method: POSTheaders:Content-Type: application/jsonbody: '{}'http_basic_auth_example:prober: httptimeout: 5shttp:method: POSTheaders:Host: "login.example.com"basic_auth:username: "username"password: "mysecret"http_custom_ca_example:prober: httphttp:method: GETtls_config:ca_file: "/certs/my_cert.crt"http_gzip:prober: httphttp:method: GETcompression: gziphttp_gzip_with_accept_encoding:prober: httphttp:method: GETcompression: gzipheaders:Accept-Encoding: gziptls_connect:prober: tcptimeout: 5stcp:tls: truetcp_connect_example:prober: tcptimeout: 5simap_starttls:prober: tcptimeout: 5stcp:query_response:- expect: "OK.*STARTTLS"- send: ". STARTTLS"- expect: "OK"- starttls: true- send: ". capability"- expect: "CAPABILITY IMAP4rev1"smtp_starttls:prober: tcptimeout: 5stcp:query_response:- expect: "^220 ([^ ]+) ESMTP (.+)$"- send: "EHLO prober\r"- expect: "^250-STARTTLS"- send: "STARTTLS\r"- expect: "^220"- starttls: true- send: "EHLO prober\r"- expect: "^250-AUTH"- send: "QUIT\r"irc_banner_example:prober: tcptimeout: 5stcp:query_response:- send: "NICK prober"- send: "USER prober prober prober :prober"- expect: "PING :([^ ]+)"send: "PONG ${1}"- expect: "^:[^ ]+ 001"icmp_example:prober: icmptimeout: 5sicmp:preferred_ip_protocol: "ip4"source_ip_address: "127.0.0.1"dns_udp_example:prober: dnstimeout: 5sdns:query_name: "www.prometheus.io"query_type: "A"valid_rcodes:- NOERRORvalidate_answer_rrs:fail_if_matches_regexp:- ".*127.0.0.1"fail_if_all_match_regexp:- ".*127.0.0.1"fail_if_not_matches_regexp:- "www.prometheus.io.\t300\tIN\tA\t127.0.0.1"fail_if_none_matches_regexp:- "127.0.0.1"validate_authority_rrs:fail_if_matches_regexp:- ".*127.0.0.1"validate_additional_rrs:fail_if_matches_regexp:- ".*127.0.0.1"dns_soa:prober: dnsdns:query_name: "prometheus.io"query_type: "SOA"dns_tcp_example:prober: dnsdns:transport_protocol: "tcp" # defaults to "udp"preferred_ip_protocol: "ip4" # defaults to "ip6"query_name: "www.prometheus.io"

如果有其他需求,可以参考上面提供的实例对应的改写

2.应用

从上面的配置yaml可以写了很多东西
暂时我们只使用了我们需要的内容 blackbox.yml

modules:http_2xx:prober: httptimeout: 10shttp:valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]valid_status_codes: []  # Defaults to 2xxmethod: GET# 响应符合正则表达式就失败#fail_if_body_matches_regexp:# - "OK|SUCCESS"# 响应不符合正则表达式就失败fail_if_body_not_matches_regexp:- "OK|SUCCESS"icmp: # ping方式检测 prober: icmptimeout: 5sicmp:preferred_ip_protocol: "ip4"

我们这边主要做两个方面:
1. 进行ping检测
2. 检测写的程序是否正常。因为内部有些项目已经规范返回"OK"或者"SUCCESS"两种,所以这种规范性的还是很好写的

blackbox_exporter部署成功之后就可以访问:http://127.0.0.1:9115 去验证
访问路径为
http://127.0.0.1:9115/probe?target=prometheus.io&module=http_2xx&debug=true

target: 监控的目标
module:使用的模块
debug 是否输出日志

关注以下指标
···
#HELP probe_icmp_duration_seconds Duration of icmp request by phase
#TYPE probe_icmp_duration_seconds gauge 延迟通断 注意phase=“rtt” )

probe_icmp_duration_seconds{phase=“resolve”} 0.19693231
probe_icmp_duration_seconds{phase=“rtt”} 0.159475017
probe_icmp_duration_seconds{phase=“setup”} 7.5679e-05

#HELP probe_success Displays whether or not the probe was a success
#TYPE probe_success gauge 是否返回正常(0 不正常 1 为正常)
probe_success 1
···
注意配合前面我介绍的Prometheus与 Consul 结合使用,这样就可以做到监控自助上下线,从而提高效率

事项

  1. 配置blackbox_exporter,最好安装node_exporter工具
  2. 如果是Linux注意linux中的ulimit 连接数的大小,不宜过小

关于ping还是存在一定的不足,后续我将分享fping_exporter插件针对ping的增强


总结

以上就是我分享的内容,blackbox_exporter还是应用的场景比较多的,尤其是监控方面

Go语言网络监控之路_blackbox_exporter相关推荐

  1. 网络编程+go+java_GO语言的进阶之路-网络编程之socket

    GO语言的进阶之路-网络编程之socket 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是socket; 在说socket之前,我们要对两个概念要有所了解,就是IP和端口 ...

  2. GO语言的进阶之路-网络编程之socket

    GO语言的进阶之路-网络编程之socket 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是socket; 在说socket之前,我们要对两个概念要有所了解,就是IP和端口 ...

  3. 揭秘双11丝滑般剁手之路背后的网络监控技术

    简介:本篇将重点介绍Hologres在阿里巴巴网络监控部门成功替换Druid的最佳实践,并助力双11实时网络监控大盘毫秒级响应. 概要:刚刚结束的2020天猫双11中,MaxCompute交互式分析( ...

  4. 虚拟网络监控进阶之路-DeepFlow

    监控对于我们来说到底有多重要? 网络监控是企业IT运维中必不可少的重要一环,传统的监控工具以监控各个服务的健康和性能为中心.而随着数字化时代的到来,我们需要一个更加全面的监控视图,能够把不同环境下所有 ...

  5. 网络监控系统中如何选择工业交换机?

    做网络网络监控系统工程项目的朋友应该都知道,一个中大型网络监控系统不可能单独使用一台或者几台工业交换机就能实现传输效果,这个需要进行工业交换机级联:分别选择不同的工业交换机作为接入层.汇聚层和核心层. ...

  6. 竣达技术丨Modbus 转SNMP网络监控终端

    "Modbus 转SNMP网络监控终端",一款网络监控终端产品.该产品集网络,2路RS485于一体,通过网线连接网络,由用户自定义数据采样命令和数据名称等等设备信息,不间断的采集支 ...

  7. 数字网络监控系统解决方案1

    真正数字网络监控系统解决方案(全动态IP,局域网或广域网)   Post By:2004-9-11 12:05:00 数字网络监控系统解决方案 一.XM3216.NET系统特点近年来,网络信息业取得了 ...

  8. 实时内核μC/OS-II下的网络监控系统的设计

    实时内核μC/OS-II下的网络监控系统的设计 [日期:2008-8-5] 来源:电子技术应用  作者:高长艳 郑喜凤 丁铁夫 [字体:大 中 小] <script src="http ...

  9. 网上特工网络监控系统 v5.65 官网

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

最新文章

  1. 为什么泪水充满了我的眼眶,那是一种从未有过的感伤,
  2. keytool安装tls证书_TLS使用指南(一):如何在Rancher 2.x中进行TLS终止?
  3. 关于java.net.URLEncoder.encode编码问题
  4. 麟龙指标通达信指标公式源码_通达信指标公式源码单阳不破主图指标公式
  5. Windows7下注册OCX的注意事项
  6. Java实训项目2:GUI学生信息管理系统 - 系统概述
  7. 将数据导入excel表格
  8. 7-19 输出全排列 (20 分)
  9. 水平面天文辐射网络模拟(基于ArcGIS)
  10. Ubuntu下面安装MySQL shell
  11. mysql子查询去重,将MySQL去重操作优化到极致之三弹连发(一):巧用索引与变量...
  12. BXP无盘Windows XP系统好处(转)
  13. 科大讯飞和 Nuance 在语音识别技术上各有长项和短处?
  14. Spark面试题(2)
  15. 【C++】促销商品的折扣计算
  16. Android 调用相机拍照并保存
  17. 【操作系统】第2章 进程与线程
  18. CMD中的用户名和自己账户名不一致
  19. 红米android10参数,红米note9详细参数表_红米note9参数配置详情
  20. linux开组态软件,基于嵌入式Linux的组态软件实时数据库的设计

热门文章

  1. 使用PIL为图片添加水印[python]
  2. 使用supermap实现轨迹动态回放功能
  3. flutter拍照、拍摄短视频、选择图片
  4. 微软研究团队成员自曝删改不利数据,量子计算重大进展是假的
  5. 鸿翼ECM文档云:让远程办公更便捷,提升企业办公效率
  6. 2022就业季!Adobe助力创意产业工作者,突破技能桎梏,回归能力本源
  7. oracle随笔录3.24
  8. 逼真版仿英雄联盟纯html+css+jqueryLOL网页版
  9. 快应用开发快速上手及简明教程
  10. 读《证券市场基础知识》(2012)-2 [通读篇]