使用Telegraf监控TLS证书
作者:David Flanagan / 用例,开发者
2019年4月25日
导航至
我们都有过这样的经历。你坐在办公室食堂吃午餐,注意到一群人匆匆走过,互相要求在手机上查看网站。是只有一部手机吗?哦,也是你的手机。也许是WiFi……他们在4G上查看……
人们的面孔慢慢转向你,目光尴尬地相遇。你感觉到手机在口袋里震动……不只一次。你不能认为生产会中断,你认为。我的呼叫器没有响……一切必须都很好,他们困惑;对吗?
哎呀。x509 / TLS证书已过期,世界上没有人可以浏览我们这个高调的、24x7、全球性的、超级棒网站。
虽然操作员和开发者通常会监控系统,使用我们珍视的度量标准:RED/USE/4 Golden Signals,但有些如此简单的事情常常被忽视——我们提供网站、用于认证微服务或用于认证Kubernetes API的x509证书。
幸运的是,我们为您提供了解决方案!Telegraf 已经有 x509_cert 插件多年,设置起来非常简单。
配置插件
x509_cert 输入插件支持本地和远程 x509 端点。因此,无论您是在 Kubernetes 集群上运行 Telegraf 作为 daemonset,还是在本地监控证书目录,或者运行单个实例从用户的角度监控证书;我们都为您提供了解决方案。
[[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 使监控这些证书变得极其简单,这样任何人都不再会被突然袭击。