我安装了ELK + filebeat并且我最近开始使用SYSLOG5424LINE logstash过滤器以不同方式过滤我的syslogs,因为系统日志优先级默认为通知。这在弹性搜索的syslog文档中创建了一些新索引,此外还纠正了错误地默认为' notice'的syslog优先级字段。
现在我所有新生成的系统日志文件都有一堆新字段,我的旧文档来自过滤器更改之前没有,我不认为重新索引我的旧文档会起作用,因为我会需要删除具有不正确值的syslog优先级字段,并将其替换为syslog5424_pri字段。
所以,我已经阅读了如何从elasticsearch中删除所有文档,但是一旦我这样做,我如何让filebeat将所有这些日志重新发送到ES?它是否具有与ES现在正在接收的新日志相同的索引和映射?
答案 0 :(得分:3)
使用DELETE API删除索引和文档。如果你想摆脱整个索引,你可以使用
curl -XDELETE 'localhost:9200/<indexname>'
如果您只想从索引中删除特定文档类型,则需要使用“按查询API删除”
curl -XPOST 'localhost:9200/<indexname>/_delete_by_query?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"type": "doctype"
}
}
}
'
重新发送日志Filebeat已经通过清除Filebeat注册表完成发送。该文件夹应为$FilebeatInstallation/registry
。这样FileBeat会将其视为新日志。
映射和索引名称由logstash配置定义。因此,现在由Filebeat重新发送的数据将使用它的当前迭代。