как разобрать лог kubelet с помощью fluentd - PullRequest
0 голосов
/ 05 июня 2019

Исходный журнал kubelet выглядит так:

I0605 09:03:41.463195   28799 setters.go:72] Using node IP: "10.127.7.174"

Я могу разобрать его в fluentd как:

format1 /^(?<severity>\w)(?<time>\d{4} [^\s]*)\s+(?<pid>\d+)\s+(?<source>[^ \]]+)\] (?<message>.*)/

Однако, kubespary развернуть kubelet следующим образом: 1. journald собираеткубеле бревно;2. Я пишу файл rsyslog, чтобы журнал kubelet можно было сохранить в /var/log/kubelet.log.И журнал меняется на:

Jun  5 09:03:41 k8s-4 kubelet: I0605 09:03:41.463195   28799 setters.go:72] Using node IP: "10.127.7.174"

Интересно, как это разобрать.

1 Ответ

1 голос
/ 06 июня 2019

Я попытался проанализировать ваш файл примера журнала и использовать следующий фильтр regexp для достижения результата:

format /(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[^ :\[]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$/

Это разделит ключи соответственно в соответствии с Fluentular output:

время 2019/06/06 08:19:35 + 0000

хост k8s-4

идент кубелет

сообщение I0605 09: 03: 41.463195 28799 setters.go: 72] Использование IP-адреса узла: "10.127.7.174"

Чтобы узнать больше о Fluentd regexp, просто прочитайте документацию .

FYI. Также есть возможность записывать логи с systemd через fluent-plugin-systemd .

...