一、監控項簡介
監控項是Zabbix中最常見的概念,它代表你要檢查的一個對象的屬性。在Zabbix中,每個監控項都對應著一個唯一的鍵名,通過該鍵名可以在Zabbix中查看和控制監控項的運行。Zabbix可以監控的對象很多,包括但不限於伺服器的CPU、內存和磁碟使用率、網路帶寬和響應速度、應用程序的運行狀態等等。
除了Zabbix自帶的監控項之外,Zabbix還支持用戶自定義監控項,它允許用戶通過自定義鍵名和對應的監控腳本來監控自己需要的對象或指標。例如,用戶可以監控某個應用程序的未響應請求數量,或者監控某個自己開發的業務系統的並發連接數。
二、自定義監控項的實現方式
Zabbix中實現自定義監控項的方式有多種,包括但不限於:
使用Zabbix Agent的UserParameters
Zabbix Agent是一個運行在被監控主機上的代理程序,它負責採集監控數據並將其傳遞給Zabbix Server。Zabbix Agent可以通過UserParameters來擴展監控能力,即通過用戶自定義的鍵名和對應的監控腳本來讀取和採集監控數據。
下面是一個示例:
UserParameter=nginx.status[*],/usr/bin/curl -L -s -o /dev/null -w %{http_code} http://localhost:$1/nginx_status
該UserParameter定義了一個名為nginx.status的監控項,通過curl命令讀取本地nginx伺服器的狀態信息,並返回HTTP響應狀態碼作為監控數值。
使用SNMP監控
SNMP(Simple Network Management Protocol)是一種面向網路管理的協議,它定義了管理信息基礎架構(MIB)和協議數據單元(PDU),支持對網路設備、操作系統和應用程序進行遠程監控和管理。Zabbix中可以通過SNMP監控協議和MIB來對網路設備的性能和狀態進行監控。
下面是一個示例:
Type: SNMPv2 agent
Key: net.if.in[lo]
SNMP OID: .1.3.6.1.2.1.2.2.1.10.1
Update interval: 60s
Units: B
該監控項通過SNMP OID _.1.3.6.1.2.1.2.2.1.10.1_,監控本地(lo)網路介面的輸入流量,並以位元組(B)為單位進行顯示。
三、更多自定義監控項示例
1. 監控Nginx日誌文件的訪問次數和錯誤率
該自定義監控項用於監控Nginx Web伺服器的訪問次數和錯誤率,首先需要在Nginx的配置文件中啟用訪問日誌和錯誤日誌:
access_log /var/log/nginx/access.log combined;
error_log /var/log/nginx/error.log;
然後在Zabbix Agent的配置文件中加入以下UserParameter:
UserParameter=nginx.access_log.hits,/usr/bin/grep -c -E "HTTP/1.[01]" /var/log/nginx/access.log
UserParameter=nginx.access_log.errors,/usr/bin/tail -n 1000 /var/log/nginx/error.log | /usr/bin/grep -c "error"
最後在Zabbix中添加兩個監控項,一個是nginx.access_log.hits,另一個是nginx.access_log.errors。
2. 監控MySQL資料庫的查詢次數和響應時間
該自定義監控項用於監控MySQL資料庫的查詢次數和平均響應時間,首先需要在MySQL的配置文件中啟用slow query日誌:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
然後在Zabbix Agent的配置文件中加入以下UserParameter:
UserParameter=mysql.queries,/usr/bin/tail -n 500 /var/log/mysql/slow.log | /usr/bin/grep -c "Query_time"
UserParameter=mysql.response_time,/usr/bin/tail -n 500 /var/log/mysql/slow.log | /usr/bin/awk '{sum+=$NF} END {print sum/NR}'
最後在Zabbix中添加兩個監控項,一個是mysql.queries,另一個是mysql.response_time。
3. 監控關鍵業務系統的關鍵指標
該自定義監控項用於監控自己開發的關鍵業務系統的關鍵指標,例如並發連接數、請求數、響應時間等等,需要自己編寫監控腳本,然後通過UserParameter來定義監控項的鍵名和數值。
以下是一個示例監控腳本:
#!/bin/bash
url=http://localhost:8080/mysystem/status
threads=$(curl -s $url | jq -r '.threads')
requests=$(curl -s $url | jq -r '.requests')
response_time=$(curl -s $url | jq -r '.response_time')
echo "$threads $requests $response_time"
以上腳本可以通過HTTP請求獲取關鍵業務系統的狀態信息(假設其URI為/mysystem/status),並返回並發連接數、請求數和平均響應時間三個數值。
然後在Zabbix Agent的配置文件中加入以下UserParameter:
UserParameter=mysystem.threads,/usr/local/bin/myscript.sh | awk '{print $1}'
UserParameter=mysystem.requests,/usr/local/bin/myscript.sh | awk '{print $2}'
UserParameter=mysystem.response_time,/usr/local/bin/myscript.sh | awk '{print $3}'
最後在Zabbix中添加三個監控項,分別是mysystem.threads、mysystem.requests和mysystem.response_time。
原創文章,作者:XZIPX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332844.html