首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法使用prometheus来监控kubernetes中的tls证书?

有没有办法使用prometheus来监控kubernetes中的tls证书?
EN

Stack Overflow用户
提问于 2020-08-02 01:20:43
回答 3查看 2.9K关注 0票数 4

我想在Kubernetes中使用Prometheus监控我的tls证书,并在grafana中获得一个仪表板。我希望监视证书的过期时间,并希望在证书将在30天后过期时收到警报。我做了很多研究,终于找到了https://github.com/enix/x509-exporter。我该如何使用它?有没有其他有效的方法来监控证书的过期时间?

EN

回答 3

Stack Overflow用户

发布于 2020-08-02 01:58:49

免责声明:我还没有尝试过这个。根据我的理解,只是给出一些建议。

自述文件看起来有点不对劲。你需要做的第一件事就是创建一个github问题,不用担心我提出了一个here

根据我的理解和参考usage section,我列出了下面的步骤。

  • 使用他们的official docker image并将其作为部署部署在k8s上。
  • 检查用于创建部署的示例k8s yaml文件。另请注意,部署yaml应挂载存储所有k8s证书的主机目录。
  • 根据documentation,证书通常位于

部署yaml应包含一个command,您可以在其中使用其他必要选项将导出器指向证书所在的目录。像这样的

代码语言:javascript
运行
复制
command: ["x509-exporter"]
args: ["-d", "/etc/kubernetes/pki", "-p", "8091", "--debug"]

注意:这里我在调试模式下在端口8091上运行exporter,记得公开这个端口。

  • 在prometheus配置中,添加x509-exporter端点作为目标,以抓取指标,并通过在Grafana仪表板中创建图形来绘制这些指标。
票数 4
EN

Stack Overflow用户

发布于 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:

代码语言:javascript
运行
复制
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 }}'
票数 3
EN

Stack Overflow用户

发布于 2020-09-28 05:35:36

官方prometheus/blackbox_exporter已经有ssl证书过期信息。

代码语言:javascript
运行
复制
 Name: "probe_ssl_earliest_cert_expiry",
 Help: "Returns earliest SSL cert expiry date",

所以你需要做的就是:

要监视的域的

  1. 设置blackbox_exporter和探测规则。

您可以查看我的项目kehao95/helm-prometheus-exporter以通过helm chart安装blackbox_exporter。

  • 配置规则用于监视证书过期。

您可以这样配置您的运算符:(假设您使用的是prometheus- prometheusRule )

代码语言:javascript
运行
复制
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: critical
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63208043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档