c# 监控警报_如何通过聊天警报改善网络监控

c# 监控警报

当然,网络监视解决方案的重点是告诉您网络上什么时候出现故障,但是解决方案的有效性直接取决于其警报的显着性和及时性。

对于我的工作来说,系统故障电子邮件可能是压倒性的,因此我认为聊天机器人服务会更有用。 经过研究之后,似乎我已经拥有两个可以完成这项工作的工具: MattermostZabbix 。 但是,如何使它们一起工作呢?

Zabbix是一个开放源代码的分布式监视解决方案,具有各种社区开发的插件和便捷的集成工具(例如Grafana )。 我用它来监视我的家庭网络设备,服务器基础结构和服务(例如Elastic stack ,以前称为ELK堆栈)。 Mattermost是MIT许可的跨平台消息服务。 它是开源的,欢迎将请求发送到GitHub repos 。 在我的网络上,我将Mattermost用于大多数通知,例如当前天气,火车时刻表等。

我认为将现有的Mattermost聊天服务器与Zabbix监视服务器集成起来将非常简单,并为我提供了更好地监视我的家庭网络所需的工具。 想法是创建一个单独的通道专门用于系统警报,我可以根据需要订阅或静音。 我还可以选择设置特定的通知(例如,关闭虚拟机管理程序)以通知特定的用户。

这是有关如何建立设置的分步指南。 希望它将帮助您建立自己的。

必备硬件和软件

这是我用来实现此目的的方法:

  • HP ProLiant MicroServer Gen8服务器硬件
  • VMware ESXi虚拟机管理程序
  • 可以访问Internet的CentOS 7.x x64虚拟机,用于Docker / HTTP(S)GET的出站
  • Docker和Docker守护程序正在运行

设置Mattermost和Zabbix

我使用的是Mattermost的Docker版本,但是您也可以将其作为完整的应用程序安装在服务器上。 要下载Docker映像并启动它(一旦您已经运行Docker),可以使用以下命令:


docker run --name mattermost-preview -d --publish 8065 : 8065 mattermost / mattermost-preview 

如果这不起作用,请查阅《 Docker安装指南》以获取更多帮助。

设置Zabbix来监视远程服务器通常很轻松,但是其配置可能有些棘手。 值得庆幸的是,Zabbix的文档和论坛中提供了大量信息,DigitalOcean提供了非常好的设置指南 。 当为Zabbix 添加要监视的节点 (而不仅仅是监视服务器)时,本指南最有用。

设置Zabbix和Mattermost后,登录每个系统并保护它们(请参阅下面的“安全性如何?”)。 您可以将选择的任何电子邮件地址用于Mattermost的测试实例。

设置单点登录

如果要在企业环境中进行设置,则可能需要启用单点登录(SSO)。 Mattermost的社区版本没有直接的Active Directory(AD)集成选项,但是,如果您使用GitLab中包含的版本或具有GitLab服务器,则可以将Mattermost绑定到GitLab,并且GitLab可以对AD进行身份验证。

配置Zabbix

编写您的警报脚本

警报脚本可以使用任何所需的语言编写。 一个简单的Bash脚本就可以满足我的需求,您可以在此基本示例脚本上快速构建,以制作对您更有用的警报脚本。

默认情况下,Zabbix将在Zabbix提供的CentOS 7软件包的/ usr / lib / zabbix / alertscripts目录中查找 ,但是可以通过在Zabbix配置中修改AlertScriptsPath来更改它。 确保该脚本对于正确的用户是可执行的。

如果您从上面链接的Bash脚本示例开始,请确保更改Webhook密钥和IP地址。 有关设置传入的Webhooks的更多信息,请参阅下面的“配置Mattermost”或查看Mattermost文档

脚本到位后,就该配置Zabbix以使用该脚本,将媒体类型添加到警报中,并配置Zabbix以将警报发送给您的用户。

添加新的媒体类型

要将新的警报机制添加到Zabbix,您需要通过将脚本添加到Zabbix的“ 管理”>“媒体类型”部分来告诉它如何使用上一节中放置的脚本。

Zabbix media types

在“名称”字段中,输入您为新媒体类​​型选择的任何名称。 在“类型”下拉列表中选择“脚本”,然后在“脚本名称”字段中输入您在上一节中编写的脚本的名称(例如, somethingmost.sh )。 “脚本参数”部分定义了将直接传递给脚本的内容(例如,在Bash中引用脚本中的$ 1和$ 2)。

为了让Zabbix使用新脚本将警报发送给用户,必须在用户的“媒体”设置(即“ 管理”>“用户”>“媒体” )中对其进行配置。 在这里,您可以添加媒体类型并设置其活动时间(例如,所有警报类型为24x7等)。 您可以在Zabbix文档中找到有关配置主机的更多信息。

Configuring a user media type in Zabbix

现在Zabbix已准备就绪。

配置最重要的

一旦启动了Mattermost并配置了帐户,就应该创建一个新的提醒渠道。

Zabbix alerts channel in Mattermost

您需要先启用传入的Webhook,然后才能为单个频道/用户配置它们。 这可以在Mattermost系统控制台的“ 集成”>“自定义集成”>“启用传入的Webhooks”中完成

Enabling incoming webhooks in Mattermost

启用Webhook后,您需要使用与下图类似的URL配置传入的Webhook。

Add incoming webhooks in Mattermost

测试警报

您可以使用多种方法使Zabbix触发警报,但最简单的方法是监视主机并重新启动主机(等待Zabbix警报涌入)或设置简单的服务监视器,例如HTTPD监视并使用netcat侦听端口80,一旦Zabbix探测到netcat,会话将结束,几分钟后Zabbix将抛出警报,提示服务已恢复/关闭。

设置移动警报

如果您想在手机上看到警报,可以下载适用于iPhone和Android的Mattermost应用 。 该应用程序可以轻松配置为指向Mattermost实例的URL,从而使您可以轻松监控来自智能手机的警报和通道。

Mobile alerts

那么安全性呢?

为了安全地访问我的VM并对其进行远程监控,我在手机上设置了一个VPN端点,该端点连接到网络的VPN端点。 当我的手机连接到Internet和VPN时,我也可以在内部访问它们。 (不可否认,我不太担心我的VM和软件的安全性,因为它们都在我的独立家庭测试网络上运行。)

如果您正在寻找更深层次的安全性,那么以下是用于安全性增强的基本最佳实践的详尽列表:

  • 启用S​​SL并使用内部证书颁发机构,付费的受信任证书提供者或免费证书(例如,让我们加密)中的适当SSL证书。
  • 使用符合最佳做法的密码策略和帐户命名约定(例如,不要使用访客帐户,并确保将访客帐户添加到禁用组)。
  • 更改默认的Zabbix密码,并确保它仅在端口443上侦听。
  • 验证所有服务仅在必需的接口上侦听。
  • 保护您的Webhook,不要将其暴露给不受信任的网络/设备。
  • 通常,如果不需要,不要将任何服务公开给Internet或不受信任的网络。
  • 理想情况下,在单独的节点或单独的容器中运行这些服务。
  • 使用本地防火墙或过滤服务保护主机。

更进一步

如果有更多时间,构建一个聊天机器人来管理通知将非常有用,这样我就不必进入Zabbix来处理警报了。 这将使我可以针对磁盘抖动警告等使警报静音。向警报添加更多上下文也可能有所帮助,并且Zabbix支持的提供了扩展基本警报的选项。 最后,在实践中,最好始终在多个站点之间分布监视,以便您更有机会知道数据中心何时脱机。

您对使此监视和警报系统更加有用有什么想法? 请在评论中分享您的想法。

翻译自: https://opensource.com/article/17/7/integrating-mattermost-and-zabbix

c# 监控警报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值