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

MySQL Enterprise Monitor 3.0とは?
MySQL Enterprise Monitor 3.0 は、MySQLの運用監視ツールです。2013年9月に、最新バージョンであるMySQL Enterprise Monitor 3.0がリリースされました。MySQL Enterprise Edition(商用版)を購入したユーザーだけが使用できるツールであるため、先ずはMySQL Enterprise Editionについて紹介します。
MySQL Enterprise Edition:便利な追加機能が全部使える商用版MySQL
MySQLには、GPLライセンスで提供しているコミュニティ版の他に、商用版が用意されています。商用版のMySQLでは、コミュニティ版と同様のデータベース機能に加えて、サポートサービスや便利な追加機能が使用できます。商用版は、通常は商用ライセンスとサポートサービスおよび追加機能を包括したサブスクリプション形式での販売となります。サブスクリプションは「物理サーバー単位」での課金となります。
MySQLの商用版には、Standard EditionとEnterprise Editionの2つのエディションがあるのですが、Enterprise Editionではサポートサービスに加えて商用版のみの便利な追加機能が全て使用可能となっています(前回ご紹介したMySQL Clusterにも商用版があり、こちらはMySQL Cluster Carrier Grade Editionとなります。MySQL Cluster Carrier Grade Editionでも商用版のみの追加機能が全て使用可能です)。
各エディションの詳細については、図1を参照下さい(データベース機能の中でも、パーティショニング機能がサポートされているのはEnterprise Editionのみとなっています)。
また、MySQLのサポートサービスには、障害発生時などにお問い合わせ頂く一般的なサポートサービスに加え、障害を未然に防ぐための「コンサルティング・サポート」というプロアクティブなサポートも提供しています。以前は上位のエディションを購入したお客様だけに提供していたサービスでしたが、オラクルになってからの製品アップデートにより、全エディションのお客様が利用できるようになりました。
コンサルティング・サポートの中でも人気が高いのが、チューニングに関する問い合わせです。MySQLサーバーの稼働情報はお客様で取得して頂く必要がありますが、サーバーの設定や稼働情報を送付頂ければ、分析してチューニングのアドバイスを提供しています。また、チューニングの問い合わせはクエリー単位でも可能であるため、「問題を引き起こしているSQLが見つかっているけれども上手くチューニングできない」、といった場合にも、問い合わせが可能です。
他にも、レプリケーション機能を活用するための構成レビューや、パーティショニング機能を活用するためのパーティショニング構成のレビューなどが可能であるため、コンサルティング・サポートを活用して頂ければ、開発工数・運用工数の削減が可能です。コンサルティング・サポートの詳細は、以下のページをご参照下さい。
> MySQL コンサルティング・サポート
サポートサービスのレベルは基本的にOracle Premier Supportと一本化され、全てのエディションで24時間365日、インシデント数無制限のサポートを提供しています(2014年3月現在は日本語でのサポートは平日9時から17時の間のみとなっています)。オラクルのライフタイム・サポートに従いサポート期間、サポートレベルが定義されており、お客様のシステムライフサイクルに合わせて長期間の利用が可能です(MySQLのバージョン毎のサポートレベルについては、こちらの資料をご参照下さい)。
MySQL Enterprise Monitor 3.0の特徴
MySQL Enterprise Monitor 3.0を使用すると、複数台のMySQLサーバーの稼働状況をブラウザ経由で一元的に監視することができます。そして、MySQLの稼働状況に問題があった時に警告を通知したり、パフォーマンスの問題を引き起こしているSQLを稼働状況のグラフを見ながら簡単に特定したりできます。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を容易に特定できます。
SQLの情報は、実行回数、エラーやワーニングの発生回数、累積実行時間、最高時間、平均実行時間、アクセスした行数、初回実行時間などが出力されます。平均実行時間だけでなく、最高実行時間も出力されるため、普段は短時間で実行が完了しているが、ある時だけ長時間かかってしまったSQLも容易に特定できます。
更に、MySQL Enterprise Monitor 3.0では、図4のようにSQLの情報にQRTi(Query Response Time index)という情報も追加で出力されるようになりました。QRTiは、SQLの実行時間に閾値を設けてOptimum(最適)、Acceptable(許容可能)、Unacceptable(許容できない)の3段階に区分し、複数回実行されているSQLの実行時間のばらつきを指標化したものです。
データベースに対する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スレッドの稼働状況を監視できます。また、前述のアドバイザ機能により、レプリケーションの稼働状況に問題があれば、警告通知もできます。
クラウド環境に適したエージェントレス構成(MySQL Enterprise Monitor 3.0の新機能)
MySQL Enterprise Monitor 3.0を使用する場合、通常は監視対象のMySQLサーバー上に情報収集のためのエージェントをインストールしますが、エージェントレスの構成も可能です。エージェントレス構成の場合は、OSリソース関連の情報は収集できなくなりますが、クラウド環境などでサーバー上に新しくソフトウェアをインストールできない場合などでもMySQL Enterprise Monitor 3.0を活用できます(監視対象のMySQLサーバーは5.6.14以降である必要があります)。
MySQL Enterprise Monitor 3.0のアーキテクチャ
MySQL Enterprise Monitor 3.0のアーキテクチャは、図6のようになっています。監視対象のMySQLサーバーに情報収集のためのエージェントを導入し、別途収集した情報を蓄積するためのマネージャーサーバーを用意します。マネージャーサーバーに収集された情報を、ブラウザ経由で確認したり、マネージャーサーバーから警告をSNMPやSMTPで通知したりできます。
MySQL Enterprise Monitor 3.0の試使用
MySQL Enterprise Monitor 3.0や、後述しているMySQL Enterprise Editionの全機能は、試使用も可能です。Oracle Software Delivery Cloudから30日限定の試使用版をダウンロードできますので、興味を持った方は是非試してみて下さい。サインイン後、製品パックで”MySQL Database”を選択頂き、以下のモジュールをダウンロード下さい。
- MySQL Enterprise Monitor Service Manager
- MySQL Enterprise Monitor Agent
Query Analyzerを使用する場合は、必要に応じて以下モジュールもダウンロードして下さい。
- MySQL Enterprise Monitor Connector/PHP Plugin Pack
- MySQL Enterprise Monitor Connector/NET Plugin Pack
- MySQL Enterprise Monitor Connector/J Plugin Pack
※Query Analyzerへ情報提供する方法として、Proxyを使用する方法やConnectorのプラグインを使用する方法、パフォーマンス・スキーマを使用する方法(MySQL 5.6.14以降)、などがあります。Query Analyzerへ情報提供方法の詳細は、こちらを参照下さい。
また、MySQL Enterprise Monitor 3.0の製品マニュアルは、こちらで公開しています。
MySQL Enterprise Editionで使用できるその他の機能
MySQL Enterprise Editionで使用できる商用版のみの機能は、MySQL Enterprise Monitor 3.0以外にもたくさんあります。それぞれの概要をご紹介します。
- MySQL Workbench SE/EE
- MySQLのGUIツールであるMySQL Workbenchですが、GPLライセンスで提供しているコミュニティ版以外に商用版のみで使用できるMySQL Workbench SE/EEが存在します。
MySQL Workbench SE/EEでは、商用版のみの機能として、テーブル定義書を自動作成したり、E-R図を描いてテーブル設計した内容を検証したりできます。また、MySQL Enterprise Backup、MySQL Enterprise AuditのためのGUIも用意されています。コミュニティ版と商用版の機能差の詳細については、こちらを参照下さい。また、MySQL Workbenchについては、以下の記事で解説しています。 - > モデリングツールから管理・開発統合環境に進化したMySQL Workbench 6.0
- MySQL Enterprise Backup
- バックアップツールです。バックアップを高速に取得/リストアできるため、障害発生時のRTO(目標復旧時間)が短い場合などで役に立ちます。
- MySQL Enterprise Audit
- 監査ログを取得できる機能です。MySQL Enterprise Auditを使うことで、監査が必要なアプリケーションでもMySQLを使用できます。
- MySQL Enterprise Security(外部認証サポート)
- MySQLサーバーのユーザー認証をLDAPやWindows ADなどと連携できる機能です。この拡張により、既存のユーザー管理システムと連携し、セキュリティポリシーや運用も統合できます。
- MySQL Enterprise Scalability(スレッドプール)
- 大規模なWebサイトなど、同時実行処理数が多い環境で活用できる機能です。図7のベンチマークのように、スレッドプールがあると処理数が多くなった場合でも性能がほとんど落ちないため、突発的に負荷が高くなった場合などでもスローダウンせずにすみます。
- MySQL Enterprise High-Availability
- クラスタウェアと組み合わせた各種の高可用性構成を認定構成としてサポートしています。また、Oracle VMを使用して高可用性構成を組むためのMySQLサーバーのテンプレートを提供しています。
MySQL Enterprise Monitor 3.0やコンサルティング・サポートを活用してMySQLサーバーの安定稼働を実現
今回ご紹介したように、MySQL Enterprise Monitor 3.0にはMySQLサーバーの稼働状況を視覚化したり、問題発生の予兆を検知したり、負荷の高いSQLを特定したりと、MySQLサーバーの安定稼働につながる機能が豊富にそろっています。
また、パフォーマンスの問題が発生した際にもコンサルティング・サポートでサーバー全体、SQL文単位でのチューニング方法も問い合わせることができるため、自分達でチューニングが上手くできない場合でも、安心してMySQLサーバーを使用できます。事業規模や用途に合わせて導入を検討頂ければ幸いです。
※本稿において示されている見解は、私自身の見解であって、私の所属するオラクルの見解を必ずしも反映したものではありません。
<編集部より> 1ページ目の内容に一部誤りがあったため、修正しました。(2014.04.09)
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- MySQL Enterprise Edition最新情報
- MySQL Connect 2013でも発表されたMySQLの最新リリースと、関連ツールの基礎知識
- DBドキュメント出力とMEBのためのGUI、次期版6.1の新機能を紹介
- MySQL Workbench 6.0概略。まずはインストールしてDBにつないでみよう
- MySQL Clusterにおけるチューニングの基礎
- オラクル、「MySQL 5.7 Development Milestone Release(DMR)」をリリース
- Pythonで作られた便利なコマンドラインツール MySQL Utilities
- MySQL 5.6での機能強化点(その1)- パフォーマンスと使い勝手を大きく向上
- OSSでできること/できないこと
- 高可用性とデータ・シャーディングを実現できるMySQL Fabricとは?