検索

16.6. Syslog を使用した集中ロギング

download PDF

Red Hat build of Keycloak は、ログをリモート Syslog サーバーに送信する機能を提供します。これは、RFC 5424 で定義されたプロトコルを利用し ます。

16.6.1. Syslog ハンドラーの有効化

Syslog を使用したロギングを有効にするには、以下のようにアクティベートされたログハンドラーのリストに追加します。

bin/kc.[sh|bat] start --log="console,syslog"

16.6.2. Syslog アプリケーション名の設定

別のアプリケーション名を設定するには、以下のように the -log-syslog-app-name オプションを追加します。

bin/kc.[sh|bat] start --log="console,syslog" --log-syslog-app-name=kc-p-itadmins

設定されていない場合、アプリケーション名はデフォルトで keycloak になります。

16.6.3. Syslog エンドポイントの設定

集中ロギングシステムのエンドポイント(host:port)を設定するには、以下のコマンドを入力して、値を特定の値に置き換えます。

bin/kc.[sh|bat] start --log="console,syslog" --log-syslog-endpoint=myhost:12345

Syslog ハンドラーが有効な場合、ホストは localhost をホスト値として使用します。デフォルトのポートは 514 です。

16.6.4. Syslog ログレベルの設定

Syslog ログハンドラーのログレベルは、以下のように --log-syslog-level プロパティーで指定できます。

bin/kc.[sh|bat] start --log-syslog-level=warn

詳細は、上記の 「各ハンドラーのログレベル指定」 セクションを参照してください。

16.6.5. Syslog プロトコルの設定

Syslog は、通信のデフォルトプロトコルとして TCP を使用します。TCP の代わりに UDP を使用するには、以下のように --log-syslog-protocol オプションを追加します。

bin/kc.[sh|bat] start --log="console,syslog" --log-syslog-protocol=udp

使用可能なプロトコルは、tpcudp、および ssl-tcp です。

16.6.6. Syslog ログ形式の設定

ログに記録される行のログ形式を設定するには、次の手順を実行します。

  1. 前述の表を使用して、形式テンプレートを作成します。
  2. 以下のコマンドを入力します。

    bin/kc.[sh|bat] start --log-syslog-format="'<format>'"

; などの特殊なシェル文字を含むコマンドを呼び出す場合は、CLI を使用して文字をエスケープする必要があります。代わりに、設定ファイルで設定することを検討してください。

例: 完全修飾カテゴリー名を短縮する

bin/kc.[sh|bat] start --log-syslog-format="'%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n'"

この例では、テンプレートでデフォルトの [%c] の代わりに [%c{3.}] を設定することで、カテゴリー名を 3 文字に短縮します。

16.6.7. Syslog タイプの設定

Syslog は、特定の RFC 仕様に基づいて異なるメッセージ形式を使用します。異なるメッセージ形式で Syslog タイプを変更するには、以下のように the -log-syslog-type オプションを使用します。

bin/kc.[sh|bat] start --log-syslog-type=rfc3164

以下の値が --log-syslog-type オプションで使用可能な値になります。

  • rfc5424 (default)
  • rfc3164

推奨 Syslog タイプは RFC 5424 で、BSD Syslog プロトコルと呼ばれる RFC 3164 を廃止します。

16.6.8. Syslog の最大メッセージ長の設定

送信が許可されるメッセージの最大長(バイト単位)を設定するには、次のように the --log-syslog-max-length オプションを使用します。

bin/kc.[sh|bat] start --log-syslog-max-length=1536

長さは、1k1K などの適切な接尾辞を持つメモリーサイズ形式で指定できます。長さには、ヘッダーとメッセージが含まれます。

長さが明示的に設定されていない場合、デフォルト値は以下のように the --log-syslog-type オプションに基づいて設定されます。

  • 2048b -(RFC 5424 用)
  • 1024B -(RFC 3164 の場合)

16.6.9. Syslog 構造化出力の設定

デフォルトでは、Syslog ログハンドラーはプレーンの非構造化データを Syslog サーバーに送信します。代わりに構造化された JSON ログ出力を使用するには、次のコマンドを入力します。

bin/kc.[sh|bat] start --log-syslog-output=json

ログメッセージの例

2024-04-05T12:32:20.616+02:00 host keycloak 2788276 io.quarkus - {"timestamp":"2024-04-05T12:32:20.616208533+02:00","sequence":9948,"loggerClassName":"org.jboss.logging.Logger","loggerName":"io.quarkus","level":"INFO","message":"Profile prod activated. ","threadName":"main","threadId":1,"mdc":{},"ndc":"","hostName":"host","processName":"QuarkusEntryPoint","processId":2788276}

JSON 出力を使用する場合、色が無効になり、by --log-syslog-format で設定された形式 設定は適用されません。

非構造化ロギングを使用するには、次のコマンドを入力します。

bin/kc.[sh|bat] start --log-syslog-output=default

ログメッセージの例

2024-04-05T12:31:38.473+02:00 host keycloak 2787568 io.quarkus - 2024-04-05 12:31:38,473 INFO  [io.quarkus] (main) Profile prod activated.

ご覧のとおり、タイムスタンプが 2 回存在するため、タイムスタンプを the -log-syslog-format プロパティーを介して対応するように修正できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.