Bosun SSL Certs Caducidad


Ejemplo

Estos datos son recopilados por http_unit y scollector. Advierte cuando una alerta expirará dentro de una cierta cantidad de días, y luego se vuelve crítica si el certificado ha pasado la fecha de vencimiento. Esto sigue el valor predeterminado recomendado de advertir y uso crítico en Bosun (advertir: algo va a fallar, crit: algo ha fallado).

Plantilla def

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>
    `
}

Definición de alerta

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
}

Explicación de alerta

  • q(..) ( func doc ) libera OpenTSDB, uno de los backends soportados por Bosun. En devuelve un tipo llamado seriesSet (que es un conjunto de series de tiempo, cada una identificada por etiqueta).
  • last() ( func doc ) toma el último valor de cada serie en seriesSet y devuelve un numberSet.
  • La métrica, hu.cert.expires . está devolviendo la marca de tiempo de Unix de cuando el certificado expirará
  • epoch() ( func doc ) devuelve la marca de tiempo de Unix actual. Por lo tanto, restar la marca de tiempo de Unix actual de la época de vencimiento es el tiempo restante.
  • d() ( func doc ) devuelve el número de segundos representados por la cadena de duración, la cadena de duración utiliza las mismas unidades que OpenTSDB.

Vista previa de la notificación

introduzca la descripción de la imagen aquí

Sección de ejemplo de scollector.toml referencia a la configuración para casos de prueba httpunit :

[[HTTPUnit]]
  TOML = "/opt/httpunit/data/httpunit.toml"