我想在Kubernetes中使用Prometheus监控我的tls证书,并在grafana中获得一个仪表板。我希望监视证书的过期时间,并希望在证书将在30天后过期时收到警报。我做了很多研究,终于找到了https://github.com/enix/x509-exporter。我该如何使用它?有没有其他有效的方法来监控证书的过期时间?
发布于 2020-08-02 01:58:49
免责声明:我还没有尝试过这个。根据我的理解,只是给出一些建议。
自述文件看起来有点不对劲。你需要做的第一件事就是创建一个github问题,不用担心我提出了一个here。
根据我的理解和参考usage section,我列出了下面的步骤。
部署yaml应包含一个command,您可以在其中使用其他必要选项将导出器指向证书所在的目录。像这样的
command: ["x509-exporter"]
args: ["-d", "/etc/kubernetes/pki", "-p", "8091", "--debug"]注意:这里我在调试模式下在端口8091上运行exporter,记得公开这个端口。
发布于 2020-08-02 20:18:56
另一种方法是使用helm图表安装x509-exporter:https://hub.helm.sh/charts/enix/x509-exporter
请参阅此处的文档https://github.com/enix/helm-charts/tree/master/charts/x509-exporter。
您可能还会发现以下prometheus警报规则很有用(基于x509-导出器指标):
check-kubernetes-certificate.rules.yml:
groups:
- name: check-kubernetes-certificate-expiration.rules
rules:
- alert: KubernetesCertificateExpiration
expr: floor((x509_cert_not_after - time()) / 86400) < 90
for: 5m
labels:
severity: warning
annotations:
summary: 'Certificate expiration on `{{ $labels.nb_cluster }}`'
description: 'Certificate `{{ $labels.subject_CN }}` will expire in {{ $value }} days on `{{ $labels.nb_cluster }}`'
- alert: KubernetesCertificateExpirationCritical
expr: floor((x509_cert_not_after - time()) / 86400) < 10
for: 5m
labels:
severity: critical
annotations:
summary: 'Certificate expiration on `{{ $labels.nb_cluster }}`'
description: 'Certificate `{{ $labels.subject_CN }}` will expire in {{ $value }} days on `{{ $labels.nb_cluster }}`'
- alert: KubeletCertificateEmbedded
expr: x509_cert_not_after{filename="kubelet.conf", embedded_kind="user"}
for: 5m
labels:
severity: warning
annotations:
summary: '{{ $labels.instance }}: Embedded certificate in {{ $labels.filename }}'
description: '{{ $labels.nb_cluster }} has kubelet {{ $labels.subject_CN }} running with an embedded certificate in {{ $labels.filepath }}'发布于 2020-09-28 05:35:36
官方prometheus/blackbox_exporter已经有ssl证书过期信息。
Name: "probe_ssl_earliest_cert_expiry",
Help: "Returns earliest SSL cert expiry date",所以你需要做的就是:
要监视的域的
您可以查看我的项目kehao95/helm-prometheus-exporter以通过helm chart安装blackbox_exporter。
您可以这样配置您的运算符:(假设您使用的是prometheus- prometheusRule )
rules:
- alert: TLS certificate expiring
expr: (probe_ssl_earliest_cert_expiry - time())/86400 < 45
labels:
severity: warning
- alert: TLS certificate expiring
expr: (probe_ssl_earliest_cert_expiry - time())/86400 < 30
labels:
severity: criticalhttps://stackoverflow.com/questions/63208043
复制相似问题