|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.34-dev. |
ログ記録
ポリシーでログを記録できます。 `policy-server`または`kwctl`は、適切な情報を付加したログエントリを転送します。
Rust SDKに選ばれたログライブラリは、https://github.com/slog-rs/slog[slog]です。
これは人気があり、よく知られたクレートで、SUSE Security Admission Controllerとクリーンに統合されます。
ロガーを初期化します。
プロジェクトは、ポリシー内の必要な場所からログを記録できるグローバルなシンクを作成することを推奨しています。 これには、`lazy_static`クレートを使用します:
use slog::{o, Logger};
lazy_static! {
static ref LOG_DRAIN: Logger = Logger::root(
logging::KubewardenDrain::new(),
o!("policy" => "sample-policy")
);
}
ロガーを使用する
今、`validate`または`validate_settings`関数内から、各サポートされているログレベルに対応する`slog`がエクスポートするマクロを使ってログを記録できます。
use slog::{info, o, warn, Logger};
fn validate(payload: &[u8]) -> CallResult {
// ...
info!(LOG_DRAIN, "starting validation");
// ...
warn!(
LOG_DRAIN, "structured log";
"some_resource_name" => &some_resource_name
);
// ...
}
`slog`ライブラリは、グローバル変数に初期化されたドレインにすべてのログを送信します。 これは、ポリシーを実行しているポリシー評価者に同期します。 これは`kwctl`または`policy-server`です。 その後、ポリシー評価者はこの情報をログに記録し、Kubernetesリクエスト`uid`などのさらなる既知のコンテキスト情報を追加します。
slogが提供するhttps://docs.rs/slog/2.7.0/slog/macro.log.html[ログ記録マクロ]に関する詳細情報は、そのhttps://docs.rs/slog/2.7.0/slog/index.html[ドキュメント]にあります。