BosunDémarrer avec Bosun


Remarques

Bosun est un système open-source, sous licence MIT, de surveillance et d'alerte créé par Stack Overflow. Il dispose d'un langage spécifique au domaine expressif pour évaluer les alertes et créer des notifications détaillées. Il vous permet également de tester vos alertes par rapport aux données historiques pour une expérience de développement plus rapide. Plus de détails sur http://bosun.org/ .

Bosun utilise un fichier de configuration pour stocker tous les paramètres système, macros, recherches, notifications, modèles et définitions d'alertes. Vous spécifiez le fichier de configuration à utiliser lors du démarrage du serveur, par exemple /opt/bosun/bosun -c /opt/bosun/config/prod.conf . Les modifications apportées au fichier ne seront activées qu'au redémarrage de bosun, et il est fortement recommandé de stocker le fichier dans le contrôle de version.

Versions

Version Date de sortie
0.3.0 2015-06-13
0.4.0 2015-09-18
0.5.0 2016-03-15

Docker Quick Start

Le guide de démarrage rapide contient des informations sur l'utilisation de Docker pour mettre en place une instance Bosun.

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

Cela créera une nouvelle instance de Bosun à laquelle vous pouvez accéder en ouvrant un navigateur sur http: // docker-server-ip . L'image de docker inclut HBase / OpenTSDB pour stocker les données de séries chronologiques, le serveur Bosun et Scollector pour collecter des métriques à partir du conteneur bosun. Vous pouvez ensuite pointer des instances scollector supplémentaires sur le serveur Bosun et utiliser Grafana pour créer des tableaux de bord des métriques OpenTSDB ou Bosun.

L'image Stackexchange / Bosun est conçue uniquement pour les tests. Il n'y a pas d'alertes définies dans le fichier de configuration et les données seront supprimées lors de la suppression de l'image du docker, mais elles sont très utiles pour avoir une idée du fonctionnement de la base de données. Pour plus de détails sur la création d'une instance de production de Bosun, voir http://bosun.org/resources

Alerte d'échantillon

Les alertes Bosun sont définies dans le fichier de configuration à l'aide d'un DSL personnalisé . Ils utilisent des fonctions pour évaluer les données de séries chronologiques et génèrent des alertes lorsque les expressions warn ou crit sont différentes de zéro. Les alertes utilisent des modèles pour inclure des informations supplémentaires dans les notifications, généralement un message électronique et / ou une requête HTTP POST.

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'alerte enverrait un courrier électronique avec le sujet Critical: sample.alert cpu idle at 25% on hostname d' Critical: sample.alert cpu idle at 25% on hostname pour tout hôte dont l'utilisation du processeur inactif était en moyenne inférieure à 40% au cours de la dernière minute. Cet exemple est une alerte "portée de l'hôte", mais Bosun prend également en charge les alertes de cluster, de centre de données ou d'envergure mondiale (voir la série de vidéos sur les fondamentaux pour plus de détails).

Exemple de fichier de configuration

Voici un exemple de fichier de configuration Bosun utilisé dans un environnement de développement:

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
}
 

Dans ce cas , le fichier de configuration indique bosco doit se connecter à une instance OpenTSDB locale sur le port 4242, l' écoute des requêtes sur le port 8070 (sur toutes les adresses IP liées à l'hôte), utilisez le système SMTP localhost pour le courrier électronique, afficher les fuseaux horaires supplémentaires , l' utilisation construit dans Ledis au lieu de Redis externe pour l’état du système et les alertes par défaut à un intervalle de 5 minutes.

La configuration définit également un exemple.notification pouvant être assigné aux alertes, qui serait généralement inclus à la fin du fichier de configuration (voir exemple d'alerte).