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

前言

因為這個東西「web.page.regexp」,差點把自己殺了。一點都不誇張,這將近30度的天氣,辦公室不開空調,又要悶,還要帶著口罩,躁動的很。加上這個鬼東西「web.page.regexp」百度Google了沒有一點有用的資料,都是粘貼複製的估計,弄了一下午沒弄好,感覺時間又浪費了,又沒弄出來,著不著急。本來想著不想弄了,但是自己性格沒得辦法,到了手裡的問題,不解決過不去心裡這道坎。

後來實在沒辦法了,還下了個源程式碼看看,發現看不懂….,這就有點憂傷了,但是這個源程式碼給了我啟示,因為「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:指定輸出的格式,如果不指定,則匹配到的全部輸出,如果你的正則在全文有多處匹配,那麼只輸出第一處的

 

實例

往往理解一個東西,動手弄一個出來基本上明白了,一般作用於監控一個網站的某個狀態值,發生變化則告警之類的。比如版本號的版話。我們來看一個例子,比如我獲取我這邊博文的發布時間。

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

 

我們做測試的時候可以使用zabbix_get,這樣方便知道返回的結果,我們可以先把首頁下載下來,然後用文本工具打開做分析。