BosunBosun入门


备注

Bosun是Stack Overflow创建的开源,MIT许可,监控和警报系统。它具有富有表现力的领域特定语言,用于评估警报和创建详细通知。它还允许您根据历史数据测试警报,以获得更快的开发体验。有关详细信息,请访问http://bosun.org/

Bosun使用配置文件来存储所有系统设置,宏,查找,通知,模板和警报定义。您指定启动服务器时要使用的配置文件,例如/opt/bosun/bosun -c /opt/bosun/config/prod.conf 。在重新启动bosun之前,不会激活对文件的更改,强烈建议您将文件存储在版本控制中。

版本

发布日期
0.3.0 2015年6月13日
0.4.0 2015年9月18日
0.5.0 2016年3月15日

Docker快速入门

快速入门指南包含有关使用Docker来支持Bosun实例的信息。

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

这将创建一个新的Bosun实例,您可以通过打开浏览器访问http:// docker-server-ip来访问它 。 docker镜像包括用于存储时间序列数据的HBase / OpenTSDB,Bosun服务器和用于从bosun容器内部收集度量的Scollector。然后,您可以在Bosun服务器上指定其他scollector实例,并使用Grafana创建OpenTSDB或Bosun指标的仪表板。

Stackexchange / Bosun映像仅用于测试。配置文件中没有定义警报,并且删除docker镜像时将删除数据,但这对于了解bosun的工作方式非常有帮助。有关创建Bosun生产实例的详细信息,请参阅http://bosun.org/resources

示例警报

Bosun警报使用自定义DSL在配置文件中定义 。它们使用函数来评估时间序列数据,并在warn或crit表达式非零时生成警报。警报使用模板在通知中包含其他信息,通常是电子邮件和/或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
}
 

警报将发送一封电子邮件,主题为Critical: sample.alert cpu idle at 25% on hostnameCritical: sample.alert cpu idle at 25% on hostname 对于任何闲置CPU使用率在过去1分钟内平均低于40%的主机。此示例是“主机范围”警报,但Bosun还支持群集,数据中心或全局范围警报(有关详细信息,请参阅基础视频系列 )。

示例配置文件

以下是开发环境中使用的Bosun配置文件的示例:

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
}
 

在这种情况下,配置文件指示Bosun应该连接到端口4242上的本地OpenTSDB实例,侦听端口8070上的请求(在绑定到主机的所有IP地址上),使用localhost SMTP系统获取电子邮件,显示其他时区 ,使用内置Ledis而不是外部Redis用于系统状态,默认警报为5分钟间隔。

配置还定义了一个可以分配给警报的example.notification,它通常包含在配置文件的末尾(参见示例警报示例)。