1. ホーム
  2. 研究日誌
  3. 【Hinemos】SDML(自動監視)を設定して動かしてみよう

STUDY研究日誌

Hinemosをはじめ、
様々な技術のノウハウを発信しています。

【Hinemos】SDML(自動監視)を設定して動かしてみよう

投稿日: / 更新日:

■はじめに

こんにちは!今回は、Hinemos SDMLの「自動監視」についての記事です。

Hinemos ver.7.2の環境で、Hinemos Webクライアント(Tomcat上で動くJavaのWebアプリケーション)にHinemos Loggingを組み込み、アプリケーションの起動・停止に合わせて監視設定が自動で制御される様子を確認します。

特に、「正常停止」と「強制終了」でHinemosの動きがどう変わるのかに注目して検証しました。

 

1.SDMLの自動監視とは

●仕組み

SDML(Software Defined Monitoring and Logging)は、監視対象のアプリケーションにHinemos Loggingを組み込み、アプリケーションの起動・停止に合わせて監視設定を自動で制御する機能です。Hinemos Loggingは、ソフトウェアとHinemosを連携させるためにHinemos SDMLが提供しているモジュールです。

Hinemos SDMLの概要は、以下の記事を参照ください。

Hinemos SDMLってなんだろう

起動時の流れは以下のとおりです。

  1. Hinemos Loggingが、SDML制御ログにアプリケーションの起動を記録する
  2. HinemosエージェントがSDML制御ログを読み取り、Hinemosマネージャへ送る
  3. Hinemosマネージャが、SDML制御設定に従って監視設定を作成・有効化する

停止時は、停止の仕方によって動きが変わります。

停止の仕方 動き
正常停止 停止が制御ログに記録され、監視設定が無効化される(※)
強制終了などの異常終了 停止が記録されず、監視設定が有効のまま残って異常を検知する

※SDML制御設定で「アプリケーション停止時に監視設定を削除する」を有効にしている場合は、無効化ではなく削除されます。今回の検証では有効にしているため、削除される動きになります。

 

2.設定手順

●前提条件

SDMLの自動監視を利用するには、以下の条件を満たしている必要があります。

  • 監視対象のアプリケーションにHinemos Loggingが導入されていること
  • アプリケーションが実行されるマシンが、リポジトリにノードとして登録されていること
  • アプリケーションが実行されるマシンで、Hinemosエージェントが動作していること

●SDML制御設定の作成

  1. Hinemos Webクライアントで「SDML設定」パースペクティブを開きます。
  2. SDML制御設定[一覧]ビューで「作成」ボタンをクリックします。
  3. 「SDML制御設定[作成・変更]ダイアログ」で、以下を設定します。
項目 設定値 補足
アプリケーションID hinemos-web Hinemos Loggingの設定と同じ値にする
スコープ 監視対象ノード 監視したいアプリケーションが動くノード(※)
SDML制御ログ:ディレクトリ /var/log/hinemos-sdml/hinemos-web Hinemos Loggingの出力先と同じにする
SDML制御ログ:ファイル名 hinemos_sdml_control.log –
通知:通知ID EVENT(イベント通知) 監視設定の作成・削除などを通知する
通知:アプリケーション hinemos-web –
この設定を有効にする チェックを入れる –

※今回の監視対象はHinemos Webクライアントのため、Hinemos Webクライアントが動作するノード(クライアントサーバ)を指定しています。

SDML制御設定[作成・変更]ダイアログ

  1. [自動作成監視用設定]タブで、種別共通通知IDに「EVENT」を設定します。

種別共通通知IDは、自動作成される監視(プロセス死活監視など)の通知先です。空のままだと、監視が異常を検知しても通知されないため注意が必要です。また、今回は「アプリケーション停止時に監視設定を削除する」を有効にしています。有効にすると、正常停止時に監視設定が無効化ではなく削除されます。

自動作成監視用設定タブ

  1. [起動時間]タブは初期値のままとします。

起動から停止までの時間が設定値(初期値30秒)より短い場合に、指定した重要度(初期値「警告」)で通知する設定です。

起動時間タブ

  1. [監視設定制御時の通知]タブは初期値のままとし、「OK」をクリックします。

監視設定の作成完了・有効化完了・無効化完了・更新完了は「情報」、異常時は「危険」で通知されます。

監視設定制御時の通知タブ

 

3.動作確認

Hinemos Webクライアントを起動・停止し、監視設定と監視履歴がどう変わるかを確認します。

●起動する

Hinemos Loggingを組み込む前の監視設定[一覧]ビューです。SDMLの監視設定はまだありません。

Hinemos Logging導入前の監視設定一覧

Hinemos Webクライアントを再起動します。

監視設定[一覧]ビューを更新すると、「SDML_hinemos-web_」で始まる7つの監視設定が自動で作成されていました。

自動作成された監視設定一覧

監視履歴[イベント]ビューには、「監視設定を作成しました。」「監視設定を有効化しました。」が「情報」で通知されています。

起動時のイベント通知

●正常停止する

Hinemos Webクライアントを正常停止します。

停止すると「監視設定を削除しました。」が通知され、自動作成された監視設定が削除されました。これは「アプリケーション停止時に監視設定を削除する」を有効にしているためで、無効の場合は監視設定が無効化されます。再起動すると、監視設定が再び作成・有効化されます。

正常停止時のイベント通知

停止時に監視設定が削除(または無効化)されるため、停止中にプロセス死活監視の異常が通知されることはありません。計画停止のたびに監視を手動で無効化する必要がなくなります。

●強制終了する

次に、Hinemos Webクライアントのプロセスを強制終了します。

強制終了では停止を知らせる制御ログが出力されないため、監視設定は削除されずに残ります。その結果、プロセス死活監視が「プロセス数:0」を「危険」で通知しました。

再起動すると、監視設定は新しく作成されるのではなく、残っていた監視設定が更新・有効化されます(「監視設定を更新しました。」「監視設定を有効化しました。」)。

強制終了後の再起動時のイベント通知

●結果のまとめ

操作 監視設定 通知
起動 自動で作成・有効化 作成・有効化(情報)
正常停止 自動で削除(※) 削除(情報)のみ。異常の通知なし
強制終了 残ったまま プロセス死活監視が異常を通知(危険)
強制終了後の再起動 更新・有効化 更新・有効化(情報)

※「アプリケーション停止時に監視設定を削除する」を有効にしているため削除されます。無効の場合は無効化されます。

 

■おわりに

この記事では、Hinemos ver.7.2でSDMLの自動監視を設定し、Hinemos Webクライアントの起動・停止に合わせて監視設定が自動で制御される様子を確認しました。

  • アプリケーションを起動するだけで、プロセス・ログ・デッドロックの監視や、ヒープ・GC・CPUの収集が自動で設定されます。
  • 正常停止では監視設定が自動で無効化(設定により削除)されるため、計画停止のたびに監視を手動で切り替える必要がありません。
  • 強制終了などの異常終了では監視設定が残り、プロセス死活監視で異常を検知できます。

Hinemosの運用でご参考になれば幸いです。

 

関連する記事

Hinemos導入はアトミテックにお任せください

見積もりを依頼する

最新情報発信中

Xやメルマガでも、Hinemosの保守、
開発、導入、構築やカスタマイズ等の
お役立ち情報を発信しています。
是非ご登録ください。