Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Zabbix 監控 MySQL 資料庫完整實作:自訂腳本、Key 定義與模板套用

編輯:關於 Linux

Zabbix 預設模板無法直接監控 MySQL 內部狀態,需自行撰寫擷取腳本並定義 UserParameter。本文提供基於 Shell 的 mysql_status 腳本、Agent 端設定、Server 端模板套用的完整步驟,實現 MySQL 關鍵指標(連線數、查詢效能、主從同步等)全方位監控。

架構概覽

  1. MySQL 建立專用監控帳號,僅授予 USAGE 權限
  2. Zabbix Agent 部署 mysql_status 腳本,回傳 SHOW STATUS 指標
  3. Agent 設定 UserParameter 映射 Key
  4. Server Web 介面套用 MySQL 模板並關聯主機

步驟 1:MySQL 建立監控帳號

GRANT USAGE ON *.* TO 'zabbix'@'10.10.10.10' IDENTIFIED BY 'zabbix_pass';
FLUSH PRIVILEGES;

10.10.10.10 為 Zabbix Agent 所在主機 IP。

步驟 2:部署 mysql_status 腳本

# 建立目錄與腳本
mkdir -p /usr/local/zabbix/bin
cat > /usr/local/zabbix/bin/mysql_status <<'EOF'
#!/bin/bash
# Zabbix MySQL 狀態擷取腳本
mysql_bin="/usr/local/mysql/bin/mysql"
var="$1"
MYSQL_USER="${2:-zabbix}"
MYSQL_PASS="${3:-zabbix_pass}"
MYSQL_HOST="${4:-10.10.10.10}"

if [ -z "$var" ]; then
  echo ""
  exit 0
fi

$mysql_bin -h"$MYSQL_HOST" -u"$MYSQL_USER" -p"$MYSQL_PASS" -e 'SHOW STATUS' \
  | grep -v Variable_name | grep "\b${var}\b" | awk '{print $2}'
EOF
chmod +x /usr/local/zabbix/bin/mysql_status

步驟 3:Zabbix Agent 設定

編輯 /etc/zabbix/zabbix_agentd.conf 確認:

Server=127.0.0.1,10.10.10.9
ServerActive=127.0.0.1,10.10.10.9
Hostname=mysql-server-01
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1

建立 /usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_status.conf:

# 通用狀態 Key:mysql.status[Threads_connected] 等
UserParameter=mysql.status[*],/usr/local/zabbix/bin/mysql_status $1

# 專用健康檢查 Key
UserParameter=mysql.ping,/usr/local/mysql/bin/mysqladmin ping -h"10.10.10.10" -uzabbix -pzabbix_pass | grep -c alive
UserParameter=mysql.version,/usr/local/mysql/bin/mysql -h"10.10.10.10" -uzabbix -pzabbix_pass -e "SELECT VERSION();" | tail -1

重啟 Agent:systemctl restart zabbix-agent

步驟 4:Server 端套用模板

  • 設定 → 主機 → 建立主機 → 連結模板:Template DB MySQL(內建或社群匯入)
  • 宏觀變數:{$MYSQL.HOST}、{$MYSQL.USER}、{$MYSQL.PASS} 覆寫預設值
  • 檢測最新資料確認 Key 正常回傳數值

常監控關鍵指標

Key對應指標用途
mysql.status[Threads_connected]目前連線數連線池用量、防連線耗盡
mysql.status[Questions]查詢總數QPS 計算基準
mysql.status[Slow_queries]慢查詢計數效能調優預警
mysql.status[Slave_IO_Running]主從 IO 執行緒狀態主從同步監控
mysql.ping服務存活可用性監控
Copyright © Windows教程網 All Rights Reserved