「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Spring Boot アクチュエーターの使用に関する初心者ガイド

Spring Boot アクチュエーターの使用に関する初心者ガイド

2024 年 8 月 6 日に公開
ブラウズ:360

A Beginners Guide to Using Spring Boot Actuator

Spring Boot Actuator は、アプリケーションの監視と管理に役立つ実稼働対応の機能を提供する Spring Boot のサブプロジェクトです。これは、アプリケーションの健全性、メトリクス、環境についての洞察を得ることができるだけでなく、アプリケーションを動的に制御できるようにする一連の組み込みエンドポイントを提供します。

スプリングブーツアクチュエーターとは何ですか?

Spring Boot Actuator は、アプリケーションの監視と対話に使用できる、すぐに使用できるエンドポイントをいくつか提供します。これらのエンドポイントには、HTTP、JMX 経由、または Spring Boot Admin を使用してアクセスできます。

スプリングブーツアクチュエーターの主な特徴

  1. ヘルスチェック: アプリケーションとその依存関係のヘルスチェックを監視します。
  2. メトリクス: メモリ使用量、ガベージ コレクション、Web リクエストの詳細などのさまざまなメトリクスを収集します。
  3. 環境情報: アプリケーションの環境プロパティにアクセスします。
  4. アプリケーション情報: バージョンや名前など、アプリケーションのビルドに関する情報を取得します。
  5. 動的ログ レベル: アプリケーションを再起動せずにログ レベルを変更します。
  6. HTTP トレース: HTTP リクエストをトレースします。

Spring Boot アクチュエータのセットアップ

1. アクチュエータの依存関係の追加

Spring Boot アプリケーションで Actuator を使用するには、pom.xml ファイルに Actuator の依存関係を追加する必要があります。

org.springframework.bootspring-boot-starter-actuator

Gradle を使用している場合は、build.gradle ファイルに以下を追加します:

implementation 'org.springframework.boot:spring-boot-starter-actuator'

2. アクチュエーターエンドポイントの有効化

デフォルトでは、少数のエンドポイントのみが有効になっています。 application.yml ファイルで追加のエンドポイントを有効にできます:

management:
  endpoints:
    web:
      exposure:
        include: "*"  # This exposes all available endpoints
  endpoint:
    health:
      show-details: always  # Show detailed health information

アクチュエーターエンドポイントの使用

Actuator がセットアップされると、Actuator が提供するさまざまなエンドポイントにアクセスできるようになります。一般的に使用されるエンドポイントをいくつか示します:

1. 健康エンドポイント

/actuator/health エンドポイントは、アプリケーションの健全性に関する情報を提供します:

GET http://localhost:8080/actuator/health

応答例:

{
  "status": "UP",
  "components": {
    "db": {
      "status": "UP",
      "details": {
        "database": "H2",
        "result": 1
      }
    },
    "diskSpace": {
      "status": "UP",
      "details": {
        "total": 499963174912,
        "free": 16989374464,
        "threshold": 10485760,
        "exists": true
      }
    }
  }
}

2. メトリクスエンドポイント

/actuator/metrics エンドポイントは、アプリケーションに関連するさまざまなメトリクスを提供します:

GET http://localhost:8080/actuator/metrics

応答例:

{
  "names": [
    "jvm.memory.used",
    "jvm.gc.pause",
    "system.cpu.usage",
    "system.memory.usage",
    "http.server.requests"
  ]
}

特定の指標の詳細を取得するには:

GET http://localhost:8080/actuator/metrics/jvm.memory.used

応答例:

{
  "name": "jvm.memory.used",
  "description": "The amount of used memory",
  "baseUnit": "bytes",
  "measurements": [
    {
      "statistic": "VALUE",
      "value": 5.1234567E7
    }
  ],
  "availableTags": [
    {
      "tag": "area",
      "values": [
        "heap",
        "nonheap"
      ]
    },
    {
      "tag": "id",
      "values": [
        "PS Eden Space",
        "PS Survivor Space",
        "PS Old Gen",
        "Metaspace",
        "Compressed Class Space"
      ]
    }
  ]
}

3. 環境エンドポイント

/actuator/env エンドポイントは、環境プロパティに関する情報を提供します:

GET http://localhost:8080/actuator/env

応答例:

{
  "activeProfiles": [],
  "propertySources": [
    {
      "name": "systemProperties",
      "properties": {
        "java.runtime.name": {
          "value": "Java(TM) SE Runtime Environment"
        },
        "java.vm.version": {
          "value": "25.181-b13"
        }
      }
    },
    {
      "name": "systemEnvironment",
      "properties": {
        "PATH": {
          "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "HOME": {
          "value": "/root"
        }
      }
    }
  ]
}

4. 情報エンドポイント

/actuator/info エンドポイントは、アプリケーションに関する情報を提供します:

GET http://localhost:8080/actuator/info

情報をカスタマイズするには、application.yml:
にプロパティを追加します。

info:
  app:
    name: My Spring Boot Application
    description: This is a sample Spring Boot application
    version: 1.0.0

アクチュエータのエンドポイントの保護

デフォルトでは、すべての Actuator エンドポイントは認証なしでアクセスできます。これらのエンドポイントを保護するには、Spring Security を使用できます。 Spring Security の依存関係を pom.xml:
に追加します。

org.springframework.bootspring-boot-starter-security

application.yml を更新してアクセスを制限します:

management:
  endpoints:
    web:
      exposure:
        include: "*"  # Expose all endpoints
  endpoint:
    health:
      show-details: always  # Show detailed health information

spring:
  security:
    user:
      name: admin  # Default username
      password: admin  # Default password

# Restrict actuator endpoints to authenticated users
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always
  security:
    enabled: true
    roles: ACTUATOR

HTTP セキュリティを構成するセキュリティ構成クラスを作成します:

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/actuator/**").hasRole("ACTUATOR")
                .anyRequest().authenticated()
            .and()
            .httpBasic();
    }
}

この構成では、ACTUATOR ロールを持つ認証されたユーザーのみが Actuator エンドポイントにアクセスできます。

アクチュエータエンドポイントのカスタマイズ

カスタム Actuator エンドポイントを作成して、アプリケーションに固有の追加情報や機能を公開できます。カスタム エンドポイントの作成例は次のとおりです:

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.stereotype.Component;

@Endpoint(id = "custom")
@Component
public class CustomEndpoint {

    @ReadOperation
    public String customEndpoint() {
        return "Custom Actuator Endpoint";
    }
}

カスタム エンドポイントにアクセスします:

GET http://localhost:8080/actuator/custom

結論

Spring Boot Actuator は、アプリケーションの監視と管理に役立つ堅牢なツール セットを提供します。組み込みのエンドポイントとカスタム エンドポイントを作成する機能を活用することで、アプリケーションのパフォーマンスと状態に関する貴重な洞察を得ることができます。これらのエンドポイントを Spring Security で保護して、承認されたユーザーのみがアクセスできるようにすると、管理と監視が簡単な実稼働対応のアプリケーションが手に入ります。

Actuator は Spring Boot アプリケーションの重要な部分であり、アプリケーションの実行環境の状況を常に把握し、問題が発生したときに迅速に対応できるようにします。今すぐ Spring Boot Actuator の使用を開始して、アプリケーションの可観測性と運用機能を強化してください。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/isaactony/a-beginners-guide-to-using-spring-boot-actuator-5g3n?1 侵害がある場合は、[email protected] に連絡して削除してください。それ
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3