Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Dies ist eine unveröffentlichte Dokumentation für Admission Controller 1.34-dev.

Protokollierung

Sie können Ihre Richtlinie so konfigurieren, dass sie Protokolle schreibt. Die policy-server oder kwctl leitet diese Protokolleinträge mit den entsprechenden Informationen weiter.

Die für das Rust SDK gewählte Protokollierungsbibliothek ist slog. Es ist ein beliebtes, bekanntes Crate und integriert sich sauber mit SUSE Security Admission Controller.

Logger initialisieren

Das Projekt empfiehlt, einen globalen Sink zu erstellen, in den Sie von überall in Ihrer Richtlinie protokollieren können. Verwenden Sie dafür das lazy_static Crate:

use slog::{o, Logger};

lazy_static! {
    static ref LOG_DRAIN: Logger = Logger::root(
        logging::KubewardenDrain::new(),
        o!("policy" => "sample-policy")
    );
}

Den Logger verwenden

Jetzt können Sie innerhalb der validate oder validate_settings Funktionen protokollieren, indem Sie die von slog exportierten Makros verwenden, die für jeden unterstützten Protokollierungslevel vorgesehen sind:

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
    );
    // ...
}

Die slog Bibliothek sendet alle Protokolle an den Drain, der in der globalen Variablen initialisiert wurde. Dies synchronisiert mit dem Richtlinienauswerter, der die Richtlinie ausführt. Dies ist entweder kwctl oder policy-server. Dann protokolliert der Richtlinienauswerter diese Informationen und fügt weitere bekannte kontextuelle Informationen hinzu, wie die Kubernetes-Anfrage uid.

Weitere Informationen zu den von slog angebotenen Protokollierungs-Makros finden Sie in der Dokumentation.