netdataでMySQL固有の詳細データをリアルタイムモニタリングしてみる

2016.08.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

引き続きnetdata関連の市田です。
今回は、ミドルウェア固有の情報をリアルタイムにモニタリングしてみます。

netdataのインストール方法については下記のエントリーを参照ください。

リアルタイムなリソースモニタリングツールのnetdataを試してみた | Developers.IO

はじめに

netdataはデフォルトでApacheやMySQLなどのプロセス別に、CPUやメモリなどのリソース状況をリアルタイムにビジュアライズしてくれます。

例えば、MySQLが入っている場合だと、下記のようにDisk I/Oやメモリ書き込みの状況などについて、netdataが対応ミドルウェアを見つけて、ミドルウェア毎に表示してくれます。

netdataデフォルト

しかし、デフォルトの他に、ApacheやMySQLといったミドルウェア特有のリソース情報も同様に取得、表示することができます。
MySQLの場合、下記のようなMySQL固有のデータを見ることができます。

  • Bandwidth in kbps
  • Queries in queries/sec
  • Operations in operations/sec
  • Table Locks in locks/sec
  • Select Issues in issues/sec
  • Sort Issues in issues/sec

その他のミドルウェアについて2016年8月の時点で取得できるものは以下になります。

firehol/netdata: Real-time performance monitoring, done right!

MySQLの詳細情報をグラフ化してみる

それでは早速、MySQLの詳細情報を取得していきたいと思います。
作業としては、netdataからMySQLにアクセスするクライアント(mysqlclient)をインストールします。

手順

まずmysqlclientの動作に必要なパッケージをインストールします。

sudo yum install python-devel mysql-devel

次にmysqlclientをインストールします。

pip install mysqlclient

インストールしたモジュールの設定ファイルは/etc/netdata/python.d/mysql.confになります。
今回はMySQLはデフォルト設定で動かしているため、設定ファイルもデフォルトのままです。

詳しいインストール手順は下記に記載されています。
こちらにはソースからのインストール方法も記載がありますので、必要に応じて参照頂ければと思います。

PyMySQL/mysqlclient-python: MySQL database connector for Python

mysqlclientのインストールが完了したら、netdataを再起動します。

# service netdata restart

netdataのページを見ると利用帯域や秒間クエリ数などがグラフに現れていると思います。
(下記のグラフだと、アプリケーションを何も動かしていないので、変化のない表示になっています。)

netdata-mysql-1

netdata-mysql-2

netdata-mysql-3

最後に

ミドルウェア特有の情報をグラフ化できるのは嬉しい機能だなと思いました。
MySQL以外のミドルウェアに関する追加モジュールについては、下記に詳細が記載されていますので、環境に応じて利用してもらえればと思います。

netdata/python.d at master · firehol/netdata

以上になります。