logstash - 从文件名(filebeat)创建动态索引的问题
问题描述
我正在尝试从源创建与文件名相同的索引名称,但它似乎不起作用,这是我的 logstash 配置文件:
input {
beats{
port=> 5044
}
}
filter {
grok {
match => ["source",".*\\%{GREEDYDATA:app_name}"]
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["localhost:9200"]
index => "%{app_name}"
}
}
日志样本:
07:52:29.040 [ORB.thread.pool : 0][INFO] ServiceArriereGuichet - @PostConstruct ServiceArriereGuichet 2020-02-17 08:05:33 INFO 认证 - Traitement Flux XML 2020-02-18 08:27:08,603 信息信息: Fin de construction du flux de sortie。
模式测试:
解决方案
我认为最有可能的问题可能是
- 使用您的源数据
- 您正在使用的模式
可能使用这个herokuapp 工具来测试您的 grok 模式,无论您是否根据源数据获得预期的结果。
通过给出一个固定的索引名称并测试 Elasticsearch 索引数据中 app_name 的值,排除 Grok 模式的问题。
不管 Grok 模式问题如何,我建议不要按原样使用提取的值,除非您可以完全控制源数据。相反,提供一个默认的索引名称,以防 grok 模式使用Logstash 条件语句失败。
推荐阅读
- vuejs2 - vuetify:单击时停止父动画
- sql - 如何计算条件在R中以分钟为单位找到两个DateTime之间的差异
- c# - VS 2019 调试时编辑
- flutter - 颤振加载页面不起作用/路由功能不起作用
- kubernetes - Grafana 在 Kubernetes Slack Webhook 中运行错误 502
- python - 更改 Pandas 数据框中的值,但保留日期列
- c++ - boost::bimap 在使用自定义结构作为键时发现错误的条目,为什么?
- c# - 使用 where 子句获取数据
- java - SQLGrammarException:尝试从数据库中删除时无法执行语句
- java - 录制后清空文件并在 1-2 秒后关闭移动设备