【问题标题】:Logstash v2.2.0 fails to start as a serviceLogstash v2.2.0 无法作为服务启动
【发布时间】:2016-05-20 07:53:11
【问题描述】:
+ PATH=/sbin:/usr/sbin:/bin:/usr/bin
+ export PATH
+ id -u
+ [ 0 -ne 0 ]
+ name=logstash
+ pidfile=/var/run/logstash.pid
+ LS_USER=logstash
+ LS_GROUP=logstash
+ LS_HOME=/var/lib/logstash
+ LS_HEAP_SIZE=1g
+ LS_LOG_DIR=/var/log/logstash
+ LS_LOG_FILE=/var/log/logstash/logstash.log
+ LS_CONF_DIR=/etc/logstash/conf.d
+ LS_OPEN_FILES=16384
+ LS_NICE=19
+ LS_OPTS=
+ [ -r /etc/default/logstash ]
+ . /etc/default/logstash
+ KILL_ON_STOP_TIMEOUT=0
+ [ -r /etc/sysconfig/logstash ]
+ program=/opt/logstash/bin/logstash
+ args=agent -f /etc/logstash/conf.d -l /var/log/logstash/logstash.log 
+ status
+ [ -f /var/run/logstash.pid ]
+ cat /var/run/logstash.pid
+ pid=12716
+ kill -0 12716
+ return 2
+ code=2
+ [ 2 -eq 0 ]
+ start
+ LS_JAVA_OPTS= -Djava.io.tmpdir=/var/lib/logstash
+ HOME=/var/lib/logstash
+ export PATH HOME LS_HEAP_SIZE LS_JAVA_OPTS LS_USE_GC_LOGGING
+ id -Gn logstash
+ + sed s/,$//
tr   ,
+ echo 
+ SGROUPS=logstash
+ [ ! -z logstash ]
+ EXTRA_GROUPS=--groups logstash
+ ulimit -n 16384
+ echo 22073
+ echo logstash started.
logstash started.
+ return 0
+ code=0
+ exit 0
+ nice -n 19 chroot --userspec logstash:logstash --groups logstash / sh -c 
    cd /var/lib/logstash
    ulimit -n 16384
    exec "/opt/logstash/bin/logstash" agent -f /etc/logstash/conf.d -l /var/log/logstash/logstash.log 

以上是logstash服务启动时的命令输出。 (通过在 init.d 脚本的开头添加 -x 开关来获得这个 - #!/bin/sh -x

Logstash v2.2.0 在 Ubuntu 14.04 上使用 DEB 包安装

当我运行 init 脚本使用的 exec 命令时(如上面的输出所示),logstash 启动非常好并且可以完美运行

"/opt/logstash/bin/logstash" agent -f /etc/logstash/conf.d -l /var/log/logstash/logstash.log 

init.d 服务脚本中的某些内容导致 logstash 作为服务失败。我怀疑 init 脚本使用的 nice 命令。

你们看到初始化脚本中使用的“nice”命令有什么问题吗?

    + nice -n 19 chroot --userspec logstash:logstash --groups logstash / sh -c 
    cd /var/lib/logstash
    ulimit -n 16384
    exec "/opt/logstash/bin/logstash" agent -f /etc/logstash/conf.d -l /var/log/logstash/logstash.log 

【问题讨论】:

  • 这是在这台服务器上的新安装,还是您之前在这台机器上安装然后删除了logstash?
  • 我已经卸载了以前的logstash安装(我相信是v1.4)。

标签: service logstash init.d


【解决方案1】:

当您卸载旧版本时,logstash 用户和组也被删除。现在新安装一个新的logstash 用户和组使用不同的uidgid 创建。然而普通logstash目录的所有权属于旧的logstashuidgid。 现在,当您启动新的 logstash 时,它会尝试读取/写入此目录并失败,因此 logstash 无法运行。 尝试更改这些目录的所有权并启动 logstash

chown -R logstash:logstash /var/log/logstash
chown -R logstash:logstash /var/lib/logstash
chown -R logstash:logstash /etc/logstash
rm -rf /var/run/logstash.pid
/etc/init.d/logstash start

【讨论】:

  • 这是一个早期的庆祝活动。更改权限并没有解决它。服务状态显示“正在运行”的时间比平时长,这让我相信它已修复。当我再次检查时它停止了:(
  • 还有一个问题。即使我在前台使用logstash conf文件中的文件输入运行它,它也会启动但会引发另一个错误 - 看起来这是自v1.5以来的一个已知问题。在 github 上查看我对这个问题的评论 - github.com/elastic/logstash/issues/3127#issuecomment-182370462
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 2020-05-25
  • 2014-08-30
相关资源
最近更新 更多