使用 Telegraf 监控 TLS 证书

导航至

我们都经历过。你坐在办公室食堂吃午饭,突然注意到一群人匆匆走过,互相询问是否在手机上检查了网站。只是一部手机吗?哦,你的手机也是。也许是 WiFi... 他们用 4G 检查...

面孔慢慢转向你的方向,眼神尴尬地相遇。你感觉到手机在口袋里震动... 不止一次。生产不能停机,你想。我的寻呼机没有响... 一切肯定都很好,他们搞糊涂了;对吗?

哦,糟糕。x509 / TLS 证书已过期,世界上没有人可以浏览我们备受瞩目的 24x7 全球超级惊人的网站。

虽然操作员和开发人员通常会使用我们非常珍视的指标(RED/USE/4 黄金信号)来监控他们的系统,但经常会忽略一些非常简单的事情——我们用来交付网站、用于验证微服务或针对 Kubernetes API 进行身份验证的 x509 证书。

幸运的是,我们为您提供了保障!Telegraf 多年来一直拥有 x509_cert 插件,并且设置起来非常容易。

配置插件

x509_cert 输入插件支持本地和远程 x509 端点。因此,无论您是在 Kubernetes 集群上以 daemonset 形式运行 Telegraf、监控本地证书目录,还是运行单个实例以从用户角度监控您的证书;我们都为您提供了保障。

[[inputs.x509_cert]]
    sources= ["https://www.example.org:443", "/etc/tls/certs/www.example.org"]

可用指标

现在我们已经让 Telegraf 收集并将我们的 x509 指标发送到 InfluxDB,我们可以开始构建查询以在证书过期时发出警报。幸运的是,这几乎与配置插件一样简单。

SELECT (expiry / 60 / 60 / 24) as "expiry" FROM "telegraf"."autogen"."x509_cert"

这将返回每个证书到期前的天数。

Telegraf 提供以下标签来过滤或添加到您的警报中

  • common_name
  • country
  • locality
  • organization
  • organizational_unit
  • province
  • source

如果您已将 Telegraf 配置为将主机名添加到每个指标中,那么主机名也将可用。请务必仅在以 daemonset 形式或在裸机上运行 Telegraf 时使用此功能。

Telegraf 使监控这些证书变得非常简单,任何人都不应再次措手不及。