Bosun Modello di intestazione


Esempio

Nei modelli Bosun possono fare riferimento ad altri modelli. Per le notifiche email, potresti avere un modello di intestazione per mostrare le cose che desideri in tutti gli avvisi.

Modello di intestazione

template header {
    body = `
    <style>
    td, th {
        padding-right: 10px;
    }
    </style>
    <p style="font-weight: bold; text-decoration: underline;">
        <a style="padding-right: 10px;" href="{{.Ack}}">Acknowledge</a>
        <a style="padding-right: 10px;" href="{{.Rule}}">View Alert in Bosun's Rule Editor</a>
        {{if .Group.host}}
            <a style="padding-right: 10px;" href="https://status.stackexchange.com/dashboard/node?node={{.Group.host}}">View {{.Group.host}} in Opserver</a>
            <a href="http://kibana.ds.stackexchange.com/app/kibana?#/discover?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-15m,mode:quick,to:now))&_a=(columns:!(_source),index:%5Blogstash-%5DYYYY.MM.DD,interval:auto,query:(query_string:(analyze_wildcard:!t,query:'logsource:{{.Group.host}}')),sort:!('@timestamp',desc))">View {{.Group.host}} in Kibana</a>
        {{end}}
    </p>
    <table>
        <tr>
            <td><strong>Key: </strong></td>
            <td>{{printf "%s%s" .Alert.Name  .Group }}</td>
        </tr>
        <tr>
            <td><strong>Incident: </strong></td>
            <td><a href="{{.Incident}}">#{{.Last.IncidentId}}</a></td>
        </tr>
    </table>
    <br/>
    {{if .Alert.Vars.notes}}
        <p><strong>Notes:</strong> {{html .Alert.Vars.notes}}</p>
    {{end}}
    {{if .Alert.Vars.additionalNotes}}
        <p>
        {{if not .Alert.Vars.notes}}
            <strong>Notes:</strong>
        {{end}}
        {{ html .Alert.Vars.additionalNotes }}</p>
    {{end}}
    `
}

spiegazioni:

  • <style>... : Sebbene i blocchi di stile non siano supportati nei messaggi di posta elettronica, bosun elabora i blocchi di stile e li incorpora nell'html. Quindi questo è css condiviso per tutti i modelli che includono questo modello.
  • Il collegamento .Ack ti porta a una vista Bosun in cui puoi riconoscere l'avviso. Il collegamento .Rule ti porta all'editor delle regole di Bosun impostando il modello, la regola e l'ora .Rule modo da poter modificare l'avviso o eseguirlo in momenti diversi.
  • {{if .Group.host}}... : .Group è il tagset dell'avviso. Quindi, quando l'espressione warn o crit ha tag come host = *, sappiamo che l'avviso è in riferimento a un host specifico nel nostro ambiente. Quindi mostriamo alcuni link per ospitare cose specifiche.
  • Il nome e la chiave dell'avviso sono inclusi per garantire che almeno le informazioni di base siano in qualsiasi avviso
  • .Alert.Vars.notes questo è incluso quindi se in qualsiasi avviso qualcuno definisce le variabili $notes verrà mostrato nell'avviso. Incoraggia le persone a scrivere note che spiegano lo scopo della segnalazione e come interpretarla.
  • .Alert.Vars.additionalNotes ci sono nel caso in cui vogliamo definire una macro con note, e quindi avere istanze di quella macro con più note aggiunte alle note macro.