当前位置: 首页 > java >正文

使用Prometheus监控网站是否正常打开

要使用普罗米修斯监控你的网站主页 http://gyq.com/,可以通过以下步骤实现。普罗米修斯本身并不直接支持 HTTP 状态码的监控,但可以通过 Blackbox Exporter 来完成这项任务。

方案概述

  1. Blackbox Exporter 是一个普罗米修斯官方提供的工具,用于探测网络服务的可用性(如 HTTP、HTTPS、TCP、ICMP 等)。
  2. 通过配置 Blackbox Exporter,可以定期检查你的网站是否能正常访问(HTTP 状态码是否为 200)。
  3. 普罗米修斯会从 Blackbox Exporter 中拉取监控数据,并根据配置设置告警规则。

具体步骤

1. 安装和配置 Blackbox Exporter
  • 下载 Blackbox Exporter

    • 下载地址:Download | Prometheus
    • 找到对应操作系统的版本并下载(例如 Linux amd64)。

2.解压

tar -xvzf blackbox_exporter-*.tar.gz
cd blackbox_exporter-*
  • 编辑 blackbox.yml 文件,添加对 HTTP 的探测模块:

    modules:http_2xx:prober: httptimeout: 5shttp:preferred_ip_protocol: "ip4"valid_http_versions: ["HTTP/1.1", "HTTP/2"]  # 允许的 HTTP 版本valid_status_codes: []  # 默认只允许 2xx 状态码fail_if_ssl: false  # 不强制要求 SSLfail_if_not_ssl: false  # 不强制要求非 SSL
    • 这个配置表示:如果返回的状态码是 2xx,则认为探测成功。
  • 启动 Blackbox Exporter

    nohup ./blackbox_exporter --config.file=blackbox.yml &
2. 配置 Prometheus
  • 修改 Prometheus 配置文件 编辑 prometheus.yml 文件,添加 Blackbox Exporter 的监控任务:

  - job_name: 'gyq.com_monitor'metrics_path: /probeparams:module: [http_2xx]  # 使用 Blackbox Exporter 中定义的模块static_configs:- targets:- http://gyq.com/  # 要监控的目标网址relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.158.183:9115  # Blackbox Exporter 的地址和端口

  • 说明:
    • job_name: 'website_monitor':为这个监控任务命名。
    • metrics_path: /probe:指定 Blackbox Exporter 的探测路径。
    • params.module: [http_2xx]:指定使用的探测模块(即 http_2xx)。
    • targets:填写你要监控的目标 URL(如 http://gyq.com/)。
    • relabel_configs:将目标 URL 转换为 Blackbox Exporter 的参数。

重启 Prometheus

重新加载 Prometheus 配置:

curl -X POST http://localhost:9090/-/reload

或者直接重启 Prometheus 服务。

3. 配置告警规则
  • 编辑告警规则文件 创建或编辑 Prometheus 的告警规则文件

[root@prometheus rules]# pwd
/usr/local/prometheus/rules
[root@prometheus rules]# cat web_rules.yml
groups:- name: web_gyq_comrules:- alert: gyq_com_Downexpr: probe_success == 0for: 5slabels:severity: criticalannotations:summary: "Website {{ $labels.instance }} is down"description: "这个网站 {{ $labels.instance }} 目前打不开了."

注意:以上规则文件需要在 Prometheus配置文件中定义好规则路径,修改yml配置后都需要重启或重新加载才能生效curl -X POST http://localhost:9090/-/reload

验证监控

  1. 访问 Prometheus Web UI 打开浏览器访问 http://<prometheus-ip>:9090,查看以下指标:

    • probe_success:是否为 1(表示探测成功)。
    • probe_duration_seconds:探测耗时。
  2. 模拟网站故障 暂时关闭 http://gyq.com/,观察 Prometheus 和 Alertmanager 是否发出告警。

也可以使用以下命令验证 Blackbox Exporter 是否正常工作默认端口是9115

curl "http://localhost:9115/probe?module=http_2xx&target=http://gyq.com/"

以上都是正常状态

接下来关闭网站模拟故障报警

查看界面Prometheus Web UI 发现probe_success值变成了1,状态为失败。

再看看钉钉收到了监控告警

最后启动Nginx

这个时候查看界面Prometheus Web UI 发现恢复了正常

查看钉钉也收到了恢复消息

http://www.xdnf.cn/news/3973.html

相关文章:

  • Matlab实现基于CNN-GRU的锂电池SOH估计
  • 嵌入式学习笔记 - STM32 SRAM控制器FSMC
  • 从围棋到LabVIEW:快速入门与长期精通
  • Nacos源码—3.Nacos集群高可用分析二
  • Redis从入门到实战——实战篇(下)
  • Linux的时间同步服务器(附加详细实验案例)
  • 三十一、基于HMM的词性标注
  • 相同IP和端口的服务器ssh连接时出现异常
  • 【SaaS多租架构】数据隔离与性能平衡
  • chili3d笔记11 连接yolo python http.server 跨域请求 flask
  • Linux中web服务器的部署及优化
  • 使用OpenCV 和 Dlib 实现疲劳检测
  • 【macOS常用快捷键】
  • Flink流水线任务在线演示
  • C++类和对象之默认成员函数
  • 基于 Spark 和 Hadoop 的空气质量数据分析与预测系统
  • 【AI提示词】AARRR 模型执行者
  • Google-chrome版本升级后sogou输入法不工作了
  • Cisco NDO - Nexus Dashboard Orchestrator
  • 202533 | SpringBoot集成RocketMQ
  • 2025 年 408 真题及答案
  • 深入探索Anthropic Claude与Spring AI的融合应用
  • 虚幻引擎5-Unreal Engine笔记之显卡环境设置使开发流畅
  • 【LaTeX+VSCode本地Win11编译教程】
  • Debezium TableSchemaBuilder详解
  • (一)Modular Monolith Architecture(项目结构/.net项目初始化/垂直切片架构)
  • 洛谷 P1440 求m区间内的最小值
  • 8.5/Q1,Charls高分经典文章解读
  • 【Web3】上市公司利用RWA模式融资和促进业务发展案例
  • Spring Boot多模块划分设计