首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 監控方案:Zabbix + MPM (Performance Monitor for MySQL) 部署全流程

     編輯:MySQL 綜合教學

架構概覽

Zabbix Server ←(模板)→ Zabbix Agent (客戶端) ←(UserParameter)→ MPM Perl Agent → MySQL
  • MPM Agent:Perl 腳本 (FromDualMySQLagent.pl) 定期採集 MySQL 狀態變量、InnoDB 指標、複製延遲等,推送給 Zabbix Server (zabbix_sender)。
  • Zabbix 模板:預定義 Item/Trigger/Graph,導入即用。

客戶端部署步驟 (Linux)

  1. 安裝 Perl 依賴:
    yum install -y perl-File-Which perl-libwww-perl perl-Digest-SHA perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay
  2. 部署 MPM Agent:
    tar xf mysql_performance_monitor-latest.tar.gz
    mkdir -p /opt/mpm
    mv mysql_performance_monitor/* /opt/mpm/
  3. 配置 Zabbix Agent (/etc/zabbix/zabbix_agentd.conf):
    UserParameter=FromDual.MySQL.check,/opt/mpm/FromDualMySQLagent.pl /etc/zabbix/FromDualMySQLagent.conf
  4. 配置 MPM Agent (/etc/zabbix/FromDualMySQLagent.conf):
    [default]
    Type = mysqld
    LogFile = /var/log/zabbix/FromDualMySQLagent.log
    Username = mpm
    Password = mpmsecret
    MysqlHost = 127.0.0.1
    MysqlPort = 3306
    ZabbixServer = localhost
    Modules = process mysql myisam innodb
    
    [mysql1]  # 必須與 Zabbix Server 中主機名一致
    Type = mysqld
    Modules = process mysql myisam innodb
    PidFile = /var/lib/mysql/mysql.pid
  5. 創建監控用戶並授權:
    CREATE USER 'mpm'@'127.0.0.1' IDENTIFIED BY 'mpmsecret';
    GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'mpm'@'127.0.0.1';
  6. 創建日誌目錄並授權:
    mkdir -p /var/log/zabbix /var/log/zabbix/cache
    chown -R zabbix:zabbix /var/log/zabbix
  7. 修正 zabbix_sender 路徑 (腳本內硬編碼):
    sed -i 's|/usr/local/bin|/usr/local/zabbix/bin/|g' /opt/mpm/FromDualMySQLagent.pl
  8. 啟動/重啟 Zabbix Agent:
    systemctl restart zabbix-agent
  9. 驗證採集:
    /opt/mpm/FromDualMySQLagent.pl /etc/zabbix/FromDualMySQLagent.conf
    # 返回 1 表示成功
  10. 加入 Crontab 定時推送 (可選,Agent 模式已含輪詢):
    * * * * * /opt/mpm/FromDualMySQLagent.pl /etc/zabbix/FromDualMySQLagent.conf >/dev/null 2>&1

Server 端配置

  1. 導入模板:Template_FromDual.MySQL.mpm.xml (核心),可選 innodb.xml, replication.xml 等。
  2. 創建主機,主機名 **與 Agent 配置 [mysql1] 區塊名完全一致**。
  3. 關聯模板,等待數據流入。

關鍵監控指標

分類核心指標
連接/線程Threads_connected, Threads_running, Connection_errors_*
查詢吞吐Questions, Queries, Com_select, Com_insert, Com_update, Com_delete
InnoDBInnodb_buffer_pool_reads, Innodb_buffer_pool_pages_*, Innodb_row_lock_*, Innodb_log_waits
複製Seconds_Behind_Master, Slave_IO_Running, Slave_SQL_Running
緩存/表Open_tables, Opened_tables, Table_locks_*, Qcache_* (舊版)
慢查詢Slow_queries, Slow_launch_threads

避坑指南

  • 主機名大小寫敏感,Agent [mysql1]、Server 主機名、Zabbix 前端顯示名**三者完全一致**。
  • MPM Agent 需讀取 /var/lib/mysql/mysql.pid 獲取進程 ID,確保 Zabbix 用戶可讀。
  • Perl 模塊缺失導致採集失敗,部署前跑一次腳本檢查報錯。
  • 大量實例建議用 Zabbix LLD (低級發現) 自動創建監控項,避免手工維護。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved