图片:来源哈Ha! 我叫Ilya Ableev,我在Badoo的监控部门工作。
您可以长时间保持哪种监控系统凉爽。 解决Badoo中问题的主要工具是Zabbix,我们已经多次
分享了对其进行自定义
的经验 。
开箱即用,您可以通过Web界面或通过邮件/ SMS了解新问题。 这很好,并且直到一定程度上我们对这些方法都感到满意。
如今,我们的系统具有多个服务器实例,数千个主机,数十万个检查以及需要尽快响应的相同数量的触发器。 在发生一系列事件之后,当我们只花了十分钟来发现问题(这是完全不能接受的)时,我们意识到我们需要其他方式来报告问题。 那么也许我们的反应会更快。
我们认为,最佳的解决方案是在所有窗口(浏览器,聊天,控制台)顶部显示重要的通知。 在本文中,我们将讨论如何完成Zabbix,并讲授如何将其直接发送到桌面。
此解决方案适合谁:
- 值班管理员,他们不仅要全天候监视显示器,还要处理其他任务;
- 所有其他管理员都不喜欢在邮件或SMS中查看“问题”和“确定”表,但是希望及时发现关键问题。
您将不得不花时间进行安装,但是我认为,如果您使用Zabbix并且已经使用了自定义脚本,那么对您来说并不困难。
注意! 以这种方式接收通知会令人上瘾,它的长期使用给人的印象是它是Zabbix不可或缺的一部分。
我将分步告诉您我们的工作方式。 技术实现非常简单:
- Zabbix发送警报到某个事件。
- 服务器上的发送脚本通过UDP将数据发送到桌面上的客户端。
- 收件人脚本接收通知,并通过其他应用程序触发弹出消息的出现。
第三项可能会有所不同,具体取决于您所使用的操作系统和最喜欢的应用程序。
第一步:配置Zabbix
官方文档详细介绍了
如何创建警报 。
该项目代码可在GitHub上找到:
https :
//github.com/ableev/ZbxDsktp 。
- 预先将zbxpush.py放在Zabbix服务器上的AlertScriptsPath中。
- 进一步在Web界面中: 管理 → 媒体类型 → 创建 。

3.我们将预先注册要发送警报的IP / FQDN。
该物品可以升级例如,我们这样做:有一个主监控服务器,使用SSH登录名,脚本会记住调用方的IP并开始向其发送警报。 因此,为了激活在家接收数据,您无需每次都更改操作。
在Web界面中:
管理 →
用户 →
%用户名% →
媒体 。

4.在触发器上创建一个动作。
在Web界面中:
配置 →
操作 。

发送格式
{TRIGGER.NSEVERITY}@@@{HOST.NAME}@@@{TRIGGER.NAME}
第一个是触发器的数字格式(4或5会影响所显示的图标:“高”或“灾难”),第二个是通知标题,第三个是消息正文。
@@@-便于分成几列,因为触发器的名称可以说出任何东西(至少对我们来说是:)),但肯定不是这种组合。


第二步:服务器向客户端发送数据
逻辑很简单:我们收到一个事件,然后将其转发给客户端。
zbxpush.py
在这里您可以将UDP更改为TCP。 我们选择UDP的原因很简单:Zabbix会按顺序发送所有通知,这意味着如果您的计算机不可用,则在使用TCP的情况下,通知将被长时间延迟发送。
但是UDP不可靠嘲笑UDP的读者会注意到,在通过UDP发送警报的情况下,有可能在服务器和桌面之间丢失警报。 而且他会是对的。 但这并不是要传递有保证的信息,而是要简单,迅速地将注意力吸引到出现问题的仪表板:“嘿,那里发生了什么,去看看。”
记住使脚本可执行!
第三步:接收事件并显示通知
zbxlistenerd.py
一个将在后台旋转并触发通知的脚本
settings.cfg
带有客户端设置的文件
icons/5.png
,
icons/4.png
不同临界值的触发器的图标
我们的道路进一步分歧。 “客户”部分涉及一些创造力,因为每个人都为自己创造一个环境。
需要什么:
- 与触发器的严重程度相对应的图标;
- 声音弹出通知;
- 通过单击通知来执行操作(SSH登录,打开链接,启动有关问题的票证等)。
我们公司主要使用Linux和Mac OS作为桌面OS,因此让我们来看一些示例。 如果您为Windows实现相同的功能,欢迎发表评论! 我们很高兴为您提供补充。
的Linux

让我给您一个碰巧使用的示例:Xfce中的notify-send(在上面的屏幕截图中)。 为什么使用libnotify进行通知发送而不是同一个Python? 是的,因为它存在于所有流行的桌面发行版(Ubuntu,Fedora,SUSE)中,并且可以与所有(至少流行的)DE(Gnome,KDE,Xfce)一起使用。
提示:如果您遇到某些问题的大量不可用时间(例如,交换机掉下来了,并且您被大量关于服务器不可用的触发器所淹没),请立即配置热键以完成通知发送过程。
Mac OS
由于最初该解决方案是基于免费应用程序实施的,然后我们尝试了付费应用程序,因此将有两个示例。
终端通知者

简短搜索后,选择了一个免费的
终端通知程序 。
优点:
- 您可以为不同的紧急程度设置不同的图标。
- 您可以在Zabbix中创建指向图表的链接,然后单击通知打开它们。
- 您可以实现SSH链接的打开:他们看到一个通知->单击->立即转到主机。
缺点:无(特别是在添加了图标支持之后)。
低吼
要启用,请在settings.cfg中设置growl_enabled = True。在终端通知程序不知道如何使用自定义图标的时候,Growl很好地解决了这个问题。 因此,我们的好奇心胜过我们的好奇心-我们尝试了这个相当流行的应用程序(我必须说,它不仅可以更改图标-它是整个通知中心)。
优点:
- 您可能已经安装了该应用程序;
- 您可以为不同的关键程度选择不同的图标。
- 就像在终端通知程序中一样,您可以通过单击通知来配置操作。
减:已付。
如果您没有Growl,我仍然建议您使用终端通知程序。
结论
因此,借助简单的设备...结果是:
- 快速向管理员发送通知;
- 减少对事件的反应时间(从事件“发现”到“修复”或“传递”的时间);
- 执行简单的半自动动作的能力:
此外,这完全取决于您的创造力。
曾几何时,当我在一家提供服务的公司工作时,当工作场所中所有扬声器和耳机的互联网通道断开时,都听到了警笛声。 这导致服务员(我)陷入昏昏欲睡,没有通过电话充分地报告问题,但是他(I)试图尽快解决此问题。
就个人而言,我已经知道一些案例,其中包括流行的防病毒软件中的猪的声音和流行的翻译人员中的说话者的声音。 :)
如果您有空闲时间,渴望和现代技术,则可以这样做
对事件做出快速反应!