AI+运维提效,ssl-cert-monitoring(SSL证书监控系统)2.0开发完毕

2.0版本使用AI开发了前端面板dashboard,增加了如下功能:

1.通过dashboard可以快速添加需要监控的URL,并立即生效。

2.将告警列表同步到dashboard中,可快速查看是否有告警

3.前端采用用户名+密码+图形码登录

4.前端的用户名,密码可以在docker-compose.yml中自定义。

5.容器端口暴露了前端面板48080,prometheus49090,grafana 43000

6.证书监控间隔支持自定义,默认为180s,监控超时30s

7.支持在面板上,删除URL目标,修改URL目标,禁用URL目标

8.证书有效期小于30天,中危告警,证书有效期低于7天,高危告警

9.支持公网域名证书

10.支持内网IP证书,内网域名证书等

11.告警是通过alertmanager进行推送,请自行配置邮箱告警或飞书、钉钉告警等

注:docker-compose 里面grafana和dashboard的密码均为弱密码,如有安全要求,请自行修改强密码。

1.安装部署

bash 复制代码
git clone https://github.com/eagle-qi/ssl-cert-monitoring.git
cd ssl-cert-monitoring
docker-compose up -d --build

2.登录前端

2.1登录页面

2.2仪表盘

2.3证书列表

2.4告警管理

2.5目标管理

2.6添加目标

2.7删除目标,修改目标,禁用目标均可以在面板上操作

3.登录grafana证书监控

如果您习惯使用grafana,我做了一款dashboard SSL证书监控看板,可以查看证书有效期

3.1查看SSL证书监控看板

3.2查看SSL证书告警规则

3.3查看SSL证书监控告警规则文件

bash 复制代码
cat ssl_cert_alerts.yml

# Alert Rules for SSL Certificate Monitoring
# Save this to: prometheus/ssl_cert_alerts.yml

groups:
  - name: ssl_cert_alerts
    interval: 30s
    rules:
      # Alert when certificate check fails (连接失败)
      - alert: SSLCertCheckFailed
        expr: ssl_cert_check_success == 0
        for: 1m
        labels:
          severity: warning
          alert_type: ssl_cert
        annotations:
          summary: "SSL证书检查失败 - {{ $labels.hostname }}"
          description: "无法获取 {{ $labels.hostname }}:{{ $labels.port }} 的SSL证书. 负责人: {{ $labels.owner }}"
          owner: "{{ $labels.owner }}"
          service: "{{ $labels.service_name }}"

      # Alert when certificate expires in 30 days (使用自定义exporter指标)
      - alert: SSLCertExpiringWarning
        expr: (ssl_cert_not_after_timestamp - time()) / 86400 < 30 and ssl_cert_check_success == 1
        for: 5m
        labels:
          severity: warning
          alert_type: ssl_cert
        annotations:
          summary: "SSL证书即将过期 - {{ $labels.hostname }}"
          description: "{{ $labels.hostname }} ({{ $labels.service_name }}) 证书将在 {{ $value | humanizeDuration }} 后过期. 负责人: {{ $labels.owner }}"
          owner: "{{ $labels.owner }}"
          service: "{{ $labels.service_name }}"
          env: "{{ $labels.env }}"

      # Alert when certificate expires in 7 days (严重)
      - alert: SSLCertExpiringCritical
        expr: (ssl_cert_not_after_timestamp - time()) / 86400 < 7 and ssl_cert_check_success == 1
        for: 2m
        labels:
          severity: critical
          alert_type: ssl_cert
        annotations:
          summary: "SSL证书严重警告 - {{ $labels.hostname }}"
          description: "{{ $labels.hostname }} ({{ $labels.service_name }}) 证书将在 {{ $value | humanizeDuration }} 后过期! 请立即处理! 负责人: {{ $labels.owner }}"
          owner: "{{ $labels.owner }}"
          service: "{{ $labels.service_name }}"
          env: "{{ $labels.env }}"

      # Alert when certificate has expired
      - alert: SSLCertExpired
        expr: ssl_cert_not_after_timestamp < time() and ssl_cert_check_success == 1
        for: 1m
        labels:
          severity: critical
          alert_type: ssl_cert
        annotations:
          summary: "SSL证书已过期 - {{ $labels.hostname }}"
          description: "{{ $labels.hostname }} ({{ $labels.service_name }}) 证书已过期! 请立即更新! 负责人: {{ $labels.owner }}"
          owner: "{{ $labels.owner }}"
          service: "{{ $labels.service_name }}"
          env: "{{ $labels.env }}"
相关推荐
CDN3601 小时前
告别TCP队头阻塞!HTTP/3与QUIC协议在2026年的实战落地
网络协议·tcp/ip·http
星辰_mya1 小时前
Docker “超级大厨”
运维·docker·容器·面试·架构
码云骑士1 小时前
jwt入门介绍
linux·运维·数据库
原来是猿1 小时前
JSON 序列化与反序列化 —— 用 Jsoncpp 打造自己的网络协议
网络·网络协议·json
身如柳絮随风扬1 小时前
RPC 深度解析:从原理到实践,一篇讲透远程过程调用
网络协议·rpc
!沧海@一粟!2 小时前
NAT映射回流解决内网通过公网映射访问内部服务器
运维·网络
灵晔君2 小时前
【Linux】进程(一)
linux·运维·服务器
李日灐2 小时前
< 9 > Linux 进程:进程状态 + 进程切换 + 附带常用指令(jobs / fg / kill / ps)
linux·运维·服务器·后端·面试·进程状态
无忧.芙桃2 小时前
硬核拆解:Linux动态库从原理到实战
linux·运维·服务器