BosunAan de slag met Bosun


Opmerkingen

Bosun is een open source, MIT-gelicentieerd, monitoring- en waarschuwingssysteem gecreëerd door Stack Overflow. Het heeft een expressieve domeinspecifieke taal voor het evalueren van meldingen en het maken van gedetailleerde meldingen. Hiermee kunt u ook uw meldingen testen op basis van historische gegevens voor een snellere ontwikkeling. Meer informatie op http://bosun.org/ .

Bosun gebruikt een configuratiebestand om alle systeeminstellingen, macro's, opzoekingen, meldingen, sjablonen en alarmdefinities op te slaan. U geeft het configuratiebestand op dat moet worden gebruikt bij het starten van de server, bijvoorbeeld /opt/bosun/bosun -c /opt/bosun/config/prod.conf . Wijzigingen in het bestand worden pas geactiveerd nadat bosun opnieuw is opgestart en het wordt ten zeerste aanbevolen dat u het bestand opslaat in versiebeheer.

versies

Versie Publicatiedatum
0.3.0 2015/06/13
0.4.0 2015/09/18
0.5.0 2016/03/15

Docker Snelle start

De snelstartgids bevat informatie over het gebruik van Docker om een Bosun-instantie te weerstaan.

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

Hiermee wordt een nieuw exemplaar van Bosun gemaakt waartoe u toegang hebt door een browser te openen voor http: // docker-server-ip . De afbeelding van het koppelvenster bevat HBase / OpenTSDB voor het opslaan van tijdreeksgegevens, de Bosun-server en Scollector voor het verzamelen van gegevens vanuit de bosun-container. U kunt vervolgens extra scollectorinstanties op de Bosun-server richten en Grafana gebruiken om dashboards van OpenTSDB- of Bosun-metrieken te maken.

De Stackexchange / Bosun-afbeelding is alleen ontworpen voor testen. Er zijn geen waarschuwingen gedefinieerd in het configuratiebestand en de gegevens worden verwijderd wanneer de docker-afbeelding wordt verwijderd, maar het is erg handig om een idee te krijgen hoe bosun werkt. Zie http://bosun.org/resources voor meer informatie over het maken van een productie-instantie van Bosun

Voorbeeldwaarschuwing

Bosun-waarschuwingen worden in het configuratiebestand gedefinieerd met behulp van een aangepaste DSL . Ze gebruiken functies om tijdreeksgegevens te evalueren en genereren waarschuwingen wanneer de waarschuwings- of crit-uitdrukkingen niet nul zijn. Waarschuwingen gebruiken sjablonen om extra informatie in de meldingen op te nemen, meestal een e-mailbericht en / of HTTP POST-aanvraag.

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
}
 

De melding stuurt een e-mail met het onderwerp Critical: sample.alert cpu idle at 25% on hostname voor elke host die het CPU-gebruik van Idle minder dan 40% heeft gehad in de afgelopen 1 minuut. Dit voorbeeld is een "host scoped" -alarm, maar Bosun ondersteunt ook cluster-, datacenter- of globaal scoped-waarschuwingen (zie de basisvideoserie voor meer informatie).

Voorbeeld configuratiebestand

Hier is een voorbeeld van een Bosun-configuratiebestand dat wordt gebruikt in een ontwikkelomgeving:

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 dit geval geeft het configuratiebestand aan dat Bosun verbinding moet maken met een lokale OpenTSDB-instantie op poort 4242, moet luisteren naar aanvragen op poort 8070 (op alle IP-adressen die zijn gebonden aan de host), het localhost SMTP-systeem gebruiken voor e-mail, extra tijdzones weergeven , gebruiken gebouwd in Ledis in plaats van externe Redis voor systeemstatus en standaardwaarschuwingen met een interval van 5 minuten.

De configuratie definieert ook een voorbeeld. Kennisgeving die kan worden toegewezen aan waarschuwingen, die meestal aan het einde van het configuratiebestand worden opgenomen (zie voorbeeld van een voorbeeld van een waarschuwing).