json - fluentd解析日志部分json
问题描述
我在 fluentd 中有一个来自 syslog proto 的源代码,但该行并不完全符合 syslog。
142>May 31 16:22:56 haproxy[77]: {"ident":"haproxy","client_ip":"172.20.1.3","c....}
我需要先解析 json 部分,然后再将其提交给 elasticsearch/kibana。
你会怎么做?这使我“无法解析消息数据”
<source>
@type syslog
port 514
tag haproxy-logs
<parse>
@type json
</parse>
key_name log
</source>
我还尝试了一个标准的系统日志输入,没有解析。和一个带有 json 解析器的过滤器,但没有成功。谢谢
解决方案
所以我做了2次让它工作:
<source>
@type syslog
port 514
tag haproxy-logs
<parse>
@type regexp
expression /(?<jsonmsg>\{\".*)/
</parse>
</source>
和
<filter haproxy-logs**>
@type parser
format json
time_key date_time
time_format %d/%b/%Y:%H:%M:%S.
key_name jsonmsg
reserve_data true
</filter>
推荐阅读
- postgresql - PostgreSQL BDR 与复制槽有关的问题
- node.js - `http://localhost` 上的安全 Cookie
- react-native - React-native this.props 在回调函数中为空
- java - Apache Ignite 不会以 6 节点集群启动 - 无法解析节点拓扑
- python - 如何可视化多个向量之间的关系(距离度量)?
- ruby-on-rails - Rails 添加验证以根据属性检查模型的实例数
- java - Android工作室,在java中每次点击都会改变按钮文本
- ios - 如何使用 SpriteKit 在 Xcode 13 中以编程方式设置根视图控制器?
- git - 创建新分支时将日期和时间附加到分支名称
- flutter - 可以“保持中心点”的列。我能做些什么?