最近在安装suricata并通过logstash将事件日志汇总到es的过程中。遇到了一个问题。如下:
通过yum install logstash
, 使用sudo systemctl start logstash
时, logstash的日志/var/log/logstash/logstash-plain.log
出现如下错误
[2022-03-02T16:27:48,993][INFO ][logstash.runner ] Log4j configuration path used is: /etc/logstash/log4j2.properties
[2022-03-02T16:27:49,003][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"7.16.1", "jruby.version"=>"jruby 9.2.20.1 (2.5.8) 2021-11-30 2a2962fbd1 OpenJDK 64-Bit Server VM 11.0.13+8 on 11.0.13+8 +indy +jit [linux-x86_64]"}
[2022-03-02T16:27:49,047][FATAL][org.logstash.Logstash ] Logstash stopped processing because of an error: (SystemExit) exit
org.jruby.exceptions.SystemExit: (SystemExit) exit
at org.jruby.RubyKernel.exit(org/jruby/RubyKernel.java:747) ~[jruby-complete-9.2.20.1.jar:?]
at org.jruby.RubyKernel.exit(org/jruby/RubyKernel.java:710) ~[jruby-complete-9.2.20.1.jar:?]
at usr.share.logstash.lib.bootstrap.environment.<main>(/usr/share/logstash/lib/bootstrap/environment.rb:94) ~[?:?]
该错误可能的原因是权限问题
解决方案1
修改启动用户,编辑/etc/logstash/startup.options
文件,修改默认的程序运行用户(默认为logstash用户,我们是使用root权限安装,所以很多文件使用该用户无法访问),快速解决修改如下:
# user and group id to be invoked as
LS_USER=root
LS_GROUP=root
然后重新生成系统服务文件
运行命令/usr/share/logstash/bin/system-install
重启logstash 即可快速解决该问题
解决方案2(建议方案)
安装完成后修改相关文件夹权限,建议使用该种方案,安全性更高。这里以logstash7版本为例
chown -R logstash.logstash /usr/share/logstash
chmod 777 /usr/share/logstash/data