#redis #fluentd
Вопрос:
Мне нужно проанализировать сообщения журнала redis с помощью fluentd со следующим регулярным выражением
<pattern>
format regexp
expression /^(?<time>. ) (?<stream>stdout|stderr)( (?<logtag>.))? (?<log>.*)$/
time_format '%Y-%m-%dT%H:%M:%S.%N%:z'
</pattern>
Я получаю этот пример:
2021-11-02T09:31:45.289928748 01:00 stdout F 1:C 02 Nov 2021 08:31:45.289 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2021-11-02T09:31:45.289928748 01:00 stdout F 1:C 02 Nov 2021 08:31:45.289 # Redis version=6.2.4, bits=64, commit=00000000, modified=0, pid=1, just started
2021-11-02T09:31:45.289928748 01:00 stdout F 1:C 02 Nov 2021 08:31:45.289 # Configuration loaded
2021-11-02T09:31:45.290592569 01:00 stdout F 1:M 02 Nov 2021 08:31:45.290 * monotonic clock: POSIX clock_gettime
2021-11-02T09:31:45.291801101 01:00 stdout F 1:M 02 Nov 2021 08:31:45.291 * Running mode=standalone, port=6379.
2021-11-02T09:31:45.291870678 01:00 stdout F 1:M 02 Nov 2021 08:31:45.291 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
2021-11-02T09:31:45.291870678 01:00 stdout F 1:M 02 Nov 2021 08:31:45.291 # Server initialized
2021-11-02T09:31:50.488897464 01:00 stdout F 1:M 02 Nov 2021 08:31:50.488 * DB loaded from append only file: 5.196 seconds
2021-11-02T09:31:50.488897464 01:00 stdout F 1:M 02 Nov 2021 08:31:50.488 * Ready to accept connections
Вывод журнала для Redis 2.x будет выглядеть примерно так: [pid] сообщение уровня регистрации даты
https://build47.com/redis-log-format-levels /
и теперь я хочу настроить последнюю часть « log message" ==> (1:C 02 Nov 2021 08:31:45.289 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo)
, чтобы получать сообщение уровня журнала даты [pid] в отдельных полях?
Комментарии:
1.
<pattern> format regexp expression /^(?<time>. ) (?<stream>stdout|stderr)( (?<logtag>.))? (?<log>.*)$/ time_format '%Y-%m-%dT%H:%M:%S.%N%:z' </pattern>