BosunEmpezando con Bosun


Observaciones

Bosun es un sistema de código abierto, con licencia MIT, de monitoreo y alerta creado por Stack Overflow. Tiene un lenguaje expresivo de dominio específico para evaluar alertas y crear notificaciones detalladas. También le permite probar sus alertas con datos históricos para una experiencia de desarrollo más rápida. Más detalles en http://bosun.org/ .

Bosun utiliza un archivo de configuración para almacenar todas las configuraciones del sistema, macros, búsquedas, notificaciones, plantillas y definiciones de alertas. Especifica el archivo de configuración que se utilizará al iniciar el servidor, por ejemplo /opt/bosun/bosun -c /opt/bosun/config/prod.conf . Los cambios en el archivo no se activarán hasta que se reinicie bosun, y se recomienda encarecidamente que almacene el archivo en el control de versiones.

Versiones

Versión Fecha de lanzamiento
0.3.0 2015-06-13
0.4.0 2015-09-18
0.5.0 2016-03-15

Inicio rápido de Docker

La guía de inicio rápido incluye información sobre el uso de Docker para hacer frente a una instancia de Bosun.

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

Esto creará una nueva instancia de Bosun a la que puede acceder abriendo un navegador en http: // docker-server-ip . La imagen de la ventana acoplable incluye HBase / OpenTSDB para almacenar datos de series de tiempo, el servidor Bosun y Scollector para recopilar métricas desde el interior del contenedor bosun. Luego puede apuntar instancias adicionales de scollector en el servidor Bosun y usar Grafana para crear cuadros de mandos de métricas de OpenTSDB o Bosun.

La imagen Stackexchange / Bosun está diseñada solo para pruebas. No hay alertas definidas en el archivo de configuración y los datos se eliminarán cuando se elimine la imagen de la ventana acoplable, pero es muy útil para tener una idea de cómo funciona el bosun. Para obtener detalles sobre la creación de una instancia de producción de Bosun, visite http://bosun.org/resources

Alerta de muestra

Las alertas de Bosun se definen en el archivo de configuración mediante un DSL personalizado . Usan funciones para evaluar datos de series de tiempo y generarán alertas cuando las expresiones de advertencia o crítica no sean cero. Las alertas utilizan plantillas para incluir información adicional en las notificaciones, que suelen ser un mensaje de correo electrónico y / o una solicitud 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
}
 

La alerta enviaría un correo electrónico con el asunto Critical: sample.alert cpu idle at 25% on hostname de Critical: sample.alert cpu idle at 25% on hostname para cualquier host cuyo uso de CPU inactivo haya promediado menos del 40% en el último minuto. Este ejemplo es una alerta de "ámbito de host", pero Bosun también admite clústeres, centros de datos o alertas de ámbito global (consulte la serie de videos de fundamentos para obtener más detalles).

Archivo de configuración de muestra

Este es un ejemplo de un archivo de configuración Bosun utilizado en un entorno de desarrollo:

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
}
 

En este caso, el archivo de configuración indica que Bosun debe conectarse a una instancia de OpenTSDB local en el puerto 4242, escuchar las solicitudes en el puerto 8070 (en todas las direcciones IP vinculadas al host), usar el sistema SMTP localhost para correo electrónico, mostrar zonas horarias adicionales , usar Ledis integrado en lugar de Redis externo para el estado del sistema, y ​​alertas predeterminadas a un intervalo de 5 minutos.

La configuración también define una notificación de ejemplo que se puede asignar a las alertas, que normalmente se incluiría al final del archivo de configuración (ver ejemplo de alerta de ejemplo).