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"