web.page.regexp用法(全网唯一)

时间:2024-01-26 19:20:07

web.page.regexp用法(全网唯一)

前言

因为这个东西“web.page.regexp”,差点把自己杀了。一点都不夸张,这将近30度的天气,办公室不开空调,又要闷,还要带着口罩,躁动的很。加上这个鬼东西“web.page.regexp”百度谷歌了没有一点有用的资料,都是粘贴复制的估计,弄了一下午没弄好,感觉时间又浪费了,又没弄出来,着不着急。本来想着不想弄了,但是自己性格没得办法,到了手里的问题,不解决过不去心里这道坎。

后来实在没办法了,还下了个源代码看看,发现看不懂....,这就有点忧伤了,但是这个源代码给了我启示,因为“web.page.regexp”的代码很简单,就定义了一个函数,里面什么内容都没有,我就想着代码都只有这么一点点,肯定用法不会太复杂,那就根据源代码的默认方法再试一遍,终于在下班时刻弄出来了。必须得把这个用法写出来,避免一遍又一遍的踩坑,真的很耗精力。

含义

想要用好一个东西,首先就必须得知道他的意思,要不然真的是对牛弹琴。

web.page.regexp可用先看一下他的官方文档,英文版的可能看不太懂,中文的实在看不明白,一直说这个监控项的功能是在网页中搜索字符串,然后一直以为是展示的网页,其实他的原理是:获取你指定网页的源码,然后对源码根据你的正则表达式做解析(你wget一个网页下载下来的东西)

web.page.regexp[host,<path>,<port>,regexp,<length>,<output>]

1、host:指定你的网页URL,如果是填的IP地址,则后面的path和port要指定。如果填的是域名,则path和port不在需要指定。

2、path:路径,默认是/

3、port:端口,默认是Http,80

4、regexp:正则表达式

5、length:返回的最大字符数

6、output:指定输出的格式,如果不指定,则匹配到的全部输出,如果你的正则在全文有多处匹配,那么只输出第一处的

 

实例

往往理解一个东西,动手弄一个出来基本上明白了,一般作用于监控一个网站的某个状态值,发生变化则告警之类的。比如版本号的版话。我们来看一个例子,比如我获取我这边博文的发布时间。

[root@ip-10.0.0.23 ~]# zabbix_get -s 10.0.0.23 -k web.page.regexp[https://www.cnblogs.com/lemon-le/p/12488549.html,,,\\d.*-\\d.*-\\d.*\ \\d.*\:\\d\\d,,]
2020-03-13 19:40

 

我们做测试的时候可以使用zabbix_get,这样方便知道返回的结果,我们可以先把首页下载下来,然后用文本工具打开做分析。