分佈式監控系統之Zabbix主動、被動及web監控

  前文咱們瞭解了zabbix的網絡發現功能,以及結合action實現自動發現主機並將主機添加到zabbix hosts中,連接指定模板進行監控;回顧請參考https://www.cnblogs.com/qiuhom-1874/p/14020847.html;今天咱們來了解下zabbix的主動監控、被動監控以及web監控相關話題;html

  一、什麼是主動監控?什麼是被動監控?node

  咱們知道獲取數據的方式有兩種,一種是get,一種是push;在zabbix中描述主動監控和被動監控都是站在agent的一方來描述的;咱們把agent主動將數據發送給zabbix server這種方式採集數據,叫作主動監控;把zabbix server 向zabbix agent獲取數據的方式叫作被動監控,這種方式只有zabbix server週期性的請求zabbix agent,zabbix agent纔會響應對應的數據給zabbix server ,若是zabbix server 不請求,則zabbix agent不會發送數據給zabbix server ;而主動監控無論zabbix server請不請求agent,agent它都會以指定時間頻率向server推送數據;默認zabbix 是使用的被動監控,這也意味着zabbix server 要不停的去請求各zabbix agent去採集數據,不然就沒有數據;nginx

  二、主動監控的工做過程web

  要實現主動監控,首先agent要知道本身採集那些數據,而後發送給server端,其次zabbix server 怎麼區分不一樣的agent 發來的數據;在zabbix 監控系統中,主動監控的工做過程是,在zabbix web上配置好監控配置後,首先保存到zabbix database中,而後由zabbix server到database中把對應的配置進行應用;在主動模式中,zabbix server 第一次會主動連接zabbix agent 把監控配置推送給zabbix agent,zabbix agent 拿到監控配置之後,它就按照指定的時間頻率採集指定的數據發送給server端;而zabbix agent爲了標識本身的身份,它在向server端發送數據時,它會把配置文件中指定的hostname帶上,以hostname來標識本身是那個agent;數據庫

  三、zabbix trap模式瀏覽器

  trap模式也是主動監控中的一種,它的工做過程不依賴zabbix server配置的時間間隔,也不依賴zabbix agent;它的工做過程是,在被監控主機上使用zabbix sender工具,不定時的發送數據,而zabbix server端會運行一個traper的進程一直等待各個被監控端發來的數據;而後記錄數據到數據庫,從而完成一次數據收集的過程;這種模式主要用在收集當被監控端遇到緊急事件,臨時發出的信息;bash

  配置zabbix agent工做爲被動模式網絡

  提示:默認狀況zabbix agent採用被動模式監控,可是咱們要配置容許那個zabbix server來向zabbix agent發送指令採集數據;上面紅框中的Server指令就是來配置容許那個zabbix server向本agent發送指令採集數據,它能夠配置多個zabbix server的ip地址;配置好以上Server之後保存配置,啓動zabbix agent,在zabbix web界面配置使用zabbix agent 選擇zabbix agent便可完成對應item的配置;以下圖app

  配置zabbix agent工做爲主動模式ide

  提示:配置zabbix agent工做爲主動模式,除了要配置Server還要配置ServerActive和對應主機名,ServerActive指令用於指定將數據發送給誰;而配置主機名的方式可使用Hostname直接指定一個固定的主機名,或者使用HostnameItem來使用內建的zabbix key system.hostname獲取主機名;這兩種方式選擇一種便可;

  主動模式zabbix agent配置文件

[root@node05 ~]# grep -Ei ^[a-z] /etc/zabbix/zabbix_agentd.conf 
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.0.43
ServerActive=192.168.0.43
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@node05 ~]# 
View Code

  在zabbix web gui配置使用對應zabbix agent 的類型爲zabbix agent (active)

  查看咱們剛纔定義的item是否可以採集到數據呢?

  提示:可以採集到數聽說明咱們配置zabbix agent 爲主動模式是正常的;

  在zabbix web上配置使用zabbix trapper類型的item

  提示:以上配置表示容許node05.test.org這臺主機使用zabbix sender向zabbix server發送數據,發送數據的key爲test_trap,這個key沒有實質上的意義,主要用來標識對應數據的;這樣配置之後,在zabbix server 上就配置好一個trapper來接收node05.test.org使用zabbix_sender 發送test_trap這個key 的數據了;

  在node05上安裝zabbix-sender工具

[root@node05 ~]# yum install -y zabbix-sender

  在node05上使用zabbix_sender向zabbix server發送test_trap這個key的數據

[root@node05 ~]# zabbix_sender -z 192.168.0.43 -s node05.test.org -k test_trap -o "$(free|awk '/^Mem/{print $4}')"
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000360"
sent: 1; skipped: 0; total: 1
[root@node05 ~]# 

  提示:-z用戶指定zabbix server的地址,-s用戶指定本機主機名稱;-k用於指定接收數據的key,-o表示發送對應key的數據,-o能夠直接給定一個值或者使用命令替換的方式;

  在zabbix web上纔看對應key是否收到數據呢?

  提示:能夠看到對應key已經收到數據;這種trap一般能夠在沒有zabbix agent狀況下,對應被監控主機又想以特定頻率向zabbix server發送特定的數據時使用,咱們能夠把在被監控端執行的zabbix sender命令配置成一個定時任務,這樣也能夠完成周期性的數據採集;

  以上就是zabbix中經常使用的兩種主動監控的配置,接下來咱們再來了解下zabbix 的web監控

  什麼是web監控啊?從字面意思理解就是監控web網頁嘛,對就是監控web網頁;咱們知道一個web站點一般都不是一個頁面,除了主頁還有其餘系統頁面,好比支付系統,訂單管理系統等等;若是咱們監控一個web站點是否正常,若是隻監控主頁很顯然不夠;在zabbix上它提供了監控web頁面的接口,咱們只須要配置其對應被監控的頁面的訪問url便可;在zabbix 的web監控中,默認它會監控咱們指定頁面的3個指標數據,分別是監控指定頁面的資源下載速度,頁面響應時間和響應碼;

  配置node05上的web服務監控

  在node05上安裝web服務nginx作測試

[root@node05 ~]# yum install -y nginx

  模擬提供多個訪問頁面,並啓動nginx

[root@node05 ~]# cp /var/log/messages /usr/share/nginx/html/message.html
[root@node05 ~]# cp /var/log/lastlog /usr/share/nginx/html/lastlog.html
[root@node05 ~]# systemctl start nginx.service 
[root@node05 ~]# ss -tnl
State      Recv-Q Send-Q           Local Address:Port                          Peer Address:Port              
LISTEN     0      128                          *:80                                       *:*                  
LISTEN     0      128                          *:22                                       *:*                  
LISTEN     0      100                  127.0.0.1:25                                       *:*                  
LISTEN     0      128                          *:10050                                    *:*                  
LISTEN     0      128                         :::80                                      :::*                  
LISTEN     0      128                         :::22                                      :::*                  
LISTEN     0      100                        ::1:25                                      :::*                  
LISTEN     0      128                         :::10050                                   :::*                  
[root@node05 ~]#

  在zabbix web頁面上配置監控node05上的web服務

  提示:在主機列表中找到對應主機,選擇web;

  提示:選擇create web scenario進入建立web場景頁面;

  提示:填寫名稱和application,選擇更新時間間隔,以及嘗試次數和agent(客戶端瀏覽器,這裏選擇模擬谷歌的瀏覽器),填寫好web scenari 基礎信息後,點擊step,填寫要監控的頁面相關信息;

  提示:點擊add添加要監控的web url相關信息;

  提示:若是有其餘信息,在對應位置點擊add添加便可;按照以上邏輯添加其餘網頁url;

  提示:若是被監控的web頁面須要驗證登陸用戶名和密碼,能夠選擇Authentication菜單填寫對應的用戶名和密碼便可;以下

  提示:若是沒有驗證需求,最後的authentication能夠選擇不填寫;最後添加好web url後點擊Add就把對應的web 頁面添加到zabbix 監控中了;

  查看添加到web 監控,它到底採集哪些數據項?是否有數據呢?

  提示:從上面的頁面信息能夠看到咱們添加到web監控,它在每一個url上都監控了下載速率,狀態碼和響應時長;上述監控採集到數據中,咱們能夠看到對於work1指定的url 它監控響應碼是403,緣由是咱們沒有給message.html受權nginx用戶可讀,因此它響應403;修改權限便可;

[root@node05 ~]# chmod a+r /usr/share/nginx/html/message.html
[root@node05 ~]# ll /usr/share/nginx/html/message.html
-rw-r--r-- 1 root root 264214 Nov 23 19:01 /usr/share/nginx/html/message.html
[root@node05 ~]#

  查看nginx的訪問日誌,看看它是否在週期性的訪問對應的頁面?

[root@node05 ~]# tail /var/log/nginx/access.log         
192.168.0.43 - - [23/Nov/2020:19:51:23 +0800] "GET /lastlog.html HTTP/1.1" 200 292000 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
192.168.0.43 - - [23/Nov/2020:19:52:23 +0800] "GET /index.html HTTP/1.1" 200 4833 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
192.168.0.43 - - [23/Nov/2020:19:52:23 +0800] "GET /message.html HTTP/1.1" 403 555 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
192.168.0.43 - - [23/Nov/2020:19:52:23 +0800] "GET /lastlog.html HTTP/1.1" 200 292000 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
192.168.0.43 - - [23/Nov/2020:19:53:23 +0800] "GET /index.html HTTP/1.1" 200 4833 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
192.168.0.43 - - [23/Nov/2020:19:53:23 +0800] "GET /message.html HTTP/1.1" 403 555 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
192.168.0.43 - - [23/Nov/2020:19:53:23 +0800] "GET /lastlog.html HTTP/1.1" 200 292000 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
192.168.0.43 - - [23/Nov/2020:19:54:23 +0800] "GET /index.html HTTP/1.1" 200 4833 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
192.168.0.43 - - [23/Nov/2020:19:54:23 +0800] "GET /message.html HTTP/1.1" 403 555 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
192.168.0.43 - - [23/Nov/2020:19:54:23 +0800] "GET /lastlog.html HTTP/1.1" 200 292000 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-"
[root@node05 ~]# 

  提示:從上面的日誌中咱們能夠看到,zabbix server 以每一分鐘的頻率模擬谷歌瀏覽器在訪問對應監控的頁面;

  以上就是zabbix web監控相關的配置和演示;後續咱們就能夠針對web監控的採集到指標數據定義觸發器,告警等等操做;

相關文章
相關標籤/搜索