Zabbix - 如果网站中存在特定字符串,则触发电子邮件
Zabbix - Trigger an email if a certain string is present in website
我几周前开始使用 Zabbix(4.0 版),目的是不断监控我公司的网站和应用程序。我很容易地让它监视某些位置的响应代码和下载时间,甚至检查它是否存在一些关键字符串。这意味着,在我的 web 场景的步骤中,我已经将 Zabbix 配置为在网站上搜索字符串并触发错误电子邮件 如果该字符串不存在。
不过,我现在要做的恰恰相反:我必须配置 Zabbix 以触发网站上出现的字符串 。
例如:我有网站 www.myprettyexample.com,由 Zabbix 监控。如果在其 HTML 中存在字符串“Error detected!!”,Zabbix 将触发我一封电子邮件,以某种方式警告它。
那么,这有可能实现吗?如何?如果没有,最好的解决方法是什么?
您可以使用新的 http agent check。
使用以下设置在您的 Zabbix 服务器上配置一个 http 代理类型的项目:
- 密钥:选择密钥名称
- url: www.myprettyexample.com/somepage.html
- 方法:获取
- 检索模式:正文
- 类型:文本
这将捕获整个页面并存储它(请检查存储!),您可以在 "Latest Data" 页面中检查捕获。
然后您可以创建一个简单的正则表达式触发器,例如 {YourZabbix:YourKey.iregexp("Error detected")}=1
。
虽然有效,但可能会浪费您的存储空间:更好的方法是捕获占地面积小的特定状态页面的 json 状态页面(如果存在)。
我几周前开始使用 Zabbix(4.0 版),目的是不断监控我公司的网站和应用程序。我很容易地让它监视某些位置的响应代码和下载时间,甚至检查它是否存在一些关键字符串。这意味着,在我的 web 场景的步骤中,我已经将 Zabbix 配置为在网站上搜索字符串并触发错误电子邮件 如果该字符串不存在。
不过,我现在要做的恰恰相反:我必须配置 Zabbix 以触发网站上出现的字符串 。
例如:我有网站 www.myprettyexample.com,由 Zabbix 监控。如果在其 HTML 中存在字符串“Error detected!!”,Zabbix 将触发我一封电子邮件,以某种方式警告它。
那么,这有可能实现吗?如何?如果没有,最好的解决方法是什么?
您可以使用新的 http agent check。
使用以下设置在您的 Zabbix 服务器上配置一个 http 代理类型的项目:
- 密钥:选择密钥名称
- url: www.myprettyexample.com/somepage.html
- 方法:获取
- 检索模式:正文
- 类型:文本
这将捕获整个页面并存储它(请检查存储!),您可以在 "Latest Data" 页面中检查捕获。
然后您可以创建一个简单的正则表达式触发器,例如 {YourZabbix:YourKey.iregexp("Error detected")}=1
。
虽然有效,但可能会浪费您的存储空间:更好的方法是捕获占地面积小的特定状态页面的 json 状态页面(如果存在)。