logstash无法作为服务运行

时间:2015-12-10 00:26:32

标签: ubuntu logstash

我最近通过apt软件包存储库安装了logstash: https://www.elastic.co/guide/en/logstash/current/package-repositories.html

我还创建了自己的配置文件,它处理一些syslog-ng日志并相应地解析它们。

问题是,为了让logstash使用该配置文件,我必须使用以下命令手动执行它(在logstash目录中):

bin/logstash -f logstash.conf

我尝试过使用各种初始化脚本,如下所示:https://gist.github.com/nodesocket/5941884 没有运气。每当我尝试检查logstash的状态(“sudo service logstash status”)时,我都会收到“logstash started”消息,但是当我再次检查时它显示“logstash没有运行”。

我正在寻找有关如何通过全新安装的logstash使其正常工作的分步指南。

3 个答案:

答案 0 :(得分:0)

在/ var / log / logstash /中应该有一组logstash日志。尝试查看这些内容以查看实际错误是什么。

答案 1 :(得分:0)

  • 我假设您的logstash.conf文件正在运行:
  • 您可以查看此命令:
            bin/logstash -f logstash.conf --configtest
  • 因此,您可能有权使用其他服务 我的意思是,因为你想要解析syslog日志,而syslog日志来自默认的514端口,它需要root权限 要授予您的logstash服务权限,您应该更改 logstash.yml 文件
    LS_USER=logstashLS_USER=root
  • 我不知道你的问题是不是,但可能会有所帮助。

答案 2 :(得分:0)

我之前在Ubuntu 16.0.4中遇到过同样的问题。也许你的问题是针对java的! 我已经在/ usr / local / java / ....中手动安装了java,但默认情况下使用logstash读取/ usr / bin / java来使用java。

使用此命令检查:

root@elk:~# which java
/usr/bin/java

如果结果不是/ usr / bin / java,则执行以下指令:

wget http://url to jdk****.tar.gz
sudo mkdir /usr/lib/jvm
cd /usr/lib/jvm
sudo tar -xvzf ~/Downloads/jdk********.tar.gz
vi /etc/environment

将此行添加到环境

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.8.0_151/bin:/usr/lib/jvm/jdk1.8.0_151/db/bin:/usr/lib/jvm/jdk1.8.0_151/jre/bin"
J2SDKDIR="/usr/lib/jvm/jdk1.8.0_151"
J2REDIR="/usr/lib/jvm/jdk1.8.0_151/jre"
JAVA_HOME="/usr/lib/jvm/jdk1.8.0_151"
DERBY_HOME="/usr/lib/jvm/jdk1.8.0_151/db"

然后保存并关闭。之后运行此命令:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_151/bin/java" 0 
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_151/bin/javac" 0 
sudo update-alternatives --set java /usr/lib/jvm/jdk1.8.0_151/bin/java 
sudo update-alternatives --set javac /usr/lib/jvm/jdk1.8.0_151/bin/javac


reboot