首页 > 其他分享 >Zabbix7.0教程:新增Browser监控项

Zabbix7.0教程:新增Browser监控项

时间:2024-11-06 10:09:14浏览次数:1  
标签:xpath el 教程 -- zabbix Zabbix7.0 Browser browser

前言    

Zabbix 7.0.0版本之后,增加了“Browser”监控项类型,即浏览器监控,能够使用浏览器监控复杂的网站和web应用。 浏览器监控项允许执行用户定义的JavaScript代码来模拟与浏览器相关的操作,例如点击、输入文本、网页导航等。该监控项通过HTTP/HTTPS收集数据,并部分实现了使用Selenium Server或普通的WebDriver(例如ChromeDriver)作为测试终端的W3C WebDriver标准。

本文主要介绍一个使用“Browser”监控项的例子。

本次实验环境如下:

操作系统版本:Anolis OS 8.8

操作系统内核信息:Linux localhost 4.18.0-477.36.1.0.1.an8.x86_64 #1 SMP Thu Dec 28 06:29:01 CST 2023 x86_64 x86_64 x86_64 GNU/Linux

Zabbix版本:7.0.3

本次实验需要配置yum源,最好是互联网的yum源,并且能连接互联网。

安装chrome浏览器和chromedriver驱动

在Zabbix服务器上安装chrome浏览器:

curl -k https://intoli.com/install-google-chrome.sh | bash

 

查看浏览器的版本:

rpm -qa | grep chrome

从上图可知,本机安装的chrome浏览器版本为130.0.6723.91

 

下载同大版本的浏览器驱动(即130版本),驱动查找方式参考:https://blog.csdn.net/m0_54958293/article/details/134663146

本次测试,我下载是https://storage.googleapis.com/chrome-for-testing-public/130.0.6723.91/linux64/chromedriver-linux64.zip

 将该zip文件上传到linux服务器上并解压。

 

 

安装运行驱动需要的依赖环境:

yum install nss

附:可通过执行ldd chromedriver命令查看驱动是否缺少其他lib,如有缺少,需要继续安装其他lib。

 

运行该驱动程序:

nohup /root/chromedriver-linux64/chromedriver --port=4444 --allowed-ips=127.0.0.1,192.168.80.144  > chromedriver.log &

说明:--port表示需要监听的端口,--allowed-ips表示允许哪些IP地址使用该驱动

确认驱动是否正常运行:

ps -ef | grep chromedriver

ss -tnl | grep 4444

 

修改zabbix_server配置文件

修改zabbix_server的配置文件,在配置文件的最下方加上:

WebDriverURL=http://192.168.80.144:4444

 

执行zabbix_server -T命令确定配置文件修改后无问题

 

重启zabbix_server服务:(不同环境的重启命令可能不同)

systemctl restart zabbix-server

systemctl status zabbix-server

 

添加一个Browser监控项

创建监控主机:

 

创建监控项:

 

名称:自定义

类型:Browser

键值:自定义

信息类型:文本

更新间隔:5m (按需修改)

需要注意的是,默认的超时时间是60秒,如果网页访问较慢,需要适当延长时间。

脚本:(按需修改)

var opts = Browser.chromeOptions();
opts.capabilities.alwaysMatch['goog:chromeOptions'].args = ["--no-sandbox","--disable-dev-shm-usage","--headless","--disable-gpu","--no-first-run"];
//opts.capabilities.alwaysMatch['goog:chromeOptions'].binary= '/usr/bin/google-chrome-stable';

var browser = new Browser(opts);

try {
    browser.navigate("http://192.168.80.144:8080/index.php");   //需要修改为zabbix的登录页面地址
    
    var el = browser.findElement("xpath", "//input[@id='name']");
    if (el === null) {
        result = "找不到用户名输入框";
    }
    el.sendKeys("Admin");   //需要修改为登录用的用户名
    el = browser.findElement("xpath", "//input[@id='password']");
    if (el === null) {
       result = "找不到密码输入框";
    }
    el.sendKeys("zabbix");   //需要修改为登录用的密码
    el = browser.findElement("xpath", "//button[@id='enter']");
    if (el === null) {
        result = "找不到登录按钮";
    }
    el.click();
    
    el = browser.findElement("xpath", "//li[@id='config']");
    if (el === null) {
       result = "无法找到数据采集菜单";
    }
    el.click();
    el = browser.findElement("xpath", "//a[@href='zabbix.php?action=host.list']");
    if (el === null) {
        result = "无法找到主机链接";
    }

    el.click();

    el = browser.findElements("xpath", "//a[@data-hostid]");
    result = [];
    for(var i=0,count=el.length;i<count;i++)
    {
        result.push(el[i].getText());
    }
    result = "当前页面的主机名称列表为:" + result ;
    //result = browser.getPageSource();  //返回当前页面的整个HTML源代码

    el = browser.findElement("xpath", "//a[@class='zi-sign-out']");
    if (el === null) {
        result = "无法找到退出按钮";
    }
    el.click();
    

}
catch (err) {
    result = err.message;
}
finally {
   return result;
}

查看并对比监控结果:

 

 

附上面脚本的部分解析

browser.navigate("http://192.168.80.144:8080/index.php");

网页为Zabbix的登录页面,如下图:

 

var el = browser.findElement("xpath", "//input[@id='name']");

el = browser.findElement("xpath", "//input[@id='password']");

el = browser.findElement("xpath", "//button[@id='enter']");

均为查找元素,findElement只会查一个元素,findElements会查所有符合要求的元素。

 

el.sendKeys("Admin");

表示往查找到的元素中输入字符。

el.click();

表示执行左键点击操作。

 el[i].getText()

表示获取该元素的内容。

 result = browser.getPageSource();

可以返回当前页面的整个HTML源代码

脚本中的可变参数,还可与主机宏联动,实现从外部传入到脚本里,具体可参考Zabbix 7版本自带的监控模板:Website by Browser

zabbix在线答疑,可以关注乐维社区

标签:xpath,el,教程,--,zabbix,Zabbix7.0,Browser,browser
From: https://www.cnblogs.com/lwops/p/18529399

相关文章

  • springboot整合redis详细教程
     前言什么是redis? Redis是一个开源的高性能键值存储系统,通常用作数据库、缓存或消息代理。以下是对Redis的详细介绍:1.基本特性速度快:Redis的读写速度非常快,可以达到每秒数万次的读写操作。多种数据结构:支持字符串、列表、集合、有序集合、散列、位图、超日志和地理......
  • IDEA 2024 安装激活教程(附激活补丁,亲测有效)
    第一步前往idea的官网,下载新版的idea下载完成后,进行安装,next,安装完成首次打开,会要求输入激活码才能使用第二步点击获取补丁文件保存下载之后进入文件夹***/JetBrains2023最新全家桶激活***找到文件/方式3:永久激活补丁+脚本(适合最新版本,可显示到2025年)点击进入/scr......
  • 关于 IntelliJ IDEA 2024 安装激活教程(亲测有效~)
    第一步速度慢的点击这里进行下载第二步点击xx关掉程序!第三步点击获取补丁文件打开标注的文件注意:以后这个文件夹不要动点击进入/scripts点击【确定】按钮后,过程大概5-30秒,如看到弹框提示Done时,表示成功完成,之后打开idea输入6G5NXCPJZB-eyJsaWNlbnN......
  • EViews13下载与安装教程
    EViews13是一款经济计量分析软件,由QMS开发,专门用于时间序列分析、数据管理和预测建模。它广泛应用于经济学研究、金融分析、市场预测和政策评估等领域,为用户提供了丰富的数据分析和建模工具;1、安装包  EViews13(64bit):链接:https://pan.quark.cn/s/13bfd3f50051提取码:6w......
  • SPSS 26 下载与安装教程
    SPSS(StatisticalProductandServiceSolutions),即“统计产品与服务解决方案”,是社会科学研究领域内的翘楚。本教程提供了丰富的数据管理、描述统计、推断统计以及回归分析等功能介绍,界面友好,易学易用;1、安装包 SPSS26:链接:https://pan.quark.cn/s/87f446456d462、安装教......
  • 学习通刷课————小教程
    前言大家还为没有太多的时间去看学习通视频困扰吗?今天给大家分享一个小tips注意不是脚本!不是脚本!不是脚本!之这是供大家学习js语言的小练习,正好能解决学习通的一些BUG一、安装插件我们选用Edge浏览器,打开浏览器并打开扩展搜索:ScripCat,并下载安装插件二、复制文件链......
  • 流年诛仙十六职业星座版+单机安装教程+GM工具
    天给大家带来一款单机游戏的架设:流年诛仙十六职业星座版。游戏版本:v4.4.0只适用于单机娱乐,此教程是本人亲测所写,踩坑无数,如果你是小白跟着教程走也是可以搭建   亲测视频演示https://githubs.xyz/show/298.mp4 游戏安装步骤此游戏架设需要安装虚拟机,没有虚拟机的请......
  • HTC Vive SDK:空间定位与追踪技术教程_2024-07-26_09-12-46.Tex
    HTCViveSDK:空间定位与追踪技术教程HTCViveSDK概览HTCViveSDK(SoftwareDevelopmentKit)是为开发者提供的一套工具和API,用于创建与HTCVive虚拟现实头盔兼容的应用程序。该SDK的核心功能之一是空间定位与追踪技术,它允许开发者在虚拟环境中精确地追踪用户的头部和手部......
  • HTC Vive SDK:手柄控制与输入技术教程_2024-07-26_09-21-37.Tex
    HTCViveSDK:手柄控制与输入技术教程HTCViveSDK概览SDK下载与安装在开始开发HTCVive虚拟现实应用之前,首先需要下载并安装HTCVive的SDK。以下是详细的步骤:访问官网:打开HTCVive的官方网站,找到开发者中心。下载SDK:在开发者中心页面,找到并下载适用于你操作系统的......
  • HTC Vive SDK:性能优化与测试技术教程_2024-07-26_09-39-02.Tex
    HTCViveSDK:性能优化与测试技术教程HTCViveSDK概览SDK主要组件介绍在开发HTCVive虚拟现实应用时,SDK(SoftwareDevelopmentKit)是不可或缺的工具包,它包含了创建高性能VR体验所需的各种组件和库。HTCViveSDK的核心组件包括:1.OpenVROpenVR是Valve开发的开源VR平台......