BosunErste Schritte mit Bosun

Bemerkungen

Bosun ist ein von Stack Overflow erstelltes Open-Source-, MIT-lizenziertes Überwachungs- und Warnsystem. Es verfügt über eine ausdrucksstarke domänenspezifische Sprache zum Auswerten von Warnungen und zum Erstellen detaillierter Benachrichtigungen. Außerdem können Sie Ihre Alarme anhand historischer Daten testen, um die Entwicklung zu beschleunigen. Weitere Informationen finden Sie unter http://bosun.org/ .

Bosun verwendet eine Konfigurationsdatei, um alle Systemeinstellungen, Makros, Lookups, Benachrichtigungen, Vorlagen und Alertdefinitionen zu speichern. Sie geben die Konfigurationsdatei an, die beim Starten des Servers verwendet werden soll, beispielsweise /opt/bosun/bosun -c /opt/bosun/config/prod.conf . Änderungen an der Datei werden erst nach einem Neustart von bosun aktiviert. Es wird dringend empfohlen, die Datei in der Versionskontrolle zu speichern.

Versionen

Ausführung Veröffentlichungsdatum
0,3,0 13.06.2015
0,4,0 2015-09-18
0,5,0 2016-03-15

Sample Alert

Bosun-Alarme werden in der Konfigurationsdatei mit einem benutzerdefinierten DSL definiert . Sie verwenden Funktionen zur Auswertung von Zeitreihendaten und generieren Warnungen, wenn der Warn- oder der kritische Ausdruck nicht null sind. Warnmeldungen verwenden Vorlagen, um zusätzliche Informationen in die Benachrichtigungen aufzunehmen, bei denen es sich normalerweise um eine E-Mail-Nachricht und / oder eine HTTP-POST-Anforderung handelt.

template sample.alert {
    body = `<p>Alert: {{.Alert.Name}} triggered on {{.Group.host}}
    <hr>
    <p><strong>Computation</strong>
    <table>
        {{range .Computations}}
            <tr><td><a href="{{$.Expr .Text}}">{{.Text}}</a></td><td>{{.Value}}</td></tr>
        {{end}}
    </table>
    <hr>
    {{ .Graph .Alert.Vars.metric }}`

    subject = {{.Last.Status}}: {{.Alert.Name}} cpu idle at {{.Alert.Vars.q | .E}}% on {{.Group.host}}
}

notification sample.notification {
    email = alerts@example.com
}

alert sample.alert {
    template = sample.template
    $q = avg(q("sum:rate:linux.cpu{host=*,type=idle}", "1m"))
    crit = $q < 40
    notification = sample.notification
}

Die Warnung würde eine E-Mail mit dem Betreff Critical: sample.alert cpu idle at 25% on hostname für jeden Host senden, dessen CPU- Critical: sample.alert cpu idle at 25% on hostname Durchschnitt der letzten 1 Minute unter 40% lag. In diesem Beispiel handelt es sich um eine Warnung mit dem Typ "Host", Bosun unterstützt jedoch auch Alarme für Cluster, Datencenter oder globale Bereiche (weitere Informationen finden Sie in der Video-Reihe "Grundlagen").

Beispielkonfigurationsdatei

Hier ist ein Beispiel einer Bosun-Konfigurationsdatei, die in einer Entwicklungsumgebung verwendet wird:

tsdbHost = localhost:4242
httpListen = :8070
smtpHost = localhost:25
emailFrom = bosun@example.org
timeAndDate = 202,75,179,136
ledisDir = ../ledis_data
checkFrequency = 5m

notification example.notification {
        email = alerts@example.org
        print = true
}

In diesem Fall gibt die Konfigurationsdatei an, dass Bosun eine Verbindung zu einer lokalen OpenTSDB-Instanz an Port 4242 herstellen, Anforderungen an Port 8070 (für alle an den Host gebundenen IP-Adressen) überwachen soll, das SMTP-System localhost für E-Mails verwenden, zusätzliche Zeitzonen anzeigen und verwenden soll In Ledis anstelle von externen Redis für den Systemstatus und Standardwarnungen im 5-Minuten-Intervall eingebaut.

Die config definiert auch eine beispiel.notification, die Alerts zugewiesen werden kann. Diese werden normalerweise am Ende der Konfigurationsdatei eingefügt (siehe Beispielalarmbeispiel).

Docker-Schnellstart

Die Kurzanleitung enthält Informationen zur Verwendung von Docker zum Aufstellen einer Bosun-Instanz.

$ docker run -d -p 4242:4242 -p 80:8070 stackexchange/bosun

Dadurch wird eine neue Instanz von Bosun erstellt, auf die Sie zugreifen können, indem Sie einen Browser unter http: // docker-server-ip öffnen. Das Docker-Image enthält HBase / OpenTSDB zum Speichern von Zeitreihendaten, den Bosun-Server und Scollector zum Erfassen von Metriken aus dem Bosun-Container. Sie können dann weitere Scollector-Instanzen auf den Bosun-Server verweisen und mit Grafana Dashboards für OpenTSDB- oder Bosun-Metriken erstellen.

Das Stackexchange / Bosun-Image ist nur zum Testen vorgesehen. In der Konfigurationsdatei sind keine Warnmeldungen definiert, und die Daten werden gelöscht, wenn das Andockbild entfernt wird. Dies ist jedoch sehr hilfreich, um ein Gefühl für die Funktionsweise von Bosun zu erhalten. Weitere Informationen zum Erstellen einer Produktionsinstanz von Bosun finden Sie unter http://bosun.org/resources