Skip to content

Instantly share code, notes, and snippets.

@VerosK
Created May 30, 2022 14:33
Show Gist options
  • Save VerosK/eee3e8183de239570d6e08362c3315f7 to your computer and use it in GitHub Desktop.
Save VerosK/eee3e8183de239570d6e08362c3315f7 to your computer and use it in GitHub Desktop.

Sběr logů v K8S

Návod pro k3s

  • kontejnery (CRI) logují do/var/log/containers/....

    • například /var/log/containers/fluent-bit-k4h8j_logging_fluent-bit-f0c5fdc11e04e560b6aaec8295e9b3311a7be83041d43601f8f86b68d3aa1a07.log
  • na každém worker node běží fluent-bit, který je sbírá jako soubory

    • vytváří události s tagem kube.var.log.containers.fluent-bit-k4h8j_logging_fluent-bit-f0c5fdc11e04e560b6aaec8295e9b3311a7be83041d43601f8f86b68d3aa1a07.log
  • tyhle události se proženou filtrem kubernetes, který k nim přidá field kubernetes

    • pro docker se použije parser docker, pro k3s používáme parser cri
    • např.
    •  {"@tag":"pods.prod-kramerius.kramerius-6c54f78df7-96tbr.stdout.log",
        "@timestamp":"2022-05-30T13:11:20.421701661Z",
        "kubernetes":{"annotations": {...} , "labels": {...}, "pod_name": "...", "pod_id": "..."  }
      
  • tyhle události je potom možné nějak zpracovávat dál.

    • strkáme je jako události do Redisu ( redis output filter )
    • ... nebo je přeznačkujeme a vkládáme do do S3 bucketu, jako samostatné objekty

Co nefunguje:

  • file output nejspíš neumí pohodlně ukládat do více souborů paralelně
  • s3 output neumí nastavovat storage_class.

Co existuje

  • existuje lua plugin, který umí upravovat zprávy za běhu

S3: https://docs.fluentbit.io/manual/pipeline/outputs/s3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment