MySQL Enterprise Monitor 3.0:MySQLの運用監視ツール

2014年3月28日(金)
山﨑 由章

MySQL Enterprise Monitor 3.0の特徴

MySQL Enterprise Monitor 3.0を使用すると、複数台のMySQLサーバーの稼働状況をブラウザ経由で一元的に監視することができます。そして、MySQLの稼働状況に問題があった時に警告を通知したり、パフォーマンスの問題を引き起こしているSQLを稼働状況のグラフを見ながら簡単に特定したりできます。MySQL Enterprise Monitor 3.0では、インターフェースが刷新され、アドバイザ機能で使用できるルールが増加したり、エージェントレス構成も取れるようになったりと、更に機能強化されています。

図2:MySQL Enterprise Monitor 3.0(クリックで拡大)

アドバイザ機能:MySQLの運用ノウハウが詰まった警告通知機能

MySQL Enterprise Monitor 3.0には、収集している情報を基に最適な設定や問題の予兆を通知するためのアドバイザ機能(警告通知機能)があります。アドバイザ機能のルールは、ハードウェアリソースの使用状況からMySQLのセキュリティやパフォーマンスに関する項目まで多岐にわたり、250以上が存在します。また、閾値を変更するなど既存のルールをカスタマイズすることもできますし、自分で任意のルールを作成することもできます。そして警告を通知する際にも、問題の状況だけではなく、どのように改善すればいいのかの改善策までアドバイスしてくれるため、発生している問題に対して迅速に対応できます。また、警告はブラウザで確認できるだけでなく、メールやSNMPでの通知も可能なため、問題発生の予兆を検知して、迅速に管理者に連絡できます。

Query Analyzer:問題のあるSQLを容易に特定

Query Analyzerを使用すると、稼働状況のグラフを見ながら特定の時間帯に実行されたSQLを絞り込んで確認することが可能です。

図3はQuery Analyzerの画面です。時系列のグラフが表示されるので、ドラッグ&ドロップで気になった時間帯を選択すると、その時間帯に実行されたSQLだけが絞り込まれて一覧で表示されます。そのため、パフォーマンスが悪くなった時間帯を絞り込んで、原因となったSQLを容易に特定できます。

図3:Query Analyzer(クリックで拡大)

SQLの情報は、実行回数、エラーやワーニングの発生回数、累積実行時間、最高時間、平均実行時間、アクセスした行数、初回実行時間などが出力されます。平均実行時間だけでなく、最高実行時間も出力されるため、普段は短時間で実行が完了しているが、ある時だけ長時間かかってしまったSQLも容易に特定できます。

更に、MySQL Enterprise Monitor 3.0では、図4のようにSQLの情報にQRTi(Query Response Time index)という情報も追加で出力されるようになりました。QRTiは、SQLの実行時間に閾値を設けてOptimum(最適)、Acceptable(許容可能)、Unacceptable(許容できない)の3段階に区分し、複数回実行されているSQLの実行時間のばらつきを指標化したものです。

図4:QRTi(Query Response Time index)(クリックで拡大)

データベースに対するSQLの実行時間は○秒以内でいけない、といった目標値が明確に定められている場合など、SQLの実行時間が目標値以内に収まっているかどうかが一目で確認できます(デフォルトの設定では、実行時間が100ms以内のSQLがOptimumに、100ms~400msのSQLがAcceptableに、400msよりも時間がかかったSQLがUnacceptableに分類されます。全てのSQLがOptimumに分類されると、QRTiは1.00となり、円グラフは緑色になります)。

また、表示されているSQLをクリックすると、SQLの全文やExplainなどの詳細情報も確認できます。SQLの詳細を確認し、問題を引き起こしているSQLをチューニングすることでパフォーマンスを改善できますが、もしSQLのチューニングが上手くできないのであれば、前述のコンサルティング・サポートでSQLのチューニング方法を問い合わせて頂くことも可能です。

グラフ機能:収集した稼働情報を視覚化

MySQL Enterprise Monitor 3.0では、収集している情報をグラフ化して確認可能です。CPU使用率等のOSリソースに関する項目だけでなく、InnoDBバッファプールの使用状況といったMySQLサーバー固有の項目もあり、70以上のグラフがあるためサーバーの稼働状況を詳細に確認可能です。サーバーのパフォーマンスが悪くなった場合には、平常稼働時のグラフとパフォーマンスが悪くなった時間帯のグラフを見比べることで、稼働状況の変化を素早く確認できます。また、グラフを見ていて稼働状況の変化が気になった時間帯があれば、その時間帯に絞り込んで、前述のQuery Analyzerでその時間帯に実行されたSQLを絞り込んで調査できます。

レプリケーションの監視:レプリケーションの稼働状況を一元監視

MySQL Enterprise Monitor 3.0を使用することで、レプリケーション環境の安定運用を実現できます。レプリケーションを使用している場合、MySQL Enterprise Monitor 3.0は自動的にトポロジを判断し、サーバー間でのデータ転送の遅延やSQLスレッド、I/Oスレッドの稼働状況を監視できます。また、前述のアドバイザ機能により、レプリケーションの稼働状況に問題があれば、警告通知もできます。

図5:レプリケーションの監視(クリックで拡大)

クラウド環境に適したエージェントレス構成(MySQL Enterprise Monitor 3.0の新機能)

MySQL Enterprise Monitor 3.0を使用する場合、通常は監視対象のMySQLサーバー上に情報収集のためのエージェントをインストールしますが、エージェントレスの構成も可能です。エージェントレス構成の場合は、OSリソース関連の情報は収集できなくなりますが、クラウド環境などでサーバー上に新しくソフトウェアをインストールできない場合などでもMySQL Enterprise Monitor 3.0を活用できます(監視対象のMySQLサーバーは5.6.14以降である必要があります)。

日本オラクル株式会社

MySQLのセールスコンサルタント。元々はOracleデータベースのコンサルティング、サポート等に従事していたが、オープンソースとフリーソフトウェア(自由なソフトウェア)の世界に興味を持ち、MySQLの仕事を始める。趣味は旅行と美味しいものを食べること。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています