1. 首页
  2. 综合百科
  3. 警报是什么意思(5)

警报是什么意思(5)

简介:关于警报是什么意思(5)的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

编译自:https://open source.com/article/18/10/alerting-and-visualization-tools-sysadmins。

作者:丹巴克

译者:杭州

这些开源工具可以帮助用户通过输出了解系统的运行状态,并对可能出现的潜在问题发出警报。

您可能已经知道(或猜测)alertingandvisualization工具的用途。先说为什么要讨论这样一个工具,甚至有些系统专门把可视化作为一个独特的功能。

可观测性的概念来自控制理论,控制理论描述了我们通过系统的输入和输出来理解系统的能力。本文将关注可观察的输出组件。

告警可视化工具可以分析其他系统的输出,然后以结构化的方式表达输出信息。报警实际上是对系统异常状态的描述,而可视化是用户可以直观理解的结构化表示。

常见的可视化告警

告警

首先要明确alert的含义。在人无法响应报警内容的情况下,——不应该发送的报警包括发送给很多人但只有少数人能响应的报警,以及系统每一次异常所触发的报警。因为这将导致警报疲劳,警报接收器通常会忽略这些过多的警报,直到系统以罕见的方式恶化为警报。

举个例子,如果管理员每天收到上百封来自报警系统的报警邮件,他会很容易忽略所有来自报警系统的邮件。只有当他真正看到了问题,或者被客户或上级查询,管理员才会再次关注报警信息。在这种情况下,警报已经失去了原来的意义和用途。

警报不是连续的信息流或状态更新。报警的目的是暴露系统无法自动恢复的问题,报警应该只发给最有可能解决问题的人。任何超出这个定义的东西都不应该作为警钟,否则会对实际工作产生不好的影响。

不同的报警系统会有自己的报警类型,所以我们不能按优先级(P1-P5)或诸如& quot信息& quot,& quot警告&quot和& quot严肃& quot。下面我将介绍一些新兴复杂系统事件响应中出现的常见分类方法。

刚才我提到了一种报警类型& quot信息& quot,但事实上,警报不应该是消息,尽管有些人可能会这样认为。但我觉得如果一个警报没有发给任何人,那就不应该是警报,而只是一些在很多系统中被视为警报的数据点,代表一些应该知道但不需要响应的事件。它应该作为警报可视化工具的一部分,而不是触发警报的事件。《实用监控》是这方面的必读书籍,其作者MikeJulian在书中介绍了自己对报警的看法。

非信息报警表示需要响应报警,需要进行相关操作。我把这些告警分为两种:内部故障和外部故障。对于大多数公司来说,通常有两个以上的级别来确定响应警报的优先级。系统性能下降是一种故障,因为它对用户的影响通常是未知的。

内部故障的优先级低于外部故障,但也需要快速响应。内部故障通常包括公司员工使用的内部系统故障或仅公司员工可见的应用程序故障。

外部故障包括任何会对业务产生直接影响的系统故障,但不包括影响系统更新的故障。外部故障一般包括客户面临的应用故障、导致系统可用性或一致性失效的数据库故障和网络故障,会影响用户的正常使用。不直接影响用户的依赖组件的故障也是外部故障。随着应用程序的持续运行,一旦依赖组件出现故障,系统的性能也会受到影响。对于使用一些外部服务或数据源的系统来说,这种情况非常常见。虽然这些外部服务或数据源可能不涉及系统的主要功能,但当系统处理相关依赖组件的错误时,可能会有明显的延迟。

可视化

可视化有很多种,我就不一一赘述了。这是一个有趣的研究领域。在我多年的数据分析经历中,学习和应用可视化的知识可以说是相当具有挑战性的。我们需要以直观的方式向他人展示复杂的系统输出,以便有效地传播信息。GoogleCharts和Tableau都提供了很多可视化工具。下面将介绍一些最常见的视觉创新解决方案。

折线图

折线图可能是最常见的可视化方法,它可以让用户按照时间维度直观地了解系统。系统中的每个单个或聚合指标在图表中用虚线表示。但当同一图表中同时出现多条折线时,可能会影响阅读(如下图所示),所以大多数情况下可以选择只查看其中的几条,而不是同时显示所有折线。如果一个指标的数值波动超过正常范围,就会很容易被发现。比如下图中异常的紫色线、黄色线、淡蓝色线。

折线图的另一个用途是可以堆叠多条折线来显示它们之间的关系。例如,为了通过折线图反映来自服务器的请求数量,您可以单独或一起查看每个服务器上的请求。这允许您在同一个图表中灵活地查看整个系统和每个实例。

另一种常见的可视化方法是热图。热图类似于条形图,也可以在条形图的基础上显示某一部分在整体中所占比例的变化。

。例如在查看网络请求延时的时候,就可以使用热力图快速查看到所有网络请求的总体趋势和分布情况,另外,它可以使用不同颜色来表示不同部分的数值。

在以下这个热力图中,通过竖直方向上每个时间段的色块数量分布,可以清楚地看到大部分数据集中在整个范围的中心位置。我们还可以发现,大多数时间段的色块分布都是比较宽松的,而14:00到15:00这一段则分布得很密集,这样的分布有可能意味着一种不健康的状态。



仪表图

还有一种常见的可视化方式是仪表图,用户可以通过仪表图快速了解单个指标。仪表一般用于单个指标的显示,例如车速表代表汽车的行驶速度、油量表代表油箱中的汽油量等等。大多数的仪表图都有一个共通点,就是会划分出所示指标的对应状态。如下图所示,绿色表示正常的状态,橙色表示不良的状态,而红色则表示极差的状态。下图中间一行模拟了真实仪表的显示情况。



上面图表中,除了常规仪表样式的显示方式之外,还有较为直接的数据显示方式,配合相同的配色方案,一眼就可以看出各个指标所处的状态,这一点与和仪表的特点类似。所以,最下面一行可能是仪表图的最佳显示方式,用户不需要仔细阅读,就可以大致了解各个指标的不同状态。这种类型的可视化是我最常用的类型,在数秒钟之间,我就可以全面地总览系统各方面地运行情况。

火焰图

由Netflix的BrendanGregg在2011年开始使用的火焰图是一种较为少见地可视化方式。它不像仪表图那样可以从图表中快速得到关键信息,通常只会在需要解决某个应用的问题的时候才会用到这种图表。火焰图主要用于CPU、内存和相关帧方面的表示,X轴按字母顺序将帧一一列出,而Y轴则表示堆栈的深度。图中每个矩形都是一个标明了调用的函数的堆栈帧。矩形越宽,就表示它在堆栈中出现越频繁。在分析系统性能问题的时候,火焰图能够起到很大的作用,大家不妨尝试一下。



工具的选择

在告警工具方面,有几个商用的工具相当不错。但由于这是一篇介绍开源技术的文章,我只会介绍那些已经被广泛使用的免费工具。希望你也能够为这些工具贡献你自己的代码,让它们更加完善。

告警工具

Bosun

如果你的电脑出现问题,得多亏StackExchange你才能在网上查到解决办法。StackExchange以众包问答的模式运营着很多不同类型的网站。其中就有广受开发者欢迎的StackOverflow,以及运维方面有名的SuperUser。除此以外,从育儿经验到科幻小说、从哲学讨论到单车论坛,StackExchange都有涉猎。

StackExchange开源了它的告警管理系统Bosun,同时也发布了Prometheus及其AlertManager系统。这两个系统有共通点。Bosun和Prometheus一样使用Golang开发,但Bosun比Prometheus更为强大,因为它可以使用指标聚合(metricsaggregation)以外的方式与系统交互。Bosun还可以从日志和事件收集系统中提取数据,并且支持Graphite、InfluxDB、OpenTSDB和Elasticsearch。

Bosun的架构包括一个单一的服务器的二进制文件,一个诸如OpenTSDB的后端、Redis以及scollector代理。scollector代理会自动检测主机上正在运行的服务,并反馈这些进程和其它的系统资源的情况。这些数据将发送到后端。随后Bosun的二进制服务文件会向后端发起查询,确定是否需要触发告警。也可以通过Grafana这些工具通过一个通用接口查询Bosun的底层后端。而Redis则用于存储Bosun的状态信息和元数据。

Bosun有一个非常巧妙的功能,就是可以根据历史数据来测试告警。这是我几年前在使用Prometheus的时候就非常需要的功能,当时我有一个异常的数据需要产生告警,但没有一个可以用于测试的简便方法。为了确保告警能够正常触发,我不得不造出对应的数据来进行测试。而Bosun让这个步骤的耗时大大缩短。

Bosun更是涵盖了所有常用过的功能,包括简单的图形化表示和告警的创建。它还带有强大的用于编写告警规则的表达式语言。但Bosun默认只带有电子邮件通知配置和HTTP通知配置,因此如果需要连接到Slack或其它工具,就需要对配置作出更大程度的定制化(其文档中有)。类似于Prometheus,Bosun还可以使用模板通知,你可以使用HTML和CSS来创建你所需要的电子邮件通知。

Cabot

Cabot由Arachnys公司开发。你或许对Arachnys公司并不了解,但它很有影响力:Arachnys公司构建了一个基于云的先进解决方案,用于防范金融犯罪。在之前的公司时,我也曾经参与过类似“了解你的客户(KYC)”的工作。大多数公司都认为与恐怖组织产生联系会造成相当不好的影响,因为恐怖组织可能会利用自己的系统来筹集资金。而这些解决方案将有助于防范欺诈类犯罪,尽管这类犯罪情节相对较轻,但仍然也会对机构产生风险。

Arachnys公司为什么要开发Cabot呢?其实只是因为Arachnys的开发人员对Nagios不太熟悉。Cabot的出现对很多人来说都是一个好消息,它基于Django和Bootstrap开发,因此如果想对这个项目做出自己的贡献,门槛并不高。(另外值得一提的是,Cabot这个名字来源于开发者的狗。)

与Bosun类似,Cabot也不对数据进行收集,而是使用监控对象的API提供的数据。因此,Cabot告警的模式是拉取而不是推送。它通过访问每个监控对象的API,根据特定的指标检索所需的数据,然后将告警数据使用Redis缓存,进而持久化存储到Postgres数据库。

Cabot的一个较为少见的特点是,它原生支持Graphite,同时也支持Jenkins。Jenkins在这里被视为一个集中式的定时任务,它会以对待故障的方式去对待构建失败的状况。构建失败当然没有系统故障那么紧急,但一旦出现构建失败,还是需要团队采取措施去处理,毕竟并不是每个人在收到构建失败的电子邮件时都会亲自去检查Jenkins。

Cabot另一个有趣的功能是它可以接入Google日历安排值班人员,这个称为Rota的功能用处很大,希望其它告警系统也能加入类似的功能。Cabot目前仅支持安排主备联系人,但还有继续改进的空间。它自己的文档也提到,如果需要全面的功能,更应该考虑付费的解决方案。

StatsAgg

Pearson作为一家开发了StatsAgg告警平台的出版公司,这是极为罕见的,当然也很值得敬佩。除此以外,Pearson还运营着另外几个网站以及和O'ReillyMedia合资的企业。但我仍然会将它视为出版教学书籍的公司。

StatsAgg除了是一个告警平台,还是一个指标聚合平台,甚至也有点类似其它系统的代理。StatsAgg支持通过Graphite、StatsD、InfluxDB和OpenTSDB输入数据,也支持将其转发到各种平台。但随着中心服务的负载不断增加,风险也不断增大。尽管如此,如果StatsAgg的基础架构足够强壮,即使后端存储平台出现故障,也不会对它产生告警的过程造成影响。

StatsAgg是用Java开发的,为了尽可能降低复杂性,它仅包括主服务和一个UI。StatsAgg支持基于正则表达式匹配来发送告警,而且它更注重于服务方面的告警,而不是服务器基础告警。我认为它填补了开源监控工具方面的空白,而这正式它自己的目标。

可视化工具

Grafana

Grafana的知名度很高,它也被广泛采用。每当我需要用到数据面板的时候,我总是会想到它,因为它比我使用过的任何一款类似的产品都要好。Grafana由TorkelÖdegaard开发的,像Cabot一样,也是在圣诞节期间开发的,并在2014年1月发布。在短短几年之间,它已经有了长足的发展。Grafana基于Kibana开发,Torkel开启了新的分支并将其命名为Grafana。

Grafana着重体现了实用性以及数据呈现的美观性。它天生就可以从Graphite、Elasticsearch、OpenTSDB、Prometheus和InfluxDB收集数据。此外有一个Grafana商用版插件可以从更多数据源获取数据,但是其他数据源插件也并非没有开源版本,Grafana的插件生态系统已经提供了各种数据源。

Grafana能做什么呢?Grafana提供了一个中心化的了解系统的方式。它通过web来展示数据,任何人都有机会访问到相关信息,当然也可以使用身份验证来对访问进行限制。Grafana使用各种可视化方式来提供对系统一目了然的了解。Grafana还支持不同类型的可视化方式,包括集成告警可视化的功能。

现在你可以更直观地设置告警了。通过Grafana,可以查看图表,还可以查看由于系统性能下降而触发告警的位置,单击要触发报警的位置,并告诉Grafana将告警发送何处。这是一个对告警平台非常强大的补充。告警平台不一定会因此而被取代,但告警系统一定会由此得到更多启发和发展。

Grafana还引入了很多团队协作的功能。不同用户之间能够共享数据面板,你不再需要为Kubernetes集群创建独立的数据面板,因为由Kubernetes开发者和Grafana开发者共同维护的一些数据面板已经可用了。

团队协作过程中一个重要的功能是注释。注释功能允许用户将上下文添加到图表当中,其他用户就可以通过上下文更直观地理解图表。当团队成员在处理某个事件,并且需要沟通和理解时,这个功能就十分重要了。将所有相关信息都放在需要的位置,可以让整个团队中快速达成共识。在团队需要调查故障原因和定位事件责任时,这个功能就可以发挥作用了。

Vizceral

Vizceral由Netflix开发,用于在故障发生时更有效地了解流量的情况。Grafana是一种通用性更强的工具,而Vizceral则专用于某些领域。尽管Netflix表示已经不再在内部使用Vizceral,也不再主动对其展开维护,但Vizceral仍然会定期更新。我在这里介绍这个工具,主要是为了介绍它的的可视化机制,以及如何利用它来协助解决问题。你可以在样例环境中用它来更好地掌握这一类系统的特性。


via:https://opensource.com/article/18/10/alerting-and-visualization-tools-sysadmins

作者:DanBarker选题:lujun9972译者:HankChow校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

点击“了解更多”可访问文内链接

本文主要介绍了关于警报是什么意思(5)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/100570.html