docker-runtime және crio-runtime бар нодтардан Fluent Bit көмегімен логтар жинау
docker-runtime және crio-runtime бар нодтардан логтар жинауды біріздендіру үшін Fluent Bit пайдалану керек (fluentd-тің жеңіл әрі өнімдірек баламасы).
Helm үшін values.yaml ретінде төмендегі сілтеме бойынша берілген файлды қолданған жөн — онда қажетті сүзгілер мен парсерлер әлдеқашан бапталған.
Қоса берілген values.yaml ішінде [OUTPUT] үшін параметрлерді түзету қажет — мысалда логтарды сақтау үшін бір дерекқордағы екі кестесі бар PostgreSQL пайдаланылады:
fluentbit_21_hostкестесі — хост сервистерінің логтарын сақтау үшін (kublet.service,docker.service,crio.service).fluentbit_21_kubeкестесі — подтардың логтарын тікелей сақтайды.
Дәл осылай логтарды, мысалы, ElasticSearch жүйесінде сақтауға болады. Қолдау көрсетілетін сақтау түрлерінің толық тізімін сілтеме бойынша көруге болады.
Бөлу әдейі жасалған, себебі ол дерекқордағы әртүрлі кестелерді (Elasticsearch жүйесіндегі индекстерді) пайдалану мүмкіндігін көрсетуге арналған.
Fluent Bit орнатпас бұрын Gatekeeper үшін шектеуге (constraint) өзгерістер енгізіңіз. Бұл өзгерістер нодтардан логтарды оқуға мүмкіндік береді:
-
Кластерде
fluentbit_patch.yamlфайлын жасап, оны келесі мазмұнмен толтырыңыз:spec:match:kinds:- apiGroups:- ""kinds:- Podparameters:allowedHostPaths:- pathPrefix: /k8spspreadOnly: true- pathPrefix: /var/logreadOnly: true- pathPrefix: /var/log/containersreadOnly: true -
Келесі пәрменді орындап, өзгерістерді қолданыңыз:
kubectl patch k8spsphostfilesystem.constraints.gatekeeper.sh/psp-host-filesystem --patch-file fluentbit_patch.yaml --type merge
Fluent Bit-ті баптау файлымен келесі пәрмендер арқылы орнатуға болады:
helm repo add fluent https://fluent.github.io/helm-chartshelm install fluent-bit fluent/fluent-bit --values values.yaml
Fluent Bit орнату туралы қосымша ақпаратты Fluent Bit-тің ресми құжаттамасынан таба аласыз.
Docker логтары:
{"ts": 1638261063.088225,"msg": "ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete","time": "2021-11-30T08:31:03.088224558Z","level": "info"}
CRI-O логтары:
{"id": "415aaaf7-8105-4b95-a435-b6fa6994c68d","ts": 1638229757.742216,"msg": "Checking image status: registry.infra.mail.ru:5010/pause:3.0","name": "/runtime.v1alpha2.ImageService/ImageStatus","time": "2021-11-29 23:49:17.742215883Z","level": "info"}
Рантаймға қарамастан, под логы:
{"ts": 1638282885.830729,"log": "[2021/11/30 14:34:45] [ info] [engine] started (pid=1)","time": "2021-11-30T14:34:45.830729304Z","stream": "stderr","kubernetes": {"host": "runtime-613-v19-default-group-0","labels": {"app.kubernetes.io/name": "fluent-bit","pod-template-generation": "10","controller-revision-hash": "686bff7448","app.kubernetes.io/instance": "fluent-bit"},"pod_id": "516d9ae1-671c-4c2e-bfbd-f469de3eceb6","pod_name": "fluent-bit-tbnfb","docker_id": "e0961103bfd584c5a7ba960bbd60aae3544d1cf0d9c1658b90eaae2fb7a83c50","annotations": {"checksum/config": "6de425db2bca3061e94e50f648dfa35e9c9f77788f1755df389c303a7124359d","checksum/luascripts": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"container_name": "fluent-bit","namespace_name": "default","container_image": "fluent/fluent-bit:1.8.10"}}
Қораптан шыққан күйде қолжетімді әртүрлі парсерлерді GitHub-репозиторийінен көруге болады.