Bosun Шаблон заголовка


пример

В шаблонах Bosun можно ссылаться на другие шаблоны. Для уведомлений по электронной почте у вас может быть шаблон заголовка, чтобы показывать все, что вы хотите во всех предупреждениях.

Шаблон заголовка

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

Пояснения:

  • <style>... : Хотя блоки стиля не поддерживаются в электронной почте, bosun обрабатывает блоки стиля, а затем встраивает их в html. Таким образом, это общий CSS для любых шаблонов, которые включают этот шаблон.
  • Ссылка .Ack приведет вас к представлению Bosun, где вы можете подтвердить оповещение. Ссылка .Rule приведет вас к редактору правил .Rule устанавливая шаблон, правило и время предупреждения, чтобы вы могли модифицировать предупреждение или запускать его в разное время.
  • {{if .Group.host}}... : .Group - это набор тегов для предупреждения. Поэтому, когда выражение warn или crit имеет теги, такие как host = *, мы знаем, что предупреждение относится к конкретному хосту в нашей среде. Поэтому мы показываем некоторые ссылки на конкретные вещи.
  • Имя и ключ оповещения включены для обеспечения того, чтобы по крайней мере самая основная информация находилась в любом предупреждении
  • .Alert.Vars.notes это включено, поэтому, если в любом предупреждении кто-то определяет переменные $notes они будут отображаться в предупреждении. Это побуждает людей писать заметки, объясняющие цель предупреждения и способы его интерпретации.
  • .Alert.Vars.additionalNotes есть в случае, если мы хотим определить макрос с нотами, а затем иметь экземпляры этого макроса с большим количеством заметок, добавленных к макрозаменам.