/usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -t Unrecognized VM option 'UseConcMarkSweepGC' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
时间: 2025-06-18 13:39:29 浏览: 13
### Logstash 服务启动失败:与 Java 虚拟机选项 'UseConcMarkSweepGC' 相关的错误
Logstash 服务启动失败且显示 `Unrecognized VM option 'UseConcMarkSweepGC'` 的问题,通常与 Java 虚拟机 (JVM) 的版本不兼容有关。以下是详细的分析和解决方法。
#### 1. JVM 版本与选项兼容性
从 JDK 9 开始,`UseConcMarkSweepGC` 被标记为废弃选项,并在后续版本中移除。如果使用的是 JDK 9 或更高版本,则会导致此错误。建议检查当前系统中使用的 Java 版本:
```bash
java -version
```
如果版本高于 JDK 8,则需要调整 JVM 配置或切换到兼容的 JDK 版本[^1]。
#### 2. 修改 Logstash 的 JVM 配置文件
Logstash 的 JVM 配置文件位于 `/etc/logstash/jvm.options`。打开该文件并注释掉以下与 CMS 垃圾回收器相关的行:
```properties
#-XX:+UseConcMarkSweepGC
#-XX:CMSInitiatingOccupancyFraction=75
#-XX:+UseCMSInitiatingOccupancyOnly
```
保存文件后重新启动 Logstash 服务以验证问题是否解决[^4]。
#### 3. 切换到兼容的 JDK 版本
如果无法修改 JVM 配置文件,可以选择将系统中的 Java 版本降级到 JDK 8。通过以下命令安装 JDK 8:
```bash
sudo yum install java-1.8.0-openjdk-devel
```
设置默认的 Java 版本:
```bash
sudo alternatives --config java
```
选择 JDK 8 并验证:
```bash
java -version
```
#### 4. 环境变量配置
确保 Logstash 使用正确的 Java 版本。可以通过设置 `JAVA_HOME` 环境变量实现:
```bash
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
```
将上述内容添加到 `/etc/profile` 或 `/etc/environment` 文件中以持久化配置[^1]。
#### 5. 检查 Logstash 日志
如果问题仍未解决,可以查看 Logstash 的日志文件以获取更多详细信息:
```bash
tail -f /var/log/logstash/logstash-plain.log
```
日志中可能会显示具体的错误原因,例如配置文件路径错误、权限不足或依赖服务未启动等问题[^3]。
#### 6. 手动运行 Logstash
尝试手动运行 Logstash 来进一步排查问题:
```bash
/usr/share/logstash/bin/logstash --path.settings /etc/logstash/
```
手动运行时,Logstash 会直接输出错误信息到终端,便于定位问题。
---
###
阅读全文
相关推荐



















