SSL Certs 即将到期
此数据由 http_unit 和 scollector 收集。当警报在一定天数内到期时,它会发出警告,如果证书已经过了失效日期,则会发出警报。这遵循了 Bosun 中警告和暴击使用的推荐默认值(警告:某些事情将失败,暴击:某些事情已经失败)。
模板定义
template ssl.cert.expiring {
subject = {{.Last.Status}}: SSL Cert Expiring in {{.Eval .Alert.Vars.daysLeft | printf "%.2f"}} Days for {{.Group.url_host}}
body = `
{{ template "header" . }}
<table>
<tr>
<td>Url</td>
<td>{{.Group.url_host}}</td>
</tr>
<tr>
<td>IP Address Used for Test</td>
<td>{{.Group.ip}}</td>
</tr>
<tr>
<td>Days Remaining</td>
<td>{{.Eval .Alert.Vars.daysLeft | printf "%.2f"}}</td>
</tr>
<tr>
<td>Expiration Date</td>
<td>{{.Last.Time.Add (parseDuration (.Eval .Alert.Vars.hoursLeft | printf "%vh")) }}</td>
</tr>
</table>
`
}
警报定义
alert ssl.cert.expiring {
template = ssl.cert.expiring
ignoreUnknown = true
$notes = This alert exists to notify of us any SSL certs that will be expiring for hosts monitored by our http unit test cases defined in the scollector configuration file.
$expireEpoch = last(q("min:hu.cert.expires{host=ny-bosun01,url_host=*,ip=*}", "1h", ""))
$hoursLeft = ($expireEpoch - epoch()) / d("1h")
$daysLeft = $hoursLeft / 24
warn = $daysLeft <= 50
crit = $daysLeft <= 0
warnNotification = default
critNotification = default
}
警报说明
q(..)
( func doc )将 OpenTSDB 作为博世支持的后端之一。返回一个名为 seriesSet 的类型(它是一组时间序列,每个都由标记标识)。last()
( func doc )获取 seriesSet 中每个系列的最后一个值并返回一个 numberSet。- 指标,
hu.cert.expires
。返回证书过期时的 Unix 时间戳 epoch()
( func doc )返回当前的 unix 时间戳。因此,从到期时期中减去当前的 unix 时间戳给出的是剩余时间。d()
( func doc )返回持续时间字符串表示的秒数,持续时间字符串使用与 OpenTSDB 相同的单位 。
通知预览
http://i.stack.imgur.com/xivKg.jpg
实施例 scollector.toml
引用为配置第 httpunit 的测试用例:
[[HTTPUnit]]
TOML = "/opt/httpunit/data/httpunit.toml"