BosunIniziare con Bosun


Osservazioni

Bosun è un sistema open source, con licenza MIT, monitoraggio e allerta creato da Stack Overflow. Ha un linguaggio espressivo specifico del dominio per valutare gli avvisi e creare notifiche dettagliate. Consente inoltre di testare gli avvisi in base a dati storici per un'esperienza di sviluppo più rapida. Maggiori dettagli su http://bosun.org/ .

Bosun utilizza un file di configurazione per archiviare tutte le impostazioni di sistema, macro, ricerche, notifiche, modelli e definizioni degli avvisi. Si specifica il file di configurazione da utilizzare all'avvio del server, ad esempio /opt/bosun/bosun -c /opt/bosun/config/prod.conf . Le modifiche al file non verranno attivate fino al riavvio di bosun e si consiglia vivamente di salvare il file nel controllo di versione.

Versioni

Versione Data di rilascio
0.3.0 2015/06/13
0.4.0 2015/09/18
0.5.0 2016/03/15

Avvio rapido Docker

La guida rapida contiene informazioni sull'utilizzo di Docker per alzare un'istanza Bosun.

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

Ciò creerà una nuova istanza di Bosun a cui è possibile accedere aprendo un browser a http: // docker-server-ip . L'immagine della finestra mobile include HBase / OpenTSDB per l'archiviazione dei dati delle serie temporali, il server Bosun e Scollector per la raccolta delle metriche dall'interno del contenitore bosun. È quindi possibile indirizzare ulteriori istanze di scollector sul server Bosun e utilizzare Grafana per creare dashboard di metriche OpenTSDB o Bosun.

L'immagine Stackexchange / Bosun è progettata solo per il test. Non ci sono avvisi definiti nel file di configurazione e i dati verranno eliminati quando l'immagine della finestra mobile viene rimossa, ma è molto utile per avere un'idea di come funziona il bosun. Per i dettagli sulla creazione di un'istanza di produzione di Bosun, vedi http://bosun.org/resources

Avviso di esempio

Gli avvisi Bosun sono definiti nel file di configurazione utilizzando un DSL personalizzato . Usano le funzioni per valutare i dati delle serie temporali e generano avvisi quando le espressioni di avvertenza o crit sono diverse da zero. Gli avvisi utilizzano i modelli per includere ulteriori informazioni nelle notifiche, che di solito sono un messaggio e-mail e / o una richiesta POST HTTP.

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
}
 

L'avviso invierà un'e-mail con l'oggetto Critical: sample.alert cpu idle at 25% on hostname per qualsiasi host il cui utilizzo della CPU inattivo abbia una media inferiore al 40% nell'ultimo 1 minuto. Questo esempio è un avviso "host scope", ma Bosun supporta anche gli avvisi cluster, datacenter o globali (vedere la serie di video sui fondamenti per maggiori dettagli).

Esempio di file di configurazione

Ecco un esempio di un file di configurazione Bosun utilizzato in un ambiente di sviluppo:

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 questo caso il file di configurazione indica che Bosun deve connettersi a un'istanza OpenTSDB locale sulla porta 4242, ascoltare le richieste sulla porta 8070 (su tutti gli indirizzi IP associati all'host), utilizzare il sistema SMTP localhost per la posta elettronica, visualizzare fusi orari aggiuntivi , utilizzare costruito in Ledis anziché Redis esterno per lo stato del sistema e avvisi predefiniti su un intervallo di 5 minuti.

La configurazione definisce anche un esempio.notifica che può essere assegnata agli avvisi, che di solito dovrebbero essere inclusi alla fine del file di configurazione (vedere esempio di avviso di esempio).