Fluentbit с многострочным разбором mycat
Я хочу сделать систему управления журналами через EFK. Я уже несколько дней пытаюсь заставить мой многострочный анализатор логов mycat работать с fluent-bit.
Моя свободная конфигурация:
parsers.conf:
[PARSER]
Name mycat_error_log_parser_head
Format regex
Regex ^(?<time>(\d)+(-\d+)+(\S)+\W(\S)+)(\s+)(?<action>\S+)(\s+)(?<on>\S+)
Time_Key time
Time_Format %Y-%m-%d %H:%M:%S.%L
Time_Keep On
[PARSER]
Name mycat_error_log_parser
Format regex
Regex ^(?<time>(\d)+(-\d+)+(\S)+\W(\S)+)(\s+)(?<action>\S+)(\s+)(?<on>\S+)(\s+)(?<content>(.|\s)*)$
Time_Key time
Time_Format %Y-%m-%d %H:%M:%S.%L
Time_Keep On
fluent-bit.conf
[INPUT]
Name tail
tag mycat
path /var/log/mycat.log
Multiline On
Parser_Firstline mycat_error_log_parser_head
Parser mycat_error_log_parser
Path_Key file
и mycat.log выглядит так:
mycat.log
2018-08-02 09:59:41.205 INFO [$_NIOConnector] (io.mycat.backend.datasource.PhysicalDatasource.getConnection(PhysicalDatasource.java:529)) - no ilde connection in pool,create new connection for hostS1 of schema mysql
2018-08-02 09:59:53.939 INFO [Timer0] (io.mycat.backend.datasource.PhysicalDatasource.getConnection(PhysicalDatasource.java:529)) - no ilde connection in pool,create new connection for hostS1 of schema mysql
2018-08-02 10:00:01.173 ERROR [$_NIOConnector] (io.mycat.net.NIOConnector.finishConnect(NIOConnector.java:155)) - error:
java.net.ConnectException: Connection timed out
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:1.7.0_111]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744) ~[?:1.7.0_111]
at io.mycat.net.NIOConnector.finishConnect(NIOConnector.java:165) ~[Mycat-server-1.6.5-release.jar:?]
at io.mycat.net.NIOConnector.finishConnect(NIOConnector.java:143) ~[Mycat-server-1.6.5-release.jar:?]
at io.mycat.net.NIOConnector.run(NIOConnector.java:98) ~[Mycat-server-1.6.5-release.jar:?]
2018-08-02 10:00:01.173 INFO [$_NIOConnector] (io.mycat.net.AbstractConnection.close(AbstractConnection.java:514)) - close connection,reason:java.net.ConnectException: Connection timed out ,MySQLConnection [id=0, lastTime=1533175073937, user=root, schema=mysql, old shema=mysql, borrowed=false, fromSlaveDB=true, threadId=0, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=parse1, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false]
2018-08-02 10:00:01.173 INFO [$_NIOConnector] (io.mycat.sqlengine.SQLJob.connectionError(SQLJob.java:117)) - can't get connection for sql :select user()
Я думаю о том, что я близко, но пока не повезло.
В моей кибане. Я получаю следующий результат: введите описание изображения здесь
Мой многострочный журнал ошибок отсутствует. но я тестирую в Rubular это нормальный анализ введите описание изображения здесь
Любая помощь будет оценена.
0 ответов
Эта конфигурация работала для вашего файла журнала, Fluent Bit опубликовал 5 документов для эластичного поиска с этой конфигурацией.
parsers.conf
[PARSER]
Name mycat_error_log_parser_head
Format regex
Regex ^(?<time>(\d)+(-\d+)+(\S)+\W(\S)+)(\s+)(?<action>\S+)(\s+)(?<on>\S+)(\s+)(?<content>.*)
Time_Key time
Time_Format %Y-%m-%d %H:%M:%S.%L
Time_Keep On
[PARSER]
Name mycat_error_log_parser
Format regex
Regex (?m-ix)^(?<time>(\d)+(-\d+)+(\S)+\W(\S)+)(\s+)(?<action>\S+)(\s+)(?<on>\S+)(\s+)(?<content>.*)
Time_Key time
Time_Format %Y-%m-%d %H:%M:%S.%L
Time_Keep On
fluent-bit.conf
[INPUT]
Name tail
tag mycat
path /var/log/mycat.log
Multiline On
Parser_Firstline mycat_error_log_parser_head
Parser_1 mycat_error_log_parser
Path_Key file
Два изменения внесены в конфигурацию из вопроса - конфигурация Regex была изменена в разделах [PARSER] и Parser изменен на Parser_1 в разделе [INPUT].
Я столкнулся с аналогичной проблемой с многострочным синтаксическим анализом, по моим наблюдениям, Parser_Firstline должен охватывать всю первую строку многострочного сообщения, а Parser_1 .. Parser_N должен охватывать всю структуру многострочного сообщения.
Документация Fluent Bit по многострочной конфигурации: https://fluentbit.io/documentation/0.12/input/tail.html
Пожалуйста измените Parser
к Parser_1
.
Parser_Firstline
должно быть регулярным выражением, соответствующим всем, кроме многострочных исключений и Parser_1
должно быть регулярным выражением, соответствующим всем, включая многострочные исключения.