Bosun快速开始翻译

Quick Start

Bosun支持查询OpenTSDB,Graphite和Logstash-Elasticsearch

本文档作为一个快速入门来使Bosun在您的环境中工作。 按照本教程,您应该具有一个完全可操作的Bosun系统,它不仅可以聚合所选计算机上收集的指标,还可以提醒您有关这些系统的相关数据。 我们将使用OpenTSDB。 对于一些Graphite 指针,请参见下面的Graphite 部分。

Bosun
本指南基于使用我们的docker镜像。 在Stack Exchange我们不在生产中使用Docker。 对于那些不想使用docker的用户,我们在bosun.org提供了bosun的二进制文件,但是你也需要自己安装OpenTSDB和HBase。 (如果您自己安装OpenTSDB,我们建议使用下一个分支,它支持scollector使用的GZIP连接。)对于HBase,我们建议使用Cloudera管理器构建集群。

Docker
Install Docker
如果您尚未在系统上安装Docker,可以按照https://docs.docker.com/installation/中所述的说明进行安装。

注意:不要忘记确保docker守护程序正在运行,然后再继续!

安装Bosun
一旦Docker安装完成,您将需要从Docker注册表中获取最新版本的Bosun。 为此,请执行以下命令:
$ docker run -d -p 4242:4242 -p 8070:8070 stackexchange/bosun

上面的命令告诉Docker守护程序你想要启动一个新的守护进程的bosun实例,并且希望将8070的服务器端口转发到docker容器中。 大约15秒后,您应该在端口8070上有一个可用的Bosun实例。您可以通过打开浏览器并转到http:// docker-server-ip:8070来导航到实例,其中docker-server是运行docker的服务器 守护进程。

Getting data into Bosun(将数据导入Bosun)
Bosun Docker镜像自动填充了大量的数据。 如果你想了解更多,请参阅下面的scollector部分,但你可以跳过它

检查Bosun中的数据
一旦scollector运行,假设没有防火墙在端口8070上阻止主机和服务器之间的通信,Bosun应该从系统上运行的scollector获取统计信息。 我们可以通过访问http:// docker-server-ip:8070 / items来检查这一点。 如果您看到指标列表,恭喜您! 您现在正在接收数据。 在页面底部(如果Web浏览器窗口足够宽,则在第二列中),您将看到发送数据的主机名。 如果单击主机名,然后单击“可用指标”,您将看到您可以监视的所有不同类型的数据! 这里有很多变量,但我们将在本教程中使用一些基本的统计数据。

Creating an Alert(创建警报)
收集关于我们的系统的指标是有趣的,但是什么使得监视系统有用的是当异常出现时提醒。这是Bosun的真正实力。

Bosun鼓励特定的工作流程,使其易于设计,测试和部署警报。如果您查看Bosun显示器的顶部,选项卡将按从左到右的顺序包括项目,图形,表达式,规则和测试配置;反映您在创建警报时经历的阶段。一般来说,首先,您需要选择作为提醒基础的项目(指标)。接下来,您将对其进行图形化以了解其行为。然后,您将该图转换为一个表达式,该表达式将用于构建规则。然后,您可以在将规则并入Bosun之前测试该规则。

让我们做一个例子来看看这是如何工作的。在我们的示例中,我们将设置一个警报,通知我们关于高cpu。我们将关注的指标是“os.cpu”。我们将创建一个警报,触发如果特定主机具有高CPU一个小时。

转到http:// docker-server-ip:8070开始。
点击“项目”选项卡。 您会看到当前存储的指标中使用的所有标签(名称)的列表。 点击“os.cpu”,您将转到“图表”标签,并预先加载该指标。
您应该会看到预先加载的度量的图表选项卡,并为所有主机显示图表。我们需要一个主机,因此在该字段中输入您的主机名,然后点击蓝色的“查询”按钮。将显示一个新图表。此图表显示cpu使用的最后一小时。因为你只有你的收集器运行了几分钟,你可能没有很多数据,但这不是一个问题,我们的教程。

(ProTip:您可以通过点击项目标签,点击您感兴趣的主机,然后点击“可用指标”标签获得相同的结果。点击您看到的其中一个指标将带您到图表选项卡预先填写指标名称和主机名。)

既然你有一个图形,如果你滚动到页面的底部有一个名为“查询”的部分。这一部分显示了用于生成图形的查询的语法。

此页面底部还有称为“表达式”和“规则”的链接。这些接受您当前的工作区,并分别填充表达式或规则选项卡。 “表达式”选项卡允许我们调整规则,通常是您要使用的。 “规则”按钮跳过表达式编辑器,并直接转到规则编辑器。

为了演示的目的,点击Expression按钮。

表达
表达式页面允许我们调整查询的数据集。表达式栏目前应该有以“q(”sum:rate ...“)开头的行,这是告诉Bosun你正在寻找过去1小时的os.cpu指标的配方,如果你点击”按钮,在查询部分的结果列下,您将看到所有的数据点,因为它们被绘制。每个数据点是一个时间戳和一个值。

然而,在发出警报的过程中,我们可能对一组庞大的数字不感兴趣。我们可能想要一些像平均值。

为了得到数据点的平均值,我们将在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”,“”))
如果我们点击蓝色的“测试”按钮,我们将看到结果列显示单个数字,这是所有数据点的算术平均值。在这一点上,我们现在有了一个数字,我们可以用来警告我们的平均CPU使用率是否过高。让我们点击“规则”按钮,它与测试按钮在同一行上右对齐。

规则
在规则页面上,我们有两个框,即警报框和模板框。警告框向我们显示了Bosun根据我们在之前的图表和表达式页面上所做的操作为我们生成的基本准系统警报。该模板显示了生成Bosun将发送的出站电子邮件警报的基本模板。目前,警报设置为始终处于关键状态。原因是crit和warn变量是布尔的。由于我们把我们的平均cpu在crit字段,它变得非零,因此是真实的。我们需要在此提醒中添加一些更多的逻辑,使其有意义。

将框中的提醒更改为:

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
warning = $ avgcpu> 60
}}
如果平均CPU超过80%,此警报(如果触发)会产生严重警报,如果平均CPU超过60%,则会发出警告警报。现在,仍然有一件事情,使这个警报有点无用,这是一个事实,我们只针对一个主机(您的系统在这里)。如果你想使用这个警报所有的主机,你可以更改host = your-system-here到host = *,警报将针对所有主机计算!如果有某些主机不希望成为查询的一部分,则可以在警报正文中使用静噪指令,但这超出了我们快速入门的范围。

单击页面右侧的模板框下方的测试按钮。在下面的“结果”窗格中,您应该可以看到所有主机的摘要以及它们的状态,例如“严重”,“警告”或“正常”。如果您单击“模板”窗格,您将看到在警报中通过电子邮件发送的内容。默认模板不是很棒,所以让它替换为一些好的和有意义的:
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}}

}

当您将上述模板放入模板字段后点击“测试”时,页面底部的“模板”窗格将显示警报的结果。正如您在模板输出中可以看到的,我们可以在警报中显示一个图表,以便为视觉学习者提供更多警报的上下文。这是一个svg,应该在电子邮件发送时在大多数电子邮件客户端中正确显示。

保持警报
到目前为止,所有的步骤都是为了让你的脚湿了Bosun。在这一点上,你对高cpu有一个警报,产生一个相当漂亮的警报,但在这一点上,Bosun不会警告它。为了将警报合并到bosun中,必须将其添加到配置文件中。我们可以通过转到Bosun的“测试配置”窗格来测试警报和配置文件的语法,或者直接在http:// docker-server-ip:8070 / config中导航。粘贴到您的警报和模板字段,如上所示到配置文件的末尾,并点击测试按钮。如果Bosun说配置有效,您可以从该窗口复制配置,并用您的新警报和模板覆盖现有的bosun.conf文件。要完成这个,你可能希望使用docker exec和修改/data/bosun.conf然后重新启动bosun。

收集器
Bosun依赖于其他程序提供的指标。对于大多数度量,我们将使用一个名为scollector的程序。 scollector是在主机上运行的代理,并且将生成有关该系统的状态的有价值的输出数据。 scollector还允许您编写自定义收集器,允许您记录基本scollector程序不收集的数据。 scollector已经安装并运行在docker镜像上。

二进制文件适用于Linux,Windows和Mac,网址为http://bosun.org/scollector/。

配置scollector
默认情况下,scollector将发送数据到http:// bosun:80。 scollector可以配置为通过指定带有-h标志的主机来发送到不同的服务器:

$ scollector -h docker-server-ip:8070
您可以在scollector二进制文件旁边创建一个scollector.conf文件,其中包含以下内容:

host = docker-server-ip:8070
有关详细信息,请参阅scollector docs当您将上述模板放入模板字段后点击“测试”时,页面底部的“模板”窗格将显示警报的结果。正如您在模板输出中可以看到的,我们可以在警报中显示一个图表,以便为视觉学习者提供更多警报的上下文。这是一个svg,应该在电子邮件发送时在大多数电子邮件客户端中正确显示。

保持警报
到目前为止,所有的步骤都是为了让你的脚湿了Bosun。在这一点上,你对高cpu有一个警报,产生一个相当漂亮的警报,但在这一点上,Bosun不会警告它。为了将警报合并到bosun中,必须将其添加到配置文件中。我们可以通过转到Bosun的“测试配置”窗格来测试警报和配置文件的语法,或者直接在http:// docker-server-ip:8070 / config中导航。粘贴到您的警报和模板字段,如上所示到配置文件的末尾,并点击测试按钮。如果Bosun说配置有效,您可以从该窗口复制配置,并用您的新警报和模板覆盖现有的bosun.conf文件。要完成这个,你可能希望使用docker exec和修改/data/bosun.conf然后重新启动bosun。

收集器
Bosun依赖于其他程序提供的指标。对于大多数度量,我们将使用一个名为scollector的程序。 scollector是在主机上运行的代理,并且将生成有关该系统的状态的有价值的输出数据。 scollector还允许您编写自定义收集器,允许您记录基本scollector程序不收集的数据。 scollector已经安装并运行在docker镜像上。

二进制文件适用于Linux,Windows和Mac,网址为http://bosun.org/scollector/。

配置scollector
默认情况下,scollector将发送数据到http:// bosun:80。 scollector可以配置为通过指定带有-h标志的主机来发送到不同的服务器:

$ scollector -h docker-server-ip:8070
您可以在scollector二进制文件旁边创建一个scollector.conf文件,其中包含以下内容:

host = docker-server-ip:8070
有关详细信息,请参阅scollector docs
Graphite在OpenTSDB旁边,Bosun还支持查询Graphite和Logstash-Elasticsearch。 您可以执行,查看和图表表达式,开发和运行Graphite / LS警报规则,获取通知和使用仪表板。 OpenTSDB特定功能(例如数据代理和内置的通用图形界面)不适用于此处。 警报规则看起来一样,实际上唯一的区别是您将使用石墨特定函数(如graphiteQuery和graphiteBand)查询数据。在docker中启动Graphite:
$ docker run -d
--name graphite
-p 80:80
-p 2003:2003
-p 8125:8125/udp
hopsoft/graphite-statsd

Collectd通常用于向Graphite提交指标。 (scollector不支持Graphite)。 你可以轻松地启动它像这样:
$ docker run -e HOST_NAME=localhost -e GRAPHITE_HOST= andreasjansson/collectd-write-graphite
验证http:// localhost加载石墨接口,进入Graphite> localhost> cpu,进入层次结构并切换一些指标。 在数据开始显示之前可能需要一两分钟。

在你的配置,设置
graphiteHost = http://localhost
Now you can run alerting rules like so:

alert os.high.cpu {
template = generic
$d = graphite(".cpu..cpu.idle)", "5m", "", "host..core..type")
$q = avg($d)
# purposely very harsh tresholds so we definitely get some alerts
warn = $q < 100
crit = $q <= 97
}

石墨函数的第四个参数是如何解析石墨将返回的系列的格式。 在这种情况下,第一个字段是主机,第三个核心,最后一个cpu使用类型,因此这些字段将转换为bosun中的标签。

你可能感兴趣的:(Bosun快速开始翻译)