モニタリングとは
モニタリング(Monitoring)とは、ある対象を監視、観察するという意味で、モニタリングの目的は、継続的な監視、監察を通じて対象の状態や可用性、変化などを確認し、準備することです。つまり、「ある対象の状態や状況を継続的に監視、観察し、予期せぬ状況やエラーを備えて克服する」と言えます。特にITサービス分野では基本的に事前に計画されており、限られたコストとリソースを持ってサービスを提供するため、ユーザー経験を重視するITサービスでは、そのサービスがどの環境で運用されてもモニタリングの重要性は決して低くすることはできません。特に、スケーラビリティと柔軟性を備えたクラウドプラットフォームでは、継続的な監視を通じて収集されたデータに基づいてシステム規模の拡張と縮小を迅速に決定する必要があるため、より重要です。
では、モニタリングの意味である「どんな対象の状態や状況を継続的に監視、観察して予期せぬ状況やエラーを備えて克服する」を重点として、WhaTapを用いて一つずつ解いていき、どのような重要指標とデータ記録が提供されているのか見てみましょう。
モニタリング対象
グループ
WhaTapでは、モニタリング対象をグループ化できます。大規模な分散処理システムでは、サービス規模の増加により複雑度の高い分散処理システムでモニタリングを構成して区別するのに困難になることがあります。WhaTapでグループを生成し、複数のプロジェクトを作成し、希望のモニタリング対象を登録できる構造で提供しています。希望のグループに他のユーザーを招待してグループを共有したり、権限を設定してプロジェクトの変更権限を制限したりできます。
プロジェクト
プロジェクト生成時に独自のプロジェクトコード(PCODE)が指定され、PCODEはプロジェクトを区切る数字です。プロジェクト生成時に選択できるプロジェクトタイプは合計12個であり、URLタイプを除く残りのタイプは同じタイプのプロジェクトを1つ以上生成できます。各タイプに合ったターゲットを希望のプロジェクトに登録できます。**1つのプロジェクトには同じタイプの複数のモニタリング対象を登録できます。**たとえば、’myServer’という名前のjavaタイプのプロジェクトを生成すると、このプロジェクトに複数のjavaベースのWASサーバーを登録できます。また、プロジェクト生成時にモニタリングデータを収集するWhaTap収集サーバの地理的位置(リージョン)を希望の場所に指定することができます。 (例:ソウル、東京など..)
設定
プロジェクトを作成して入力すると、モニタリング対象となるサーバーまたはアプリケーションに適したエージェントインストールファイルとインストール方法が表示されます。プロジェクトからエージェントライセンスを発行し、マニュアルに従って設定を進めます。ライセンスに基づいて、対象は自分が属するプロジェクトを探します。モニタリングされるサーバーまたはアプリケーションの詳細情報とインストール方法については、WhaTapガイドに詳しく説明されています。
対象の状態や状況を継続的に確認
ユーザーがモニタリングで最初に表示される最初の画面である、**ダッシュボードでは、ユーザーの基本的な不思議を解消し、決定的なデータを直感的な指標として表示する必要があります。**複数のサーバーから送信されるデータを表示するときは 状況の変化を継続的に示すしなければなりません。
サーバーモニタリングのダッシュボード
サーバーモニタリングのダッシュボードを例に説明すると、サーバーモニタリングで最も重要なリソースであるCPU、メモリディスクに関する指標が示されています。プロジェクトに登録されているサーバーの総数とコア全体の数、平均的なリソース使用量などを継続的に表示します。リソースシェアの高い5つのプロセスを順番に表示し、どのサーバーでどのプロセスのCPUとメモリシェアが高いかを示します。また、プロジェクトでユーザーが設定したイベントポリシーに基づいて発生した5つの最近のイベントも表示されます。
ダッシュボードの中核であるCPUリソースマップは、ダッシュボードで最大の画面を占めています。直感的にサーバーの状態をすぐに知ることができる指標です。横軸は時間、縦軸はCPUシェアを意味します。最近10分間のCPUシェアの変化を示し、5秒周期でデータが更新され続けます。特定のセルが濃く表示されると、その時間帯にそのシェアを持っていたサーバーが多かったという意味です。このように、リソースマップ全体を一度見るだけで、すばやくサーバー全体の飽和状態を知ることができます。必要に応じて、マウスでドラッグして、目的のゾーンに対応するサーバーの詳細情報と詳細な指標を表示することもできます。
最近10分間で5%未満のセルが大量に分布している場合、サーバーのCPUスループットが少ないことを意味します。一方、セルが継続的に100%のシェアに近づき続けて分布している場合、特定のサーバーや多数のサーバーが飽和状態で応答遅延が発生する可能性があるため、エンジニアの介入が必要な状況です。
必要に応じて、プロジェクトの「サーバーの詳細を表示」ページにCPU、Disk、Networkの具体的なデータを確認できます。詳細はサーバーモニタリングサービスガイドにあります。
JAVAアプリケーションモニタリングの詳細分析
アプリケーションモニタリングのダッシュボードも必要な指標を直感的に表示し、システム全体の状況を把握できるように構成されています。アプリケーションモニタリングは、インジケータにエラーが発生した場合や遅延が発生した場合に迅速に分析するためのプロファイルを提供します。たとえば、ヒートマップからオレンジ色のセルまたは処理時間が過度に高い線上にあるセルをドラッグすると、プロファイルを表示できるヒートマップトランザクションページに移動します。
クライアントからの要求をサーバーから受け取り、処理して返すまでをトランザクションと呼びます。トランザクション中にデータベースに接続するためのプロセスやデータベース要求を待つか、APIリクエスト、内部メソッドや処理、他のトランザクションに関連付けられるなど、複雑なプロセスが隠れているため、これを分析するのは簡単ではありません。このような過程で、トランザクションの要求時間が特定の区間で過度に長くなったり、失敗するなど、予期しない状況が発生した場合、正確な分析のために詳細情報を見る必要があります。また、トランザクションが別のサーバーに移行し、その処理を分析できるようにする必要がある複雑な状況も発生する可能性があります。
WhaTapでは、上記の画像のように、要求を処理するためのクライアント情報から、サーバーで費やされた時間、SQL処理時間、クエリ情報などの詳細情報を表示できます。また、「アクティブスタック」で関数呼び出し履歴や、マルチトランザクションで処理の遷移過程を見ることができます。これらの情報は、エラーを迅速に処理し、パフォーマンスを向上させるための重要な指標の基準となります。
アプリケーションモニタリングで具体的にどのデータを見ることができるかは、アプリケーションモニタリングサービスガイドで確認できます。
予期しない状況とエラーに備えて克服
予期しない状況やエラーが発生した場合は、さまざまな方法でエンジニアに通知する必要があります。そして、このような状況やエラーは、人が介入または自動化して克服しなければなりません。ところが、監視対象となる対象のサービスは多様であるため、サービスごとに定めたしきい値が異なるほか、エンジニアに必須と知らせなければならないエラーの重要度も異なります。何よりも頻繁な呼び出しは、エンジニアに疲れを感じさせ、それに慣れて重要な通知すら無視できる状況が生じることがあります。
WhaTapでは、イベント(通知)の条件を詳細化できます。サーバーモニタリングのイベントターゲットは、サーバーリソース、プロセス、ログファイルです。たとえば、CPUシェアが70〜80%の間で5分以上滞在している場合は「警告」でイベントを発生させますが、81〜100%の状態が10分以上続く場合は「危険」イベントを発生させます。イベントは、ユーザーが指定した電子メール、SMS、テレグラムなどを介して送信されます。
ログイベントでは、指定したログファイルで特定のキーワードが検出されたとき、人の介入が必要なく自動化できる状況であれば、スクリプトパスを指定して対応できます。
まとめ
モニタリングの意味を考えながら、モニタリングの重要な部分と重要な指標をWhaTapモニタリングを使って簡単にまとめてみました。モニタリングを行うことで得られる結果は多様ですが、主にサービスのトレンドを分析、問題原因発見と分析、対応、システム性能分析に対する結果を得ることができます。
モニタリングを行ったことがない場合は、WhaTap SaaSサービスを使用してモニタリング対象を簡単に登録し、必要な指標を収集して表示できます。WhaTapでは、さまざまな方法でモニタリング指標をできるだけ簡単に見ることができるようにしているので、WhaTapモニタリングの概念を学ぶのも良いかと思います。詳細機能や設定方法が知りたい場合は、WhaTapガイドをご覧ください。
ITサービスの性能管理、WhaTapから始めてください