概述: 监控体系介绍
什么是白盒与黑盒监控?
墨盒监控 黑盒监控指的是以用户的身份测试服务的运行状态。常见的黑盒监控手段包括 HTTP 探针、TCP 探针、DNS 探测、ICMP 等。黑盒监控常用于检测站点与服务可用性、连通性,以及访问效率等。 白盒监控 白盒监控一般指的是我们日常对服务器状态的监控,如服务器资源使用量、容器的运行状态、中间件的稳定情况等一系列比较直观的监控数据,这些都是支撑业务应用稳定运行的基础设施。
Prometheus 黑盒监控组件Blackbox_exporter 介绍:
Blackbox Exporter 在黑盒健康方面。Blackbox Exporter 是 Prometheus 社区提供的官方黑盒监控解决方案,其允许用户通过:HTTP、HTTPS、DNS、TCP 以及 ICMP 的方式对网络进行探测,目前我司相关业务监控接口也是基于 Blockbox 来进行的,下面我们开始介绍下相关的应用场景
Blackbox_exporter 应用场景
HTTP 测试
定义 Request Header 信息
判断 Http status / Http Respones Header / Http Body 内容
TCP 测试
业务组件端口状态监听
应用层协议定义与监听
ICMP 测试
主机探活机制
POST 测试
接口联通性
SSL 证书过期时间
Blackbox_exporter 模块ICMP 场景
可以通过 ping(icmp) 检测服务器的存活,在 blackbox.yml 配置文件中配置使用 icmp module:
modules:
icmp:
prober: icmp
prometheus 监控系统配置文件prometheus.yml 添加对应监控任务
-job_name: 'blackbox-ping’
metrics_path:/probe
params:
modelus: [icmp]
static_configs:
-targets:
-_172.16.1.6 #被监控设备端ip
-_172.16.1.7 #被监控设备端ip
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 #blackbox-exporter 所在的机器和端囗
Blackbox Exporter 使用案例:TCP 场景
TCP 测试(监控主机端口存活状态) 在 blackbox.yml 配置文件中配置使用 tcp module
modules:
tcp_connect:
prober: tcp
prometheus 监控系统配置文件prometheus.yml 添加对应监控任务
-job_name: 'blackbox-tcp’
metrics_path: /probe
params:
modelus: [tcp_connect]
static_configs:
-targets:
-_172.16.1.6:6443
-_172.16.1.7:6443
relabel_configs:
-source_labels:[address]
target_label:_param_target
-source labels: [_param_target]
target_label: instance
-target label: address
replacement: 172.16.1.4:9115
Blackbox Exporter 使用案例:HTTP 场景
在 blackbox.yml 配置文件中配置使用 http module
modules:
http_2xx:
prober: httphttp:
method: GET
http_post_2xx:
prober: http
http:
method: POST
prometheus 监控系统配置文件prometheus.yml 添加对应监控任务
-job name:'blackbox-http’
metrics_path: /probe
params:
modelue: [http_2xx]
static configs:
-targets:
-访问monitor.a.com/login
relabel_configs:
-source_labels: address
target_label: param_target
source_labels:[param_target]
target_label: instance
target_label: address
replacement: 172.16.1.4:9115 #blackbox-exporter所在的机器和端口
Blackbox Exporter 获取监控数据含义解读
#DNS解析时间,单位s
probe_dns_lookup_time_seconds 0.000199211
#探测从开始到结束的时间,单位s,请求这个页面响应时间
probe_duration_seconds 0.010889013
HELP probe failed due to regex Indicates if probe failed due to regex
#TYPE probe failed due to regex gauge
probe_failed_due to regex 0
#HTTP内容响应的长度
probe_http_content_length -1
#按照阶段统计每阶段的时间
probe_http_duration_seconds{phase="connect"}0.001083552 #连接时间
probe_http_duration_seconds{phase="processing"}0.008365783 #处理请求的时间
probe_http_duration_seconds{phase="resolve"}0.000199123 #响应时闻
#校验证书的时间probe_http_duration_seconds{phase="tls"} 0
probe_http_duration_secondsiphase="transfer"10.000446111 #传输时间
#重定向的次数
probe_http_redirects 0
#ssl指示是否将SSL用于最终重定向
probe_http_ssl 0
#返回的状态码
probe_http_status_code 200
#未压缩的响应主体长度
probe_http_uncompressed_body_length 1766
#http协议的版本
probe_http_version_1.1## HELP probe ip addr hash Specifies the hash of iP address. it's useful to detect if the iP address changes.probe ip addr hash 3.24030434e+09
#使用的ip协议的版本号
probe_ip_protocol 4
#是否探测成功
probe_success 1
总结:
黑盒监控与白盒健康检查的最大不同点在于它们监测系统健康状态的角度和深度。
·黑盒监控:
1、黑盒监控是从外部观察系统的运行状态,就像一个真实的用户或客户端一样。它通过发送请求并接收响应来判断系统是否正常运作,而不考虑系统的内部架构或具体实现。
2、这种监控方式主要关注系统的可用性和响应时间,例如,能否成功访问网站、API接口是否能正确响应等
3、黑盒监控的优点是实施简单,不需要深入理解系统内部,可以快速部署,但缺点是可能无法发现深层次的性能瓶颈或内部错误。
·白盒健康检查:
1、白盒健康检查则深入系统内部,检查其内部状态和资源使用情况。这包括但不限于内存使用、CPU负载、磁盘I/0、网络流量、线程状态、数据库连接数等。
2、这种检查方式能够更全面地评估系统的健康状况,及时发现潜在的性能问题或配置错误。
3、白盒健康检査的优点是可以提前预警系统可能出现的问题,避免故障发生:但需要对系统有深入的理解,目可能涉及更多的系统资源消耗。
总的来说,黑盒监控更适合于快速验证系统的外部表现,而白盒健康检查则更侧重于深入系统内部,确保其长期稳定运行。在实际应用中,两者往往结合使用,以达到最佳的监控效果。