拖尾 json 文件时 fluentd 中的模式不匹配错误
Posted
技术标签:
【中文标题】拖尾 json 文件时 fluentd 中的模式不匹配错误【英文标题】:Pattern not match error in fluentd while tailing json file 【发布时间】:2018-05-14 05:41:40 【问题描述】:我已经安装了 fluentd logger,我希望它能够监控我的 python 代码的日志。日志是 json 日志,如下所示:
"FileNo": 232,
"FileClass": "timitry",
"FileLevel": "24",
"DataCount": 5,
"Data":
"User1": <Username>,
"User2": <Username>,
"User3": <Username>,
"User4": <Username>,
"User5": <Username>"
,
"time": "2018-05-14T05:33:02.071793"
每 5 分钟更新一次。我需要为其编写一个 fluentd 输入插件,以便它可以读取新的 json 数据并将其发布到elastic search
。我真的不知道在这里使用哪个输入插件,但我使用了tail
,这给了我以下错误:
2018-05-14 05:31:04 +0000 [warn]: #0 pattern not match: " \"FileClass\": \"timitry\","
这对所有数据都是一样的。谁能建议我如何解决这个问题。下面是配置文件:
<source>
@type tail
format json
path /home/user/Documents/logs/file_log.json
tag first
</source>
<match first*>
@type elasticsearch
hosts 192.168.111.456:9200
user <username>
password <password>
</match>
我见过其他人使用regex
和其他格式。我是否也需要使用它。如何使用python代码生成的日志供fluentd使用并发布到elastic search
。
谢谢
【问题讨论】:
你有没有克服这个问题?我遇到了完全相同的问题。 【参考方案1】:您能否尝试删除匹配指令中第一个之后的通配符? 喜欢:
<match first>
@type elasticsearch
hosts 192.168.111.456:9200
user <username>
password <password>
</match>
【讨论】:
以上是关于拖尾 json 文件时 fluentd 中的模式不匹配错误的主要内容,如果未能解决你的问题,请参考以下文章
使用Fluentd进行日志记录 - 为什么json日志文件的输出显示为textpayload(而不是jsonpayload)?