ラージビッグバナー(970x90)

Linux

MySQL/MariaDBのステータスをZabbixで監視する方法

投稿日:

ビッグバナー(piglog)728px

MySQLのプロセスとかポートとかはZabbix-Agentで監視できるが、mysqlのステータスはどうやって監視するんですか、というお話。

mysqlに接続できれば、mysqladmin extended-status だったり show global status なんかのコマンドでステータスを確認できますよね。

それをZabbixから監視する方法を説明します。

環境

  • CentOS7.5
  • MariaDB5.5
  • Zabbix-Server 3.4

MySQL 監視用ユーザの作成

まず、mysqlにrootログインします。

次に、パスワードを指定してユーザを作成します。

作成したユーザでmysqlコマンドを実行できることを確認します。

 

パスワードファイルの作成

作成したMySQLユーザのパスワードファイルを作成します。

Zabbix-Agentのディレクトリに設置しましたが、どこに設置しても良いです。というのは、mysqlに接続時に「--defaults-extra-file」オプションで今回作成するパスワードファイルのパスを指定するから。

パスワードはダブルコーテーションでくくったほうが良いようです。

パーミッションを設定します。

 

動作確認

userparameter_mysql.conf に記載されているアイテムの値を取得できるか確認することにします(がコマンドは変更します)

show global statusコマンド(Variable_nameは適宜変更して)

「show global status」は、mysqlにログインして実行すると以下のようなステータスを確認できる

 

mysql.ping の確認

 

MySQLバージョンの確認

 

ユーザパラメータファイルの修正

動作の確認ができたところで、Zabbix-Agentが使用する userparameter_mysql.conf を以下のように修正します。

変数は使えないらしいので認証ファイル(zabbix_my.cnf)はそのまま指定

awkで$をかぶせるのは仕様

pingのエラー出力を捨てるのに注意(2>&1を追加)

 

Zabbix-Agentを再起動して設定を反映します。

 

zabbix_getコマンドで動作を確認します。キー(-kオプション)の引数には、userparameter_mysql.conf に記載されているアイテムを指定します。

Web画面からの設定を追加します。あらかじめMySQLのテンプレートが用意されているので、それを適用すればよいでしょう。トリガーは mysql.ping しかなかったので、必要に応じて作成しましょう。

 

おまけ

mysqlpingの不具合の対応の詳細

正常時は1を返すので問題ないが、mysql がダウンしているときはエラー出力が返る(以下)ので、ユーザパラメーターのファイルに記載するコマンドは修正が必要になる。

以下のように 2>&1 を加えてやればよいだけだが、対応しておかないとmysqlのダウンを検知できない。検知できないというのは、正確にいうとトリガーは作動しませんでした。アイテムのデータ型が整数になっているので、整数以外が返ってきた時点で unknownのようなステータスになってしまうようです。

 

Zabbix-Agent再起動時のエラー

userparameter_mysql.conf を修正後に設定を反映しようとZabbix-Agentを再起動しようとしたら以下のエラーで起動しない。。。

なぜか mysql のユーザ情報を記載したファイル(zabbix_my.cnf)を読みこんでしまっていた。zabbix-agent.conf のInclude設定をみると、ディレクトリ配下のファイルをすべて読み込むようになっていたので、*.conf のみを対象となるように変更して対処した。

ちなみにZabbix-Agentバージョンは以下。

この場合は、Mysql認証情報のファイルの置き場によってはZabbixが読み込んでエラーが出る場合があります。

Zabbix-Agent3.4では、*.conf まで記述されていたので、修正されたのでしょうね。

以上です。

↓↓↓ 持っていると便利な一冊。

レクタングル (大)

レクタングル (大)

リンクユニット(レスポンシブ)

-Linux
-, ,

Copyright© ぴぐろぐ , 2018 All Rights Reserved.