告警治理 香! 夜莺监控
监控是方法,告警是手腕,处置是目的。
然而,大家有没有遇到这种困惑。我搜集了一大堆目的,然而我不知道哪些目的应该告警,也不知道如何把这些告警发送到对应的团队或许团体,更不知道如何做告警更新。
我之前用 Prometheus+Altermanager 这一套的时刻,为每个团队弄一个钉钉群,而后打了一堆的标签,婚配不同的标签发送到不同的群,假设要做告警更新的话,很多时刻都是经过阈值更新来成功,然而同一个告警经过期间来更新就不好办。
然而夜莺在做告警规定治理就没那么复杂(复杂的事情他们给你做了),而且还很优雅。我在 《【夜莺监控】初识夜莺,还是强!》 提到过:Grafana 更长于监控面板的治理,N9e 更长于告警规定的治理。
当天,咱们就来看看夜莺究竟是怎样玩的。
兵马未动,粮草后行。
要告警,得先知道咱们的需求是什么,也就是要弄明确哪些目的须要告警。
比如说,在系统层面,咱们要思考 CPU、内存、磁盘、IO 等目的;在运行层面,咱们要思考运行的饱和度、失败率以及提早等;在业务层面,咱们要思考这次的买卖失败次数、哪里失败等。
站在不同的层面,思考的监控目的以及告警战略会不一样。
夜莺的告警规定分为内置规定和自定义规定。
内置规定旨在降落大家的经常使用门槛,为大家提供一套普适性的规定。关键有以下内容:
内置的告警规定不会失效,除非你把它拉到你的规定里。假设你看中了某个规定,就可以把它克隆到失效规定中。比如,我把 Linux TIME_WAIT 告警规定克隆到自动业务组中。
而后到告警规定总览里就能看到自动业务组中新增了一条告警规定。
看到这里,脑海里能否有一点灵感了?
咱们可以依据实践状况创立多个业务组,而后能否就可以把触及到多个业务组的告警规定启动分开治理了?
假定咱们有前台以及中台两个团队,就可以把目的区分归类。
自动导入出去的规定准则上是没有失效的,须要做一些额外性能。
点开告警规定称号,进入性能页面。
咱们可以自定义告警条件、数据源、告警等级等性能。如上咱们性能的信息演绎如下:
接上去就是额外的性能了,如下:
失效性能用来性能该告警规定在什么期间段,什么业务组失效。而通知性能则是性能通知媒介,也就是假设发生了告警,应该经过哪些渠道发到哪些中央。
不过,在通知性能处还可以做额外的性能:
看到这里,有没有对普通的告警规定治理有必定的意识了?
除了克隆内置的告警规定,咱们还可以自定义告警规定,不过全体上的性能和下面是一样的。
普通被屏蔽的告警都不是很关键的告警。
那在什么状况下会屏蔽告警呢?
比如咱们在做运行发版的时刻,不免会遇到疑问,这时刻可以提早做一些屏蔽规定,免得发生告警信息。
屏蔽规定也是按业务组分的,咱们可以新增一条规定,如下创立一条屏蔽信息中心告警的规定。
这样在固定的期间窗口内,告警信息不再发送。
有的同窗或许要说了,这样一个一个减少,是不是稍显费事?
假设是曾经发生的生动告警,可以一键屏蔽。
假设是历史告警,也可以一键屏蔽。
除此之外呢?
想屏蔽啥,就自己加吧!
假设一个告警在一段期间内还没启动处置,怎样办?
要么不是关键的告警——把规定删了吧,留之无用。
要么是处置不了的告警——更新吧,让更多人知道。
在夜莺中,在订阅规定中可以成功告警更新。
比如,咱们性能如下:
假设 server=notice 的告警事情在 1 小时内还未处置,咱们将告警等级更新为一级,并且将告警信息发送到更初级别的群里。
这里的规定也可以按业务团队来启动分类治理。
除此之外还提供生动告警和历史告警,可以检查有哪些告警信息,以及历史的告警记载。
从事运维越久,其实会发现很多事情的处置都是重复性的,一些便捷重复的上班可以经过智能化脚原本启动处置,不只能优化上班效率,也能在必定水平上降落人为操作的危险。
夜莺提供了告警自愈性能。性能虽好,可不好贪杯哦。
处置一个告警,必定要先弄分明面前的真正要素,这样才干处置疑问。所以关于告警自愈,必定要明确你做的这个智能化操作的危险很低并且试验了很屡次。不要存在cd /opt/aaa;rm -rf ./的操作。
在夜莺中,经常使用ibex模板来成功告警自愈。目前ibex-server端须要自己部署,ibex-agent端曾经集成到Categraf中去了。
到下载二进制包,下载上去事先外面有以下文件:
# lltotal 21536drwxr-xr-x 3 root root4096 Apr 19 10:44 etc-rwxr-xr-x 1 root root 16105472 Nov 152021 ibex-rw------- 1 root root5931963 Jun32022 ibex-1.0.0.tar.gzdrwxr-xr-x 2 root root4096 Nov 152021 sql
导入数据库:
mysql -uroot -p <sql/ibex.sql
而后修正/etc/server.conf性能文件,关键修负数据库的性能。
最后启动服务端:
nohup ./ibex server &> server.log &
在系统性能->通知性能->告警自愈模块性能对应的服务端地址:
而后到告警自愈->自愈脚本处减少脚本,如下:
保留分开,点击创立义务:
假设外面的性能不须要修正或许修正对应的性能后,选用立刻口头:
到这,你认为就好了么?
反正我没成功,到这里我不得不吐槽一下这个模块:
所以,我这里并没有成功,前端抛了超时。
后端没有日志。
目前夜莺能够比拟完全的成功告警规定的治理,告警渠道散发以及告警信息克服以及更新,而且 FlashDuty 可以接入不同的集群告警,在大局部企业中以及够用了。
只是在测试告警自愈的时刻,我没有测试成功。应该是跟我的环境有相关:
不过详细的要素没有排查进去,可用的排查信息太少了。