You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ELK报错及Logstash无法创建Elasticsearch索引问题求助

解决ELK的cgroup报错与Logstash未创建索引问题

一、解决"One or more required cgroup files or directories not found: /proc/self/cgroup"报错

这个警告是因为Logstash默认会尝试读取Linux系统特有的cgroup文件来收集监控数据,但Windows系统没有/proc目录结构,所以触发了这个提示。你可以通过以下方式禁用cgroup检测:

  • 打开Logstash安装目录下的config/jvm.options文件,添加一行配置:
    -Dlogstash.cgroups.enabled=false
    
  • 或者修改config/logstash.yml文件,添加:
    cgroups.enabled: false
    

修改后重启Logstash,这个警告就会消失了。

二、排查Logstash启动成功但未创建Elasticsearch索引的问题

结合你的配置文件,我整理了几个关键排查点:

1. 修复Windows路径格式问题

你的input路径用了单反斜杠\,在Logstash配置里,Windows路径需要用正斜杠/或者双反斜杠\\,否则会被识别为转义字符导致路径无效。修改后的input配置应该是:

input {
  file {
    path => "C:/workspace/app/logback/applogs.log" # 正斜杠格式
    # 或者 path => "C:\\workspace\\app\\logback\\applogs.log" 双反斜杠格式
    codec => "json"
    type => "logback"
    start_position => "beginning" # 可选:如果要读取已有日志,添加这一行
  }
}

2. 确认日志文件有新内容(或强制读取历史内容)

Logstash的file插件默认从文件末尾开始读取日志,如果你的applogs.log没有新的日志写入,它不会主动读取已存在的内容。如果需要读取历史日志,一定要加上start_position => "beginning"配置,同时注意:如果Logstash已经记录过这个文件的读取位置(存储在data/plugins/inputs/file/.sincedb_*文件中),需要删除对应的sincedb文件,否则它会从上次记录的位置继续读取。

3. 验证JSON codec是否匹配日志格式

你配置了codec => "json",这要求你的Spring Boot日志必须是标准JSON格式(比如用Logback的net.logstash.logback.encoder.LogstashEncoder生成的日志)。如果日志是普通文本格式,JSON codec解析会失败,日志会被丢弃。你可以临时把codec改成line测试,看是否能正常创建索引:

codec => "line"

4. 检查Logstash与Elasticsearch的连接

  • 确认Elasticsearch服务正常运行:访问http://localhost:9200,能返回JSON响应说明ES正常。
  • 如果Elasticsearch开启了安全验证(比如用户名密码),需要在output配置中添加认证信息:
    elasticsearch {
      hosts => [ "localhost:9200" ]
      index => "logback-test"
      user => "elastic"
      password => "your-password"
    }
    

5. 查看Logstash的运行日志

打开Logstash安装目录下的logs/logstash-plain.log,搜索关键词error或warn,看看有没有具体的报错信息(比如路径不存在、ES连接失败、JSON解析错误等),这些日志是排查问题最直接的依据。

内容的提问来源于stack exchange,提问作者aizaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:56:37