logstash - Logstash 7 未向索引名称添加日期戳
问题描述
我刚刚从 ELK 6.7.0 更新到 7.4.0(通过 6.8.0)。在我启动 7.4.0 实例后,logstash 开始将数据放入名为“logstash”的索引中,而不是像以前那样将“logstash-2019.10.24”放入索引中。
我更新了我的输出插件看起来像
output {
elasticsearch {
hosts => ["localhost"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
我以前没有“索引”部分,但我尝试了它是否有帮助,重新启动了logstash,它仍在将数据放入“logstash”索引中。
如何让 logstash 再次使用带日期戳的索引?
(我在 docker 中只运行一个单节点:https ://github.com/kenwdelong/elk-docker/tree/ELK-7.4.0 )
奇怪的是,如果我在干净的机器上启动相同的标记 docker 图像,并使用我的 github 页面上的测试脚本将一些数据推入其中,它工作正常,并且我在索引名称中得到日期。
解决方案
我终于想通了。我安装了一个名为“logstash”的模板,其索引模式为“logstash-*”。这个模板是很久以前的,在“mappings”下面仍然有“ defaults ”键。显然这阻止了 ES 7 创建索引,所以 Logstash 不知何故退回到“logstash”索引。我不得不删除 logstash 模板,然后在没有“ defaults ”键的情况下重新创建它。此外,我遇到了一些问题,因为 ECS 导致记录没有被索引 - ES 假设某些字段(如 userAgent)是一种类型,而实际上我所拥有的所有内容都设置为不同的类型。所以我也必须解决这些问题。
推荐阅读
- c# - System.Exception:找不到方法:'ILoggerFactory.AddConsole(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel)'
- nginx - 防止 nginx 添加额外的斜杠
- python - 如何使用 web3 将 BNB 兑换成另一种加密货币?
- mysql - ERROR 1492 (HY000): 对于 RANGE 分区,必须定义每个分区
- linux - 无法运行 websphere 应用程序服务器 docker 映像
- java - 无法使用 uiautomator 查看器访问 appium 中的弹出元素。有什么解决办法吗?
- reactjs - 如何使用 react/redux 对请求进行排队?
- python - python 中的 stomp.ConnectionListener 在从 ActiveMQ 出列消息时是否保存任何数据?
- r - (1 - h) * qs[i] 中的错误:二进制运算符的非数字参数
- node.js - PERMISSION_DENIED:IAM 权限“dialogflow.sessions.detectIntent”节点 js