凄い久しぶりにzabbixでMariaDBのslave監視の設定をしたので忘れないようにメモ
MariaDB 11.4を使用しています。
1. MariaDB 側での監視用ユーザー作成と確認
まずはレプリケーション監視権限(SLAVE MONITOR)を付与したユーザーを作成します。CREATE USER 'zabbix_monitor'@'localhost' IDENTIFIED BY 'パスワード';
GRANT SLAVE MONITOR, REPLICATION CLIENT, PROCESS, SHOW DATABASES, SUPER ON . TO 'zabbix_monitor'@'localhost';
FLUSH PRIVILEGES;
疎通確認
mariadb -uzabbix_monitor -pパスワード -e "SHOW SLAVE STATUS\G"
エラー(ERROR 1227 や ERROR 1045)が出ず、スレーブ情報または Empty set が返れば成功。
2./Zabbix Agent 2 の設定
/etc/zabbix/zabbix_agent2.d/plugins.d/mysql.conf の最後に追記します。
Plugins.Mysql.Sessions.master.Uri=unix:/var/lib/mysql/mysql.sock
Plugins.Mysql.Sessions.master.User=zabbix_monitor
Plugins.Mysql.Sessions.master.Password=パスワード
サービス再起動と疎通確認
systemctl restart zabbix-agent2
zabbix_agent2 -t mysql.ping[master]
mysql.ping[master] [s|1] (末尾が [s|1])と返ってくれば成功。
3.Zabbix Web UI での設定
ホスト設定: 対象ホストにテンプレート MySQL by Zabbix agent 2 を割り当てる。
マクロ設定: ホストマクロに以下を設定し、Agent 2 側の master セッションと紐付ける。
- マクロ:
{$MYSQL.DSN} - 値:
master
ディスカバリ即時実行:
【データ収集】>【ホスト】>対象ホストの【ディスカバリ】一覧から Replication discovery を選び 【今すぐ実行】 をクリック。
4. 監視データの確認(Web UI)
【監視データ】>【最新データ】を開き、ホストで絞り込んで確認します。
Replication Slave IO Running:Yes(I/Oスレッド動作中)Replication Slave SQL Running:Yes(SQLスレッド動作中)Replication Seconds Behind Master:0(データ同期遅延なし)
終了