Bosun Certificati SSL in scadenza


Esempio

Questi dati vengono raccolti da http_unit e scollector. Avvisa quando un avviso sta per scadere entro un certo numero di giorni, quindi diventa critico se il certificato ha superato la data di scadenza. Ciò segue l'impostazione predefinita consigliata di warn e crit in Bosun (attenzione: qualcosa sta per fallire, crit: qualcosa non ha funzionato).

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

Alert Definition

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
}

Spiegazione di avviso

  • q(..) ( func doc ) querties OpenTSDB, uno dei backend supportati da Bosun. In restituisce un tipo chiamato serie Set (che è un insieme di serie temporali, ciascuna identificata dal tag).
  • last() ( func doc ) prende l'ultimo valore di ogni serie nella serie Set e restituisce un numero Set.
  • La metrica, hu.cert.expires . sta restituendo la marca temporale Unix di quando scadrà il certificato
  • epoch() ( func doc ) restituisce il timestamp unix corrente. Quindi sottrarre il timestamp corrente di unix corrente dall'epo di scadenza è il tempo rimanente.
  • d() ( func doc ) restituisce il numero di secondi rappresentati dalla stringa di durata, la stringa di durata utilizza le stesse unità di OpenTSDB.

Anteprima di notifica

inserisci la descrizione dell'immagine qui

Sezione di esempio di scollector.toml riferimento alla configurazione per i casi di test httpunit :

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