使用 Telegraf 监控 TLS 证书
作者:David Flanagan / 用例, 开发者
2019 年 4 月 25 日
导航至
我们都经历过。你坐在办公室食堂吃午饭,突然注意到一群人匆匆走过,互相询问是否在手机上检查了网站。只是一部手机吗?哦,你的手机也是。也许是 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 使监控这些证书变得非常简单,任何人都不应再次措手不及。