Logstash按多路径配置多索引后未生成索引、Kibana不可见如何解决
配置修改方案
你当前的配置存在几处语法错误和逻辑疏漏,按优先级调整即可:
- elasticsearch输出的index参数语法错误
index字段只接受字符串值,不支持数组格式,需要把两处elasticsearch输出的配置修改为:# prod对应的elasticsearch输出 elasticsearch { hosts => ["localhost:9200"] index => "prod-log" } # dev对应的elasticsearch输出 elasticsearch { hosts => ["localhost:9200"] index => "dev-log" } - file输入的type参数语法错误
type字段同样为字符串类型,把两处file输入里的type => ["json"]改为type => "json"即可,该错误不直接影响索引生成,但会导致后续按type过滤的逻辑失效。 - 新增文件读取配置避免历史数据不重读
Logstash默认会记录已读取文件的偏移量,若你之前已经读取过对应日志文件,默认不会重新推送历史数据到ES。可以在两个file输入配置中新增如下参数(适用于Windows系统):file{ tags => ["prod"] type => "json" path => ["C:/Users/DELL/Downloads/log/prod/*.log"] start_position => "beginning" # 首次读取从文件开头读 sincedb_path => "NUL" # 不记录文件读取偏移量,测试用,生产环境可以去掉该配置 } - 补充ES权限配置
若你的Elasticsearch集群开启了身份认证,需要在elasticsearch输出配置中补充账号密码参数:elasticsearch { hosts => ["localhost:9200"] index => "prod-log" user => "elastic" password => "你的ES密码" } - 检查ES自动索引创建开关
执行ES命令GET _cluster/settings确认是否关闭了自动索引创建,若action.auto_create_index为false,可以临时开启或者提前创建对应名称的索引模板。
修改后重启Logstash即可在ES中看到对应索引,若还是没有生成可以查看Logstash运行日志排查连接ES的报错信息。
内容的提问来源于stack exchange,提问作者akhil kandari
相关产品推荐
相关产品推荐

