本文档是Bosun的快速安装文档。根据本文档,你能够搭建一个完整的bosun服务,能够把指定机器的各类信息聚合起来,而且实现相关信息的报警。html
这篇文档中,bosun的安装依赖docker。若是不但愿使用docker,能够从 bosun.org中自行下载bosun二进制文件,可是这样就须要本身安装OpenTSDB和HBase。linux
若是系统中没有安装Docker,能够参考此处进行安装 https://docs.docker.com/installation/。 安装完毕后,不要忘记将docker守护进程起开。docker
一旦docker安装完毕,可使用下面的命令安装bosun,可能须要sudo权限。shell
docker run -d -p 8070:8070 stackexchange/bosun
这条命令,告诉docker进程为bosun启动一个后台进程,端口是8070。稍等15秒,bosun服务启动完毕,这样bosun的server端就搭建并启动完毕,咱们可使用浏览器进行访问了,http://yourip:8070windows
即便没有任何的slave,buson server自身也会产生不少的数据。下面也会讲如何启动bosun slave。浏览器
假设bosun slave已经启动,server和slave已经经过8070端口创建了链接,那么bosun server就会收到slave的各类信息。咱们能够经过http://docker-server-ip:8070/items来查看当前已经链接上的slave节点。若是看到一堆的参数,那么恭喜,bosun正在收集数据。在页面的底部或者第二列展现的是当前正在产生数据的slave节点。点击某个slave,而后点击“Available Metrics”,就会看到当前slave能够被监控的数据类型,如cpu、内存等等。测试
如今咱们的server已经在收集各类信息了,但监控系统的关键做用在于当异常状况发生时,系统会给出报警。报警也是bosun重点支持的。设计
Bosun提供一套工做流,它使设计、测试、推送一条报警更简单。咱们看到bosun首页的导航条,包括"Items", "Graph", "Expression", "Rule"和"Test Config",其实这也是咱们新建一条Alert的步骤。通常状况下,咱们须要先选择一条item(metric),这是Alert的基础。而后,咱们观察这条item绘制的曲线,了解它的动态。以后,咱们将这个曲线转化成表达式,再次这个表达式整理成规则。以后,咱们能够测试这条规则,无误后,将其推送到bosun server中。rest
下面是一个新建Alert的例子,咱们监控cpu的使用状况,若是cpu idle太低,就报警。这里咱们使用的metric是“os.cpu”。当某台机器的cpu idle持续一小时太低时,咱们就发送一条报警。打开bosun首页,下面开始配置。code
点击“Items”标签页。会看到bosun当前监控的全部的项。点击“os.cpu”,页面跳转到“Graph”页面。
在Graph页面,咱们能看到bosun预加载了全部slave的图表。咱们想看单台slave的信息,在host输入框中,输入咱们的机器名,点击蓝色的"Query"按钮,buson就会将指定机器的最近一个小时的cpu使用状况画出来。
如今,咱们看到了cpu利用率的曲线。在页面的底部,有个“Queries”区域。它表示的是生成当前曲线所用的表达式。
在Queries区域,还有“Expression”和“Rule”超连接,这两个连接直接连接到本页面曲线的表达式和规则页面。在本教程中,咱们点击“Expression” 连接。
在表达式页面,咱们能够经过咱们的query条件,来调整结果集的大小。本页面的查询表达式应该相似"q("sum":rate...)" 经过这条语句,bosun就会去查询过去一个小时内的指定机器的cpu使用状况。咱们点击“show”按钮,能够看到这条语句的结果集。每条结果都是 timestamp和value的形式。
新建Alert,咱们不太关心结果集的大小,咱们对于结果集的平均值更感兴趣。为了获得结果集的平均值,可使用avg()方法,以下:
q("sum:rate{counter,,1}:os.cpu{host=your-system-here}", "1h", "") avg(q("sum:rate{counter,,1}:os.cpu{host=your-system-here}", "1h", ""))
咱们点击蓝色的“Test”按钮,咱们就会看到结果变成单个数字,这个数字就是cpu在这段时间的平均利用率。如今咱们获得了cpu平均值,能够根据这个值的大小,来监控cpu idle太低了。点击“rule”按钮。
在规则页面,有两个输入框,Alert框和Template框。Alert框展现的就是刚才咱们新建的报警规则。Template框展现的是触发报警后的动做,如发送邮件等。当前Alert框,咱们的这条规则,bosun会永远识别成“critical”,缘由是 crit和warn是boolean类型的,咱们把cpu的平均值赋给它,永远是非0值,非0值就是true。咱们须要增长一些逻辑判断,以下:
alert cpu.is.too.high { template = test $metric = q("sum:rate{counter,,1}:os.cpu{host=your-system-here}", "1h", "") $avgcpu = avg($metric) crit = $avgcpu > 80 warn = $avgcpu > 60 }
若是机器的cpu利用率高于80%,就会触发critical报警;若是高于60%,触发warning报警。到如今为止,咱们的这个Alert其实也没多大用处,由于它只监控了一台机器,咱们能够经过修改host的值来监控其余机器,或者将host的值设成*,来监控全部机器。若是不想监控某台机器,还能够在Alert body中填写排除语句,但在本教程中不详细讲解了。
点击“Test”按钮,下方会列出全部的crit报警,warn报警和normal状况。点击“Email”按钮,会看到报警邮件的发送状况。默认的报警邮件模板,不太直观,能够改为下面的:
template test { subject = {{.Last.Status}}: {{.Alert.Name}} on {{.Group.host}} body = `Alert: {{.Alert.Name}} triggered on {{.Group.host}} Computation {{range .Computations}} {{end}} {{.Text}}{{.Value}} {{ .Graph .Alert.Vars.metric }} Relevant Tags {{range $k, $v := .Group}} {{end}} {{$k}}{{$v}}` }
当点击“Test”按钮后,在页面底部的template tab页,会显示出报警的详细信息。
目前为止,咱们新建了报警规则,可是bosun还不会触发报警,由于尚未将规则加到bosun的配置文件中。咱们能够在“Test Config”tab页面中,校验咱们的规则有无语法错误,若是没有语法错误,将规则加到bosun.conf中便可。bosun.conf这个文件在docker容器路径下面的/data/bosun.conf中,具体路径可使用shell命令查一下sudo find / -name "bosun.conf"
,添加完以后,重启bosun服务,sudo docker ps
查看启动的docker容器,拿到bosun的id后,sudo docker restart ${id}
便可。
bosun平台依赖于其余程序推送的数据,它就是scollector。scollector是运行在各个节点机器上的程序,它不断抓取节点机器的信息,推送给bosun master机器。master机器自己已经集成了scollector。
目前有windows,mac和linux版本,下载地址http://bosun.org/scollector/
默认状况下,scollector会将数据发送到bosun master机器的80端口,固然咱们也能够自定义:
$ scollector -h docker-server-ip:8070
或者在scollector同路径下,建立一个scollector.conf文件:
host=docker-server-ip:8070
更多参考:http://godoc.org/bosun.org/cmd/scollector
###参考文档