security - K8S - 使用 Prometheus 检查证书验证
问题描述
我需要找到 K8S 集群的证书验证,例如使用警报管理器来通知证书何时到期并发送适当的通知。
我找到了这个repo但不是我不确定如何配置它,目标是什么以及如何实现它?
https://github.com/ribbybibby/ssl_exporter
它基于黑盒导出器
https://github.com/prometheus/blackbox_exporter
- job_name: "ssl"
metrics_path: /probe
static_configs:
- targets:
- 127.0.0.1
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9219 # SSL exporter.
我想检查当前的 K8S 集群(部署 Prometheus 的地方),看看证书是否有效。我应该在 目标内放什么以使其工作?
我需要在集群中公开一些东西吗?
更新 这是系统中出证书的位置
tls:
mode: SIMPLE
privateKey: /etc/istio/bide-tls/tls.key
serverCertificate: /etc/istio/bide-tls/tls.crt
我的情况是:
Prometheus 和 ssl_exporter 在同一个集群中,他们需要检查的证书也在同一个集群中。(见上面的配置)
解决方案
我应该在目标内放什么以使其工作?
我认为自述文件的“目标”部分很清楚:它包含您希望监视器报告的端点:
static_configs:
- targets:
- kubernetes.default.svc.cluster.local:443
- gitlab.com:443
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
# rewrite to contact the SSL exporter
replacement: 127.0.0.1:9219
我需要在集群中公开一些东西吗?
取决于您是否要报告内部证书,或者是否ssl_exporter
可以到达您想要的端点。例如,在上面的代码片段中,我使用 KubeDNS 名称kubernetes.default.svc.cluster.local
并假设ssl_exporter
在集群中作为 Pod 运行。如果这不适用于您,您可能希望将该端点更改为k8s.my-cluster-dns.example.com:6443
或者您的 kubernetes API 正在侦听的任何您kubectl
可以访问的端点。
然后,同样,如果 prometheus 和您的 ssl_exporter 都在集群内运行,那么您将更改为ssl_exporter Pod 支持replacement:
的IP 地址。Service
如果 prometheus 在集群外部而 ssl_monitor 在集群内部,那么您需要创建一个Service
of,type: NodePort
以便您可以将 prometheus 指向一个(或全部?)节点 IP 地址以及NodePort
ssl_exporter 正在侦听的地址
唯一会使用文字127.0.0.1:9219
的情况是 prometheus 和 ssl_exporter 在同一台机器或同一 Pod 上运行,因为从 prometheus 的角度来看,这是 127.0.0.1 有意义的唯一方式
推荐阅读
- rxjs - Angular 11反应形式订阅输入订阅的值变化无限
- javascript - 如何使用 JavaScript 或 jQuery 仅在移动视图上重新排序 li 元素?
- c# - 如何使用不同的参数多次设置相同的方法?
- winapi - 使用 Windows API 设置文件的权限
- android - Flutter Xcode 构建失败:未定义符号:_OBJC_CLASS_$_GeneratedPluginRegistrant
- qr-code - 有没有办法绝对确定访问来自二维码扫描?
- python-3.x - Python从指定发件人的电子邮件中提取链接
- cs-script - CS 脚本和实体框架
- mysql - 高效的数据库架构
- html - 为什么在表格行上应用填充不起作用(这是一个坏主意)