Bosun快速入门

<h1>Bosun快速入门</h1>

<p>本文档是Bosun的快速安装文档。根据本文档,你可以搭建一个完整的bosun服务,可以把指定机器的各种信息聚合起来,并且实现相关信息的报警。</p>

<h2>Bosun</h2>

<p>这篇文档中,bosun的安装依赖docker。如果不希望使用docker,可以从 bosun.org中自行下载bosun二进制文件,但是这样就需要自己安装OpenTSDB和HBase。</p>

<h2>Docker</h2>

<h3>安装Docker</h3>

<p>如果系统中没有安装Docker,可以参考此处进行安装 <a href="https://docs.docker.com/installation/">https://docs.docker.com/installation/</a>。 安装完毕后,不要忘记将docker守护进程起开。</p>

<h3>安装Boson</h3>

<p>一旦docker安装完毕,可以使用下面的命令安装bosun,可能需要sudo权限。</p>

<pre><code> docker run -d -p 8070:8070 stackexchange/bosun </code></pre>

<p>这条命令,告诉docker进程为bosun启动一个后台进程,端口是8070。稍等15秒,bosun服务启动完毕,这样bosun的server端就搭建并启动完毕,我们可以使用浏览器进行访问了,<a href="http://yourip:8070">http://yourip:8070</a></p>

<h3>向Bosun中推送数据</h3>

<p>即使没有任何的slave,buson server自身也会产生很多的数据。下面也会讲如何启动bosun slave。</p>

<h3>bosun检查数据</h3>

<p>假设bosun slave已经启动,server和slave已经通过8070端口建立了连接,那么bosun server就会收到slave的各种信息。我们可以通过<a href="http://docker-server-ip:8070/items">http://docker-server-ip:8070/items</a>来查看当前已经连接上的slave节点。如果看到一堆的参数,那么恭喜,bosun正在收集数据。在页面的底部或者第二列展示的是当前正在产生数据的slave节点。点击某个slave,然后点击“Available Metrics”,就会看到当前slave可以被监控的数据类型,如cpu、内存等等。</p>

<h3>新建Alert</h3>

<p>现在我们的server已经在收集各种信息了,但监控系统的关键作用在于当异常情况发生时,系统会给出报警。报警也是bosun重点支持的。</p>

<p>Bosun提供一套工作流,它使设计、测试、推送一条报警更简单。我们看到bosun首页的导航条,包括"Items", "Graph", "Expression", "Rule"和"Test Config",其实这也是我们新建一条Alert的步骤。一般情况下,我们需要先选择一条item(metric),这是Alert的基础。然后,我们观察这条item绘制的曲线,了解它的动态。之后,我们将这个曲线转化成表达式,再次这个表达式整理成规则。之后,我们可以测试这条规则,无误后,将其推送到bosun server中。</p>

<p>下面是一个新建Alert的例子,我们监控cpu的使用情况,如果cpu idle过低,就报警。这里我们使用的metric是“os.cpu”。当某台机器的cpu idle持续一小时过低时,我们就发送一条报警。打开bosun首页,下面开始配置。</p>

<h4>Items</h4>

<p>点击“Items”标签页。会看到bosun当前监控的所有的项。点击“os.cpu”,页面跳转到“Graph”页面。</p>

<h3>Graph</h3>

<p>在Graph页面,我们能看到bosun预加载了所有slave的图表。我们想看单台slave的信息,在host输入框中,输入我们的机器名,点击蓝色的"Query"按钮,buson就会将指定机器的最近一个小时的cpu使用情况画出来。</p>

<p>现在,我们看到了cpu利用率的曲线。在页面的底部,有个“Queries”区域。它表示的是生成当前曲线所用的表达式。<br/> 在Queries区域,还有“Expression”和“Rule”超链接,这两个链接直接链接到本页面曲线的表达式和规则页面。在本教程中,我们点击“Expression” 链接。</p>

<h3>Expression</h3>

<p>在表达式页面,我们可以通过我们的query条件,来调整结果集的大小。本页面的查询表达式应该类似"q("sum":rate...)" 通过这条语句,bosun就会去查询过去一个小时内的指定机器的cpu使用情况。我们点击“show”按钮,可以看到这条语句的结果集。每条结果都是 timestamp和value的形式。</p>

<p>新建Alert,我们不太关心结果集的大小,我们对于结果集的平均值更感兴趣。为了得到结果集的平均值,可以使用avg()方法,如下:</p>

<pre><code> 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", "")) </code></pre>

<p>我们点击蓝色的“Test”按钮,我们就会看到结果变成单个数字,这个数字就是cpu在这段时间的平均利用率。现在我们得到了cpu平均值,可以根据这个值的大小,来监控cpu idle过低了。点击“rule”按钮。</p>

<h3>Rule</h3>

<p>在规则页面,有两个输入框,Alert框和Template框。Alert框展示的就是刚才我们新建的报警规则。Template框展示的是触发报警后的动作,如发送邮件等。当前Alert框,我们的这条规则,bosun会永远识别成“critical”,原因是 crit和warn是boolean类型的,我们把cpu的平均值赋给它,永远是非0值,非0值就是true。我们需要增加一些逻辑判断,如下:</p>

<pre><code> 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 &gt; 80 warn = $avgcpu &gt; 60 } </code></pre>

<p>如果机器的cpu利用率高于80%,就会触发critical报警;如果高于60%,触发warning报警。到现在为止,我们的这个Alert其实也没多大用处,因为它只监控了一台机器,我们可以通过修改host的值来监控其他机器,或者将host的值设成*,来监控所有机器。如果不想监控某台机器,还可以在Alert body中填写排除语句,但在本教程中不详细讲解了。</p>

<p>点击“Test”按钮,下方会列出所有的crit报警,warn报警和normal情况。点击“Email”按钮,会看到报警邮件的发送情况。默认的报警邮件模板,不太直观,可以改成下面的:</p>

<pre><code> template test { subject = {{.Last.Status}}: {{.Alert.Name}} on {{.Group.host}} body = `&lt;p&gt;Alert: {{.Alert.Name}} triggered on {{.Group.host}} &lt;hr&gt; &lt;p&gt;&lt;strong&gt;Computation&lt;/strong&gt; &lt;table&gt; {{range .Computations}} &lt;tr&gt;&lt;td&gt;&lt;a href="{{$.Expr .Text}}"&gt;{{.Text}}&lt;/a&gt;&lt;/td&gt;&lt;td&gt;{{.Value}}&lt;/td&gt;&lt;/tr&gt; {{end}} &lt;/table&gt; &lt;hr&gt; {{ .Graph .Alert.Vars.metric }} &lt;hr&gt; &lt;p&gt;&lt;strong&gt;Relevant Tags&lt;/strong&gt; &lt;table&gt; {{range $k, $v := .Group}} &lt;tr&gt;&lt;td&gt;{{$k}}&lt;/td&gt;&lt;td&gt;{{$v}}&lt;/td&gt;&lt;/tr&gt; {{end}} &lt;/table&gt;` } </code></pre>

<a href="http://www.yeetrack.com/?p=1047">继续阅读</a>

转载于:https://my.oschina.net/u/147181/blog/395720

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值