Zabbix 4.0企業級分佈式監控 day08 第六章 數據收集04

 

6.10 User Parameter

有Agent的用戶自定義參數,定義所需要的監控項,從而收集想要的數據
在這裏插入圖片描述

用戶自定義參數.
前提條件: 被監控設備 安裝並正確配置zabbix agent ,添加自定義監控的配置文件和命令腳本
(既可以是主動模式 又可以是被動模式)
在這裏插入圖片描述
語法(在Zabbix Agent的配置文件中)

UserParameter=<key>,<command>

#vim /etc/zabbix/zabbix_agentd.conf
需要確認啓動zabbix-agent的用戶是否可以啓動腳本
可以在zabbix_agent.conf中添加如下配置(一般放在文件中的Include的zabbix_agentd.d下面)

定義用戶的數量和進程的數量
UserParameter=user.count,who|wc -l
UserParameter=process.count,ps aux|wc -l 
#UserParameter=processcount[*],ps aux |grep $1|grep -v grep|wc -l  #這樣可以傳遞參數並監控

重啓
systemctl restart zabbix-agent.service

如何保證UserParameter配置是正確的?
在server端可以通過zabbix_get 獲取監控項的值

查看是否安裝 yum list all |grep zabbix
yum install zabbix-get.x86_64

#zabbix get -h
#zabbix_get -s 192.168.93.147 -p 10050 -k user.count
#zabbix_get -s 192.168.93.147 -p 10050 -k process.count
#zabbix_get -s 192.168.93.147 -p 10050 -k process.count[zabbix_agent]

第一步:創建監控項
在這裏插入圖片描述
在這裏插入圖片描述
第二步:驗證結果
在這裏插入圖片描述

用戶自定義參數在使用過程中的技巧,規範
(一般放在zabbix_agent.conf配置中的Include的zabbix_agentd.d下面)

[root@localhost zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@localhost zabbix_agentd.d]# vim userparameter_process_count.conf
UserParameter=process.count,ps aux|wc -l

重啓zabbix agent
查看數據是否依然能收到最新的

如何往用戶自定義參數中配置參數

客戶端Zabbix Agent
[root@localhost zabbix_agentd.d]# vim userparameter_process_count_new.conf
UserParameter=processcount[*],ps aux|grep $1|grep -v grep|wc -l

這樣可以看到指定的進程中的進程數量,比如監控zabbix agent的進程數量
重啓zabbix agent,通過服務端Zabbix Server的zabbix_get測試
[root@localhost data]# zabbix_get -s 192.168.93.147 -p 10050 -k processcount[zabbix_agentd]
13

在這裏插入圖片描述
同樣的,可以配置到監控項當中
在這裏插入圖片描述

在這裏插入圖片描述

6.11 Zabbix Trapper

無需安裝Zabbix Agent

使用場景:只要可以將數據發送給zabbix-server即可
前提條件:

  1. zabbix-server端配置zabbix trapper類型的監控項
  2. 被監控設備使用zabbix_sender命令或其他客戶端發送監控數據

語法

zabbix_sender -z <zabbix server ip> -p <port> -s <host> -k <item key> -o <value>.

數據收集流程
在這裏插入圖片描述

創建兩個監控項
在這裏插入圖片描述
在這裏插入圖片描述
創建完成之後登陸到zabbix-agent端發送監控數據

yum -y install zabbix-sender
#zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k process.cpu -o 70.9
#zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k log.content -o "warning:test"

[root@localhost ~]# zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k process.cpu -o 70.9
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000059"
sent: 1; skipped: 0; total: 1

在這裏插入圖片描述

可以將zabbix_sender和user_parameter結合起來

配合腳本

[root@localhost ~]# cd /etc/zabbix/
[root@localhost zabbix]# ls
web  zabbix_agentd.conf  zabbix_agentd.d
[root@localhost zabbix]# mkdir lldscripts
[root@localhost zabbix]# vim /lldscripts/zabbix_trapper_script.sh
[root@localhost zabbix]# cat /lldscripts/zabbix_trapper_script.sh 
zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k process.cpu -o 70.9
zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k log.content -o "warning:test"
[root@localhost zabbix]# chmod a+x /lldscripts/zabbix_trapper_script.sh 
[root@localhost lldscripts]# ./zabbix_trapper_script.sh 
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000135"
sent: 1; skipped: 0; total: 1
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000205"
sent: 1; skipped: 0; total: 1

 
[root@localhost lldscripts]# cd /etc/zabbix/zabbix_agentd.d/
[root@localhost zabbix_agentd.d]# vim userparameter_zabbix_trapper.conf
UserParameter=zabbixtrapper.info,/etc/zabbix/lldscripts/zabbix_trapper_script.sh

[root@localhost zabbix_agentd.d]# systemctl restart zabbix-agent.service

在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
好處:①所有監控項在同一秒收集 ②Zabbix Trapper會降低Zabbix Server的壓力,下發到各個被監控設備上

 

6.12 External Check

外部檢查 無需Agent,實際應用中用的不多
在zabbix-server或者zabbix-proxy上通過執行腳本獲取監控數據

前提條件
zabbix server

  1. 配置ExternalScripts參數,指定腳本的路徑
  2. 準備獲取監控數據的腳本
  3. 添加External Check監控項

數據收集流程
在這裏插入圖片描述
語法:

script[<parameter1>,<parameter2>,...]

zabbix-server端執行腳本時會fork子進程來處理腳本,當有大量的外部檢查時,會導致zabbix-server的性能下降.

Server服務端:
yum install bind-utils -y
在zabbix-server上修改zabbix_server.conf
打開ExternalScripts=/usr/lib/zabbix/externalscripts
在/usr/lib/zabbix/externalscripts下添加腳本dns_resolve_time.sh 並賦予執行權限

第一個參數是DNS服務器,第二個參數解析的域名

[root@localhost ~]# cat /usr/lib/zabbix/externalscripts/dns_resolve_time.sh
#!/bin/bash

TIMEOUT=15
DNS_SERVER=$1
DOMAIN=$2

if test -z "$1"
then
  echo "from DNS Server"
  exit
fi

if test -z "$2"
then
  echo "DNS Domain"
  exit
fi

RESOLVE_TIME=`(time dig @$1 $2) 2>&1|grep real|cut -dm -f 2|sed 's/[s.]//g'`

echo $RESOLVE_TIME

[root@localhost ~]# chmod a+x /usr/lib/zabbix/externalscripts/dns_resolve_time.sh
[root@localhost ~]# /usr/lib/zabbix/externalscripts/dns_resolve_time.sh 114.114.114.114 www.baidu.com

添加監控項,監控域名解析是否正常,監控公司主站域名
在這裏插入圖片描述
在這裏插入圖片描述
結果:
在這裏插入圖片描述

可以在zabbix-server.log中看到錯誤日誌 或者在web界面對應主機的application監控項裏查看監控項的狀態
latest data裏監控項如果顯示灰色就說明監控數據收集異常
#tail -n 200 /var/log/zabbix/zabbix_server.log

想另外個DNS來解析另外個域名
 

6.13 HTTP Agent

不需要安裝Agent

通過http或者https請求獲取監控數據.也可以通過sender
用於監控業務或者接口的響應性能情況,檢測響應碼 響應時間

前提條件
zabbix-server

  1. 安裝是需要支持curl (啓動zabbix-server時web monitoring顯示 yes)
  2. 添加http agent監控項

數據收集流程
在這裏插入圖片描述

#tail -n 500 zabbix_server.log|more
看是否支持curl,如果支持的話可以看到 Web monitor
在這裏插入圖片描述

第一步:創建監控項, Type of information 爲 Log
key是自定義生成的

第二步:查看結果


稍微複雜點的例子
訪問請求 zabbix api 的監控
官網文檔資料API的值 https://www.zabbix.com/documentation/4.0/manual/api/reference/apiinfo/version

Request:

{
    "jsonrpc": "2.0",
    "method": "apiinfo.version",
    "params": [],
    "id": 1
}

第一步:創建監控項, Type of information 爲 Log
key是自定義生成的

第二步:查看結果

 

6.14 web場景監控

在這裏插入圖片描述

前提條件
zabbix-server

  • 安裝時需要支持curl
  • 添加web監控

數據收集流程
在這裏插入圖片描述

語法

場景監控項
web.test.in[Scenario,,bps]
web.test.fail[Scenario]
web.test.error[Scenario]
步驟監控項
web.test.in[Scenario,Step,bps]
web.test.time[Scenario,Step,resp]
web.test.rspcode[Scenario,Step]

創建最簡單的Web場景

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

較爲複雜的登錄zabbix網站場景的監控

第一步:創建用於監控登錄的賬號

第二步:登錄請求發送校驗 過程
monitor
123456

查看網頁源代碼,找到關鍵字 Zabbix SIA,而且相應狀態碼是200,代表打開首頁成功
在這裏插入圖片描述
在這裏插入圖片描述

登錄後,傳遞的參數
在這裏插入圖片描述
登錄成功後,會生成一個CSRF token,用於防止跨站腳本攻擊的
在這裏插入圖片描述

退出登錄,CSRF token獲取,傳給SID
在這裏插入圖片描述
第三步:模擬此登錄過程的web場景
創建web場景

配置步驟
第一步:打開首頁
在這裏插入圖片描述

第二步:登錄
在這裏插入圖片描述
regex:name=“csrf-token” content="([0-9a-z]{16})" 賦給變量sid

第三步:驗證第二步是否成功的
在這裏插入圖片描述

第四步:登出
在這裏插入圖片描述

第五步:校驗
在這裏插入圖片描述
Follow redirects √
200
在這裏插入圖片描述

驗證:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章