springboot管理及び監視の端点


最初のページに戻ります
目次
 
前言
エンドポイントのオープン
端点の暴露ルール
 
前言
springbootの管理モニタには以下の依存性を追加する必要があります。
	    
			org.springframework.boot
			spring-boot-starter-actuator
			2.1.4.RELEASE
		
この時もしSprigbootを起動したら、訪問:http://localhost:8080/actuator応答があるのは以下の通りです。
{
    "_links": {
        "self": {
            "href": "http://localhost:8080/actuator",
            "templated": false
        },
        "health": {
            "href": "http://localhost:8080/actuator/health",
            "templated": false
        },
        "health-component": {
            "href": "http://localhost:8080/actuator/health/{component}",
            "templated": true
        },
        "health-component-instance": {
            "href": "http://localhost:8080/actuator/health/{component}/{instance}",
            "templated": true
        },
        "info": {
            "href": "http://localhost:8080/actuator/info",
            "templated": false
        }
    }
}
これを見て、みんながぼんやりしていることを信じて、焦らないでください。続いて教程に従って歩いて、あなたを連れてこれが一体何ですか?どういうことですか?何ができますか
エンドポイントのオープン
actuatはspringboot生産準備のための監視機能です。これはデフォルトでは、springプログラムの実行中のいくつかのエンドポイント状態をオンして取得することができます。
デフォルトではどのようなエンドポイント状態が得られますか?以下のとおりです
端点
説明
開くかどうかauditevents現在のアプリケーションの審査イベント情報を公開します。
はい、beansアプリケーション内のすべてのSpring beanの完全なリストが表示されます。
はい、caches利用可能なキャッシュを暴露します。
はい、conditions設定と自動構成クラスで評価された条件と、それらの整合または不一致の原因を表示します。
はい、configpropsすべての整理リスト@ConfigurationPropertiesが表示されます。
はい、envSpringが露出している属性ConfigurableEnvironment
はい、flyway適用された任意のFlywayデータベースの遷移を表示します。
はい、healthアプリケーション健康情報を表示します。
はい、httptraceHTTPトレース情報(デフォルトでは最後の100個のHTTP要求−応答交換)が表示されます。
はい、info任意のアプリケーション情報を表示します。
はい、integrationgraphSpring Integrationを表示します。
はい、loggersアプリケーションにおけるレコーダの構成を表示および変更します。
はい、liquibase適用された任意のLiquibaseデータベースの遷移を表示します。
はい、metrics現在のアプリケーションの指標情報が表示されます。
はい、mappings@RequestMappingパスの整理リストが表示されます。
はい、scheduledtasksアプリケーションに計画されたタスクが表示されます。
はい、sessionsSpring Sessionでサポートされているセッションストアからユーザセッションの検索と削除を許可します。レスポンス式WebアプリケーションへのSpring Sessionのサポートは利用できません。
はい、shutdownアプリケーションを正常に閉じます。
ありませんthreaddumpスレッドダンプを実行します。
はい、
webプログラムには以下の点も追加されています。heapdumphprofスタックのダンプファイルを返します。
はい、jolokiaJMX beanはHTTPで公開されています。
はい、logfileログファイルの内容を返します。設定されている場合はlogging.fileまたはlogging.path属性です。HTTPの使用に対応  Rangeヘッダーは、部分ログファイルの内容を検索する。
はい、prometheusプロメザスサーバでキャプチャできる形式で指標を公開します。
はい、
 
ここのエンドポイントはshutdown以外はデフォルトでオープンしました。それなら、urlを通じてアクセスしてエンドポイント情報を得ることができます。
たとえば、中のhealthエンドポイントは、あなたが訪問することができます。http://localhost:8080/actuator/healthプログラム全体が健康かどうかを知ることができます。
たとえば、中のmappingsエンドポイントは、訪問できます。http://localhost:8080/actuator/mappings mappingsは、ウェブプログラム全体のRequest Mappingを知ることができる。(でも、それは不可能です。404を絶対に見て、次を見てください。)
これらの端点はweb訪問時のurlは直接に/actuat/後ろに端点の名前をつければいいです。直接アクセスhttp://localhost:8080/actuatorどのようなエンドポイントがwebで利用できるかを確認します。
私たちは上の例を詳しく調べてみます。http://localhost:8080/actuatorで、その赤いマークの端点については、health端点とinfo端点しか使えないようです。はい、確かにそうです。だから、mappingsを訪問する時404です。なぜですか?
これらの端点は開いていますが、内部には確かに敏感な情報が含まれていますので、デフォルトはwebでは公開されていません。
端点の暴露ルール
端の露出方向は二つあります。一つはJMX(MBean方向、これは言いません。)で、もう一つはwebを通じてです。ルールは以下の通りです
端点
JMX
WEBauditeventsはい
No.beansはい
No.cachesはい
No.conditionsはい
No.configpropsはい
No.envはい
No.flywayはい
No.healthはい
はいheapdumpN/A
No.httptraceはい
No.infoはい
はいintegrationgraphはい
No.jolokiaN/A
No.logfileN/A
No.loggersはい
No.liquibaseはい
No.metricsはい
No.mappingsはい
No.prometheusN/A
No.scheduledtasksはい
No.sessionsはい
No.shutdownはい
No.threaddumpはい
No.
ウェブで見られるのはhealth info . 。だけです。
でも大丈夫です。私達はappication.propertiesで暴露ルールを設定できます。
management.endpoints.web.exposure.include=health,mappings
以上のように、healthとmappingsを公開しましたが、infoがありません。
だから、私たちはもう一度ブラウザで見たら、発見しました。http://localhost:8080/actuator/mappingsはい、見ることができます。healthも見ることができますが、infoは確認できません。
このように設定することもできます。
management.endpoints.web.exposure.include = *
management.endpoints.web.exposure.exclude = env,beans
すべてを公開しますが、envとbeansは公開しません。
このようにウェブでエンドポイントを検索すると、サーバーの状況を簡単に知ることができます。