DUICUO

この記事では、Spring Boot Admin について理解する方法について説明します。非常に役立ちます。

著者 | 雷歌

ソース | Java Chinese Community (ID: javacn666)

転載許可については、当社(WeChat ID: GG_Stone)までご連絡ください。

Spring Boot Admin (SBA) は、Spring Boot アプリケーションの管理と監視のためのオープンソース コミュニティ プロジェクトです。アプリケーションは HTTP または Spring Cloud サービス検出メカニズムを介して SBA に登録できるため、Spring Boot プロジェクトの視覚的な管理と表示が可能になります。

Spring Boot Admin は、Spring Boot の単一マシンまたはクラスタープロジェクトを監視できます。詳細なヘルス情報、メモリ情報、JVM システムおよび環境プロパティ、ガベージコレクション情報、ログの設定と表示、スケジュールされたタスクの表示、Spring Boot キャッシュの表示と管理などの機能を提供します。さあ、設定して一緒に使い始めましょう。

最終的な表示効果は次のようになります。

1. SBA監視端末を設定する

Spring Bootプロジェクトの監視と管理を行うには、Spring Boot Adminプロジェクトを作成する必要があります。設定手順は通常のSpring Bootプロジェクトの作成と同様で、具体的な手順は以下のとおりです。IntelliJ IDEAを使用してSpring Bootプロジェクトを作成します。

以下の画像に示すように、Spring Boot Admin (Server) サーバー側フレームワークのサポートを追加する必要があることに注意してください。

つまり、作成する Spring Boot プロジェクトでは、次の 2 つの重要なフレームワークのサポートを追加する必要があります。

  1. <依存関係>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </依存関係>
  5. <依存関係>
  6. <groupId>de.codecentric</groupId>
  7. <artifactId>spring-boot-admin-starter-server</artifactId>
  8. </依存関係>

1.1 SBAサービスを有効にする

プロジェクトを作成したら、スタートアップ クラスで SBA サービスを有効にする必要があります。

  1. de.codecentric.boot.admin.server.config.EnableAdminServer をインポートします。
  2. org.springframework.boot.SpringApplication をインポートします。
  3. org.springframework.boot.autoconfigure.SpringBootApplication をインポートします。
  4.  
  5. @EnableAdminServer // このコード行を追加します
  6. @SpringBootアプリケーション
  7. パブリッククラス SbaserverApplication {
  8. 公共 静的void main(String[] args) {
  9. SpringApplication.run(SbaserverApplication.class、引数);
  10. }
  11. }

1.2 SBAポート番号の設定

application.properties でポート番号を設定することで、プロジェクトを直接起動できます。私はポート番号を 9001 に設定しました。

  1. サーバーポート=9001

追記:ポート番号を設定する主な目的は、他のSpring Bootプロジェクトとの競合を避けることです。SBAを別途デプロイする場合は、この手順は無視できます。

プロジェクトを開始すると、次の画像に示すように SBA ホームページが表示されます。

現時点では、監視対象のプロジェクトはSBAに追加されていません。次に、Spring Bootプロジェクトを作成し、監視と管理のためにSBAに追加します。

2. 通常のSpring Bootプロジェクトを作成する

まず、通常のSpring Bootプロジェクトを作成する必要があります。具体的な作成手順はここでは説明しません。Spring Bootプロジェクトを作成したら、このプロジェクトにSBAクライアントフレームワークのサポートを追加する必要があります。これは、pom.xmlに以下の内容を設定することで実現できます。

  1. <依存関係>
  2. <groupId>de.codecentric</groupId>
  3. <artifactId>spring-boot-admin-starter-client</artifactId>
  4. </依存関係>

次に、application.properties ファイルで SBA サーバーのアドレスを設定します。これは、最初のステップで SBA プロジェクトを作成したアドレスです。設定内容は次のとおりです。

  1. # 現在のプロジェクトポート番号
  2. サーバーポート=8080
  3. # Spring Boot Admin 監視サーバーのアドレス
  4. spring.boot.admin.client.url=http://localhost:9001

「spring.boot.admin.client.url」は SBA 監視アドレスです。

3. SpringBootAdmin 監視の概要

上記の情報を設定すると、次の画像に示すように、監視対象の Spring Boot プロジェクトが Spring Boot 管理ページに表示されます。

また、下の画像に示すように、「アプリケーション ウォール」をクリックして、Spring Boot Admin で監視されているすべての Spring Boot プロジェクトを表示することもできます。

アプリケーションをクリックすると、下の画像に示すように詳細ページが表示されます。

イベント ログには、次の図に示すように、さまざまな Spring Boot の状態 (通常は UP、例外の場合は OFFLINE) と発生時刻が表示されます。

4. Spring Boot例外監視

監視対象の Spring Boot プロジェクトを手動で停止すると、次の図に示すように、Spring Boot Admin でアプリケーションが停止されていることを確認できます。

次の図に示すように、イベント ログを通じて Spring Boot のクラッシュの具体的な時間を確認することもできます。

5. より多くの監視項目を表示するように設定する

上記からわかるように、Spring Boot の監視オプションは比較的限られています。より多くの監視項目を表示するにはどうすればよいでしょうか?この問題を解決するには、監視対象の Spring Boot プロジェクトに spring-boot-starter-actuator フレームワークのサポートを追加し、すべての監視項目を表示する設定を有効にする必要があります。最終的な結果は以下の通りです。

次に、これらの監視項目を設定します。

5.1 アクチュエータフレームワークのサポートを追加

監視対象の Spring Boot プロジェクトにアクチュエータ フレームワークのサポートを追加するには、pom.xml に次の構成を追加します。

  1. <依存関係>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>スプリングブートスターターアクチュエータ</artifactId>
  4. </依存関係>

依存パッケージをインポートするには、Maven を手動でクリックします (自動インポートが有効になっている場合は、この手順は無視できます)。

5.2 すべての監視項目を有効にするように設定する

監視対象の Spring Boot プロジェクトに次の構成を追加します。

  1. # すべてのアイテムの監視を有効にする
  2. 管理エンドポイント.web.exposure.include=*

上記の設定により、すべての監視オプションが有効になります。設定後、このSpring Bootプロジェクトを再起動し、Spring Boot Adminを更新してください。すると、以下の画像のように、より多くの監視項目が表示されます。

5.3 監視プロジェクトのプレビュー

Spring Boot ですべての監視項目を有効にすると、SBA を通じて次の内容を表示できます。

  • 起動時間、累積実行時間。
  • プロセスとスレッドの数、およびそれらが消費する CPU リソース。
  • リサイクル回数や所要時間などの廃棄物リサイクルの詳細。
  • JVM スレッド ダンプ、メモリ ダンプの詳細、および対応するファイルのダウンロード。
  • Spring Boot プロジェクトでログ レベルを表示および構成できます。
  • Spring Boot プロジェクトのパフォーマンス監視を表示します。
  • Spring Boot ランタイム環境情報を表示します。
  • すべての Spring Boot クラス情報を表示します。
  • Spring Boot でスケジュールされたタスクを表示します。
  • Spring Boot プロジェクト内のすべてのキャッシュを表示および管理します。

ここにいくつかの重要なページのスクリーンショットがありますので、見てみましょう。

5.3.1 動作環境を確認する

5.3.2 スケジュールされたタスクの表示

5.3.3 プロジェクトログレベルの設定

Spring Boot Admin を使用して、プロジェクト内のログ レベルを動的に構成できます。

5.3.4 JVMスレッドとメモリの表示

5.3.5 すべてのSpring Bootキャッシュを表示する

もちろん、これらのキャッシュを削除することもできます。

6. プロジェクトのリアルタイムログを表示する

監視対象プロジェクトのログ情報を表示するには、前提条件があります。監視対象のSpring Bootプロジェクトに、ログ保存パスまたはログ保存ファイル名のいずれかが設定されている必要があります。これらのいずれかが設定されている場合のみ、Spring Bootプロジェクトはログをディスクに保存し、SBA経由で表示できるようになります。ログパスの設定は、Spring Bootのapplication.propertiesファイルに以下の設定を追加することで行いました。

  1. # ログ保存パスを設定する
  2. logging.file.path=C:\\作業\\ ログ

セットアップが完了したら、Spring Boot プロジェクトを再起動し、SBA ページを更新します。最終結果は以下のようになります。

これでリアルタイムのログ情報を確認できるようになりました。もちろん、必要に応じていつでもログをダウンロードすることもできます。

要約

Spring Boot Admin (SBA) は、Spring Boot アプリケーションの管理と監視のためのコミュニティオープンソースプロジェクトです。詳細なヘルス情報、メモリ情報、JVM システムおよび環境プロパティ、ガベージコレクション情報、ログ設定と表示、スケジュールされたタスクの表示、Spring Boot キャッシュの表示と管理などの機能を提供します。

1つ以上のSpring Bootプロジェクトを監視するには、SBAサーバーを作成する必要があります。監視対象のSpring Bootプロジェクトには、SBAクライアントフレームワークのサポート、アクチュエータフレームワーク、および関連する設定を追加する必要があります。これにより、Spring Bootプロジェクトの完全な監視が可能になります。