MySQLをZabbixで監視する
いろいろググって一番判りやすくて書いてある通りにやって導入できたサイトの情報がここです。上手くまとまっていて非常に判りやすかったです。ありがとうございました。
本番用のAWSではMySQLを使っているのですが以前のテスト系ではMariaDBを使用しており、その時にMySQLとの非互換でmax_connectionsの値をうまく拾ってこなかった件はこちらです。
今回はパフォーマンス劣化の関係でmax_connectionsを調査する必要があって過去の設定を見直した結果、修正箇所が出てきたのでメモとして残しておこうというものです。
参考にしたサイトの情報では、max_connectionsが「これまでに記録された同時接続数の最大値」と書かれていました。この日本語をちょっと勘違いしておりまして、実際の同時接続数のことかと思っていました。実際にはmy.cnfに書かれたmax_connectionsか既定値のmax_connectionsを表示します。今回欲しかったのは設定値ではなく実測値だったので少し調べてみたところ、extra-statusで取得できる「Max_used_connections」が欲しい情報のようです。これを取得出来るように設定を変更します。
# vi /etc/zabbix_agentd.conf.d/userparameter_mysql.conf UserParameter=mysql.max_connections[*],mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf variables|grep max_connections| awk '{print $$4}' UserParameter=mysql.max_used_connections[*],mysqladmin --defaults-extra-file=/etc/zabbix/mysql/my.cnf extra-status|grep max_used_connections| awk '{print $$4}' <--これを追加する
Zabbixにログインしてテンプレートのアイテムから「max_connections」を複製し「max_used_connections」を作成・追加します。そしてグラフに「max_used_connections」を追加したら変更は完了です。zabbix-agentの再起動が必要です。この変更で設定値としての最大コネクション数と実際に接続されたコネクション数がグラフで表示されるようになります。イメージとしてはこんな感じです。