|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
|
Esta é uma documentação não divulgada para Admission Controller 1.34-dev. |
Registro
Você pode fazer sua política registrar logs.
O policy-server ou kwctl encaminha esses logs com as informações apropriadas.
A biblioteca de logging escolhida para o SDK Rust é slog.
É uma crate popular, bem conhecida e se integra de forma limpa com SUSE Security Admission Controller.
Inicialize o logger
O projeto recomenda que você crie um sink global para o qual você possa registrar logs, de qualquer lugar da sua política.
Para isso, use a crate lazy_static:
use slog::{o, Logger};
lazy_static! {
static ref LOG_DRAIN: Logger = Logger::root(
logging::KubewardenDrain::new(),
o!("policy" => "sample-policy")
);
}
Consumindo o logger
Agora, de dentro das funções validate ou validate_settings, você pode registrar logs usando os macros exportados por slog que correspondem a cada nível de logging suportado:
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
);
// ...
}
A biblioteca slog envia todos os logs para o drain inicializado na variável global.
Isso sincroniza com o avaliador de política que executa a política.
Isso é kwctl ou o policy-server.
Então, o avaliador de política registra essas informações, acrescentando informações contextuais adicionais, como a solicitação do Kubernetes uid.
Mais informações sobre os macros de logging oferecidos pelo slog estão em sua documentação.