prometheus使用blackbox_exporter监控网站状态并实现报警

2,452次阅读
没有评论

共计 1684 个字符,预计需要花费 5 分钟才能阅读完成。

背景需求:公司网站因状态码异常或 SSL 证书过期等问题,导致需要人工介入处理,

效率低且对客户影响较大。因此,亟需一个监控系统来实时检测网站异常,提升响应效率, 并减少对客户的影响。


下面我们就来介绍下相关安装配置过程。

下载成功后台解压,我是解压到了 /usr/local
然后使用 systemctl 启动
vim /etc/systemd/system/blackbox_exporter.service
[Unit]
Description=blackbox_exporter
After=network.target

[Service]
WorkingDirectory=/usr/local/blackbox_exporter
ExecStart=/usr/local/blackbox_exporter/blackbox_exporter --config.file=/usr/local/blackbox_exporter/blackbox.yml
[Install]
WantedBy=multi-user.target

配置文件信息如下:

vim blackbox.yml
modules:
  http_2xx:
    prober: http
    timeout: 30s
    http:
      preferred_ip_protocol: "ip4"
      tls_config:
        insecure_skip_verify: true

然后启动 blackbox_exporter

systemctl daemon-reload
systemctl start blackbox_exporter

接入到 prometheus

在配置文件 prometheus.yml 中加入
- job_name: 'bhpc_blackbox_http_2xx'
    metrics_path: /probe
    params:
      module: [http_2xx]
    file_sd_configs:
      - files:
        - /usr/local/prometheus/configs/http_exporter.yml
        refresh_interval: 60s
    scrape_interval: 45s
    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

然后 reload prometheus 就可以看到加入到相关 job

vim http_exporter.yml 
- targets: ['https://www.g6k.cn/']
  labels:
    services: "测试"
    env: httpstatus

配置报警条件

vim http.yml 
groups:
- name: Http-Alert
  rules:
  - alert: "HTTP 的探测异常" 
    expr: probe_http_status_code >= 400 or probe_http_status_code == 0
    for: 1m 
    labels:
      severity: httpstatus
    annotations: 
      description: "http 状态异常, 当前值 {{$value}}"

  - alert: Web 访问响应响应时间 >30s
    expr: probe_duration_seconds >= 30
    for: 5m
    labels:
      severity: 'httpstatus'
    annotations:
      summary: Web 响应异常 {{$labels.instance}}

  - alert: "SSL 过期通知" 
    expr: (probe_ssl_earliest_cert_expiry{}-time())/3600/24 < 7
    for: 1m 
    labels:
      severity: httpstatus
    annotations: 
      description: "SSL 周内过期, 当前值 {{$value}}"

然后接入到 grafana

接入图标 id 为 13659
效果如下
prometheus 使用 blackbox_exporter 监控网站状态并实现报警

 

微信扫描下方的二维码阅读本文

正文完
 0
yx
版权声明:本站原创文章,由 yx 于2024-08-14发表,共计1684字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码

bttech

文章搜索
一言一句话
-「
随机文章
elasticsearch7.8.0索引备份到阿里云oss以及恢复

elasticsearch7.8.0索引备份到阿里云oss以及恢复

背景需求,阿里云新建了一套 elk 但是数据需要进行迁移备份, 解决方案使用 logstash 迁移很慢,10...
MacBook Pro M4 关闭swap

MacBook Pro M4 关闭swap

Swap 是将磁盘虚拟为内存来用的,所以速度肯定比不上扎扎实实的内存的。我是 16G 内存,对于我平时使用完全...
降本增效之-自建k8s监控体系

降本增效之-自建k8s监控体系

使用阿里云 ack, 如果使用阿里云的监控体系一个月是需要几百块钱的监控费用,为了节约这笔费用。使用开源的 p...
ubuntu20 TeslaT4 安装stable diffusion-webui

ubuntu20 TeslaT4 安装stable diffusion-webui

升级系统 执行 nvidia-smi 查看是否安装了相关驱动 如果执行 nvidia-smi 没有相关命令就需...
降本增效之-应用部署到k8s

降本增效之-应用部署到k8s

之前应用都采用了传统的服务器部署,很多服务器都会有内存或者 cpu 浪费的情况。把所有的服务准备都迁移到 k8...