

微信改版了,现在看到我们全凭缘分,为了不错过【全栈工程师修炼指南】重要内容及福利,大家记得按照上方步骤设置「接收文章推送」哦~
关注回复【学习交流群】加入【SecDevOps】学习交流群!
前言简述:
从本章开始,作者将主要针对企业中主机系统(Linux、Windows)、K8S集群节点与Pod、网站服务(http、dns)、数据库、网络安全设备进行指标采集与监控预警进行实践记录,我将从基础环境安装,到目标对象的监控,以及目标监控指标的可视化展示和目标预警规则的设置几方面入手。
让看友可以更随着我快速的进行实践操作,为数字企业转型舔砖加瓦,全面迎接云原生环境下的企业内部监控预警和展示,至此也希望大家多多支持此《#云原生落地实用指南》专栏,作者将会持续更新云原生下Prometheus的监控和等保下企业内部日志收集实践,我相信你看了此系列专栏必定会有所收获。
此篇文章,将开始主要讲解云原生环境下,如何使用Prometheus监控之blackbox_exporter导出器,来采集企业内部或者外部的业务系统站点以及网站证书过期时间,然后编写预警规则,并使用Altermanager进行告警通知,废话不多说,实践出真知。,废话不多说,实践出真知。
实践效果:
图1.blackbox 导出器采集监控目标
图2.
.
blackbox
导出器采集指标可视化展示

图4.使用Altermanager针对采集指标进行告警
文章目录:

描述: blackbox 导出器允许通过HTTP/HTTPS(网站可用性)、DNS(域名解析)、TCP(端口存活)、ICMP(主机存活检测)和gRPC对端点进行黑盒探测。
项目地址: https://github.com/prometheus/blackbox_exporter
温馨提示:blackbox_exporter 通常有两种安装方式,方式一是通过系统的systemd进行管理使用(文章末尾附上安装脚本),方式二是通过容器进行安装使用。
由于此处我们主要是在云原生的K8S环境中,所以此处作者选用后者进行演示,注意此处是在上一篇文章《Ops实践 | 从零开始,搭建云原生环境下企业监控预警可视化平台》基础之上进行的,所以请还没有配置相关环境的童鞋再参考一下。
操作步骤:
Step 1.安装前置准备工作。
- # 创建相关配置目录
- mkdir -vp /storage/app/monitoring/blackbox_exporter
- mkdir -vp /storage/app/monitoring/prometheus/exporter
-
- # 拉取
- docker pull quay.io/prometheus/blackbox-exporter:latest
- docker tag quay.io/prometheus/blackbox-exporter:latest harbor.cloud/weiyigeek/blackbox-exporter:20231108
-
- # 上传
- docker push harbor.cloud/weiyigeek/blackbox-exporter:20231108
Step 2.创建 blackbox_exporter 相关模块配置文件, 可以使用icmp、tcp、grpc、dns、http/https(get|post)以及http_oauth_client_credentials 等相关操作。
- tee /storage/app/monitoring/blackbox_exporter/blackbox.yaml <<'EOF'
- modules:
- icmp:
- prober: icmp
- timeout: 5s
- icmp:
- preferred_ip_protocol: "ip4"
- tcp:
- prober: tcp
- timeout: 5s
- tcp_tls:
- prober: tcp
- timeout: 5s
- tcp:
- tls: true
- grpc:
- prober: grpc
- grpc:
- tls: true
- preferred_ip_protocol: "ip4"
- dns:
- prober: dns
- timeout: 5s
- dns:
- query_name: "www.weiyigeek.top"
- query_type: "A"
- valid_rcodes:
- - NOERROR
- http_get:
- prober: http
- timeout: 5s
- http:
- valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]
- valid_status_codes: [200]
- method: GET
- headers:
- User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0"
- tls_config:
- insecure_skip_verify: false
- preferred_ip_protocol: "ip4" # Defaults to "ip6"
- http_post:
- prober: http
- timeout: 5s
- http:
- valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]
- valid_status_codes: [200]
- method: POST
- headers:
- User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0"
- Content-Type: application/json
- body: '{}'
- fail_if_not_ssl: false
- tls_config:
- insecure_skip_verify: false
- preferred_ip_protocol: "ip4" # defaults to "ip6"
- ip_protocol_fallback: false # no fallback to "ip6"
- http_basic_auth:
- prober: http
- timeout: 5s
- http:
- method: POST
- headers:
- Host: "login.weiyigeek.top"
- basic_auth:
- username: "username"
- password: "mysecret"
- http_oauth_client_credentials:
- prober: http
- timeout: 5s
- http:
- valid_http_versions: ["HTTP/1.1", "HTTP/2"]
- follow_redirects: true
- preferred_ip_protocol: "ip4"
- valid_status_codes:
- - 200
- - 201
- oauth2:
- client_id: "client_id"
- client_secret: "client_secret"
- token_url: "https://api.weiyigeek.top/token"
- endpoint_params:
- grant_type: "client_credentials"
- EOF
Step 3.创建部署blackbox的deployment资源清单文件