以前にも同じネタがありましたが今回もMariaDBのupdate後にzabbixでslaveの値が取得出来なくなったので対処しました。
MariaDBのバージョンは以下
MariaDB [(none)]> select version();
+—————-+
| version() |
+—————-+
| 10.5.9-MariaDB |
+—————-+
1 row in set (0.000 sec)
zabbixのログを見ると以下の様に表示されています。
ERROR 1227 (42000) at line 1: Access denied; you need (at least one of) the SUPER, SLAVE MONITOR privilege(s) for this operation
SUPER, SLAVE MONITORどちらかの権限が必要と言ってます。
slaveサーバーに入り一般ユーザーで確認
MariaDB [(none)]> show slave status\G
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER, SLAVE MONITOR privilege(s) for this operation
同じメッセージですね。
権限を見てみます。
MariaDB [(none)]> show grants for ‘zabbixagent’@’localhost’;
+—————————————————————————————————————————————————————+
| Grants for zabbixagent@localhost |
+—————————————————————————————————————————————————————+
| GRANT PROCESS, BINLOG MONITOR, REPLICATION SLAVE ADMIN ON *.* TO `zabbixagent`@`localhost` IDENTIFIED BY PASSWORD ‘*********’ |
+—————————————————————————————————————————————————————+
1 row in set (0.000 sec)
確かにSUPER, SLAVE MONITORどちらの権限も付与されてません。
付与した覚えもありません。。なので権限を付与してみます。
rootユーザーに切り替え後
MariaDB [(none)]> GRANT SLAVE MONITOR ON *.* TO ‘zabbixagent’@’localhost’;
Query OK, 0 rows affected (0.001 sec)
SLAVE MONITOR 権限を付与し再度一般ユーザーで確認
MariaDB [(none)]> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
略・・
無事に取得する事ができzabbixでも監視が復活しました。