Primeros pasos con Bosun

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 = [email protected]
timeAndDate = 202,75,179,136
ledisDir = ../ledis_data
checkFrequency = 5m

notification example.notification {
        email = [email protected]
        print = true
}

En este caso, el archivo de configuración indica que Bosun debe conectarse a una instancia local de OpenTSDB 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 el correo electrónico, mostrar [zonas horarias adicionales] 1, use Ledis incorporado en lugar de Redis externo para el estado del sistema y alertas predeterminadas en un intervalo de 5 minutos.

La configuración también define un ejemplo. notificación que se puede asignar a las alertas, que generalmente se incluiría al final del archivo de configuración (consulte el ejemplo de alerta de muestra).

Inicio rápido de Docker

La guía de inicio rápido incluye información sobre el uso de Docker para crear 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 temporales, el servidor Bosun y Scollector para recopilar métricas desde el interior del contenedor bosun. A continuación, puede apuntar instancias de scollector adicionales al servidor Bosun y usar Grafana para crear paneles de métricas de OpenTSDB o Bosun.

La imagen de 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 Bosun. Para obtener detalles sobre cómo crear una instancia de producción de Bosun, consulte http://bosun.org/resources

1: http://bosun.org/inicio rápido

Alerta de muestra

Las alertas contramaestre se definen en el archivo de configuración mediante un DSL personalizado. Utilizan funciones para evaluar datos de series temporales y generarán alertas cuando las expresiones warn o crit 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 = [email protected]
}

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 “Crítico: sample.alert cpu inactivo al 25 % en el nombre del host” para cualquier host cuyo uso de CPU inactivo haya promediado menos del 40 % durante el último minuto. Este ejemplo es una alerta de “ámbito de host”, pero Bosun también admite alertas de clúster, de centro de datos o de ámbito global (consulte la serie de videos de fundamentos para más detalles).