apache-nifi - 带有 grok 模式错误的 Telegraf 尾部
问题描述
我正在使用 Telegraf 从 Apache NiFi 获取日志信息,对于此任务,我使用此配置:
[[inputs.tail]]
## files to tail.
files = ["/var/log/nifi/nifi-app.log"]
## Read file from beginning.
from_beginning = true
#name_override = "nifi_app"
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
data_format = "grok"
grok_patterns = [ "%{DATE:date} %{TIME:time} %{WORD:EventType} \[%{GREEDYDATA:NifiTask} %{NOTSPACE:Thread}\] %{NOTSPACE:NifiEventType} %{GREEDYDATA:EventText} %{NUMBER:EventDuration} %{WORD:EventDurationUnits}" ]
当我尝试启动电报时,它给了我这个错误:
解析/etc/telegraf/telegraf.conf, toml: line 10: 解析错误
我编写的模式在Grok 调试器中使用以下文本进行了测试:
2018-08-02 10:53:16,976 INFO [Heartbeat Monitor Thread-1] oancchAbstractHeartbeatMonitor 已完成处理 11863 纳秒内的 1 个心跳
以下是一些测试的结果:
grok_patterns = ["\[%{GREEDYDATA:NifiTask}\]"] ==> toml: line 10: parse error
grok_patterns = ["[%{GREEDYDATA:NifiTask}]"] ==> Invalid data format: grok
grok_patterns = ['\[%{GREEDYDATA:NifiTask}\]'] ==> Invalid data format: grok
grok_patterns = ["\\[%{GREEDYDATA:NifiTask}\\]"] ==> Invalid data format: grok
grok_patterns = ['[%{GREEDYDATA:NifiTask}]'] -> Invalid data format: grok
对我来说,第一个选项是正确的,但不起作用,问题似乎是括号被转义的方式。
如何解决这个问题?
解决方案
要解决有关转义括号的问题,“部分”解决方案是通过简单引号更改双引号,这样,在我的情况下(电报版本 1.13.4),括号正确转义为 \
推荐阅读
- html - 尝试增加 Div 高度时,它不起作用。帮助表示赞赏
- c# - 抽象基类列表仅返回基类的属性
- core-data - 如何在使用 MVVM 的同时使用 SwiftUI 实现核心数据关系
- javascript - 如何使用 Jest 单元测试触发 transitionend
- database - 数据库如何提供原子性?
- node.js - 不和谐.js | 图片分离/非嵌入
- r - 有条件地向列添加 12 小时
- sql - 使用显式值进行 BigQuery 合并
- javascript - 如何在 javascript 中读取二进制音频文件?
- python - 在我的函数修复中,2 个嵌套的 while 循环的时间复杂度如何为 o(N)?