Ubuntu 18.04下Logstash启动报错(OpenSSL::X509::StoreError)求助
解决Logstash启动时的OpenSSL::X509::StoreError错误
我之前在Ubuntu 18.04环境下遇到过完全相同的问题,这个报错本质是Java的信任证书库(truststore)为空或无法被Logstash正确加载导致的。结合你的场景,这里有几个经过验证的修复步骤:
1. 修复系统根证书库
Ubuntu的ca-certificates-java包负责维护系统级的根证书,很多时候这个包的损坏会导致信任库为空。执行以下命令重新安装它:
sudo apt-get update sudo apt-get --reinstall install ca-certificates-java
这个操作会重新生成Java的信任库文件/etc/ssl/certs/java/cacerts,填充必要的根证书。
2. 验证信任库状态
安装完成后,检查信任库文件是否非空:
ls -l /etc/ssl/certs/java/cacerts
如果输出的文件大小大于0,说明修复成功;如果还是空,你可以手动导入系统根证书到Java信任库:
sudo keytool -importkeystore -srckeystore /etc/ssl/certs/ca-certificates.crt -srcstoretype PEM -destkeystore /etc/ssl/certs/java/cacerts -deststoretype JKS
执行时会提示设置密码,默认密码是changeit。
3. 修正Logstash配置文件的语法错误
注意你的配置文件里存在语法问题:Logstash的配置项需要用=>而非=,布尔值也不需要加引号。修正后的配置应该是:
input { kafka { bootstrap_servers => "localhost:9092" topics => ["cpu_metrics"] enable_auto_commit => true type => "cpu" } } output { if [type] == "cpu" { file { path => "/home/cpu/cpu.log" } } }
语法错误虽然不是这次启动报错的直接原因,但会导致后续Logstash无法正常处理数据,务必修正。
4. 手动指定信任库启动(可选)
如果上述步骤后仍然报错,可以在启动Logstash时手动指定信任库路径:
sudo /usr/share/logstash/bin/logstash -f /path/to/your/config.conf -J-Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts
替换/path/to/your/config.conf为你实际的配置文件路径。
内容的提问来源于stack exchange,提问作者Nikita Lipatov
相关产品推荐
相关产品推荐

