■はじめに
こんにちは!今回は、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 Loggingが、SDML制御ログにアプリケーションの起動を記録する
- HinemosエージェントがSDML制御ログを読み取り、Hinemosマネージャへ送る
- Hinemosマネージャが、SDML制御設定に従って監視設定を作成・有効化する
停止時は、停止の仕方によって動きが変わります。
| 停止の仕方 | 動き |
| 正常停止 | 停止が制御ログに記録され、監視設定が無効化される(※) |
| 強制終了などの異常終了 | 停止が記録されず、監視設定が有効のまま残って異常を検知する |
※SDML制御設定で「アプリケーション停止時に監視設定を削除する」を有効にしている場合は、無効化ではなく削除されます。今回の検証では有効にしているため、削除される動きになります。
2.設定手順
●前提条件
SDMLの自動監視を利用するには、以下の条件を満たしている必要があります。
- 監視対象のアプリケーションにHinemos Loggingが導入されていること
- アプリケーションが実行されるマシンが、リポジトリにノードとして登録されていること
- アプリケーションが実行されるマシンで、Hinemosエージェントが動作していること
●SDML制御設定の作成
- Hinemos Webクライアントで「SDML設定」パースペクティブを開きます。
- SDML制御設定[一覧]ビューで「作成」ボタンをクリックします。
- 「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制御設定[作成・変更]ダイアログ](https://atomitech.jp/wp-content/uploads/2026/10/1.png)
- [自動作成監視用設定]タブで、種別共通通知IDに「EVENT」を設定します。
種別共通通知IDは、自動作成される監視(プロセス死活監視など)の通知先です。空のままだと、監視が異常を検知しても通知されないため注意が必要です。また、今回は「アプリケーション停止時に監視設定を削除する」を有効にしています。有効にすると、正常停止時に監視設定が無効化ではなく削除されます。

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

- [監視設定制御時の通知]タブは初期値のままとし、「OK」をクリックします。
監視設定の作成完了・有効化完了・無効化完了・更新完了は「情報」、異常時は「危険」で通知されます。

3.動作確認
Hinemos Webクライアントを起動・停止し、監視設定と監視履歴がどう変わるかを確認します。
●起動する
Hinemos Loggingを組み込む前の監視設定[一覧]ビューです。SDMLの監視設定はまだありません。

Hinemos Webクライアントを再起動します。
|
1 |
# systemctl restart hinemos_web |
監視設定[一覧]ビューを更新すると、「SDML_hinemos-web_」で始まる7つの監視設定が自動で作成されていました。

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

●正常停止する
Hinemos Webクライアントを正常停止します。
|
1 |
# systemctl stop hinemos_web |
停止すると「監視設定を削除しました。」が通知され、自動作成された監視設定が削除されました。これは「アプリケーション停止時に監視設定を削除する」を有効にしているためで、無効の場合は監視設定が無効化されます。再起動すると、監視設定が再び作成・有効化されます。

停止時に監視設定が削除(または無効化)されるため、停止中にプロセス死活監視の異常が通知されることはありません。計画停止のたびに監視を手動で無効化する必要がなくなります。
●強制終了する
次に、Hinemos Webクライアントのプロセスを強制終了します。
|
1 |
# kill -9 【プロセスID】 |
強制終了では停止を知らせる制御ログが出力されないため、監視設定は削除されずに残ります。その結果、プロセス死活監視が「プロセス数:0」を「危険」で通知しました。
再起動すると、監視設定は新しく作成されるのではなく、残っていた監視設定が更新・有効化されます(「監視設定を更新しました。」「監視設定を有効化しました。」)。

●結果のまとめ
| 操作 | 監視設定 | 通知 |
| 起動 | 自動で作成・有効化 | 作成・有効化(情報) |
| 正常停止 | 自動で削除(※) | 削除(情報)のみ。異常の通知なし |
| 強制終了 | 残ったまま | プロセス死活監視が異常を通知(危険) |
| 強制終了後の再起動 | 更新・有効化 | 更新・有効化(情報) |
※「アプリケーション停止時に監視設定を削除する」を有効にしているため削除されます。無効の場合は無効化されます。
■おわりに
この記事では、Hinemos ver.7.2でSDMLの自動監視を設定し、Hinemos Webクライアントの起動・停止に合わせて監視設定が自動で制御される様子を確認しました。
- アプリケーションを起動するだけで、プロセス・ログ・デッドロックの監視や、ヒープ・GC・CPUの収集が自動で設定されます。
- 正常停止では監視設定が自動で無効化(設定により削除)されるため、計画停止のたびに監視を手動で切り替える必要がありません。
- 強制終了などの異常終了では監視設定が残り、プロセス死活監視で異常を検知できます。
Hinemosの運用でご参考になれば幸いです。
Xをフォローする
メルマガに登録する