Невозможно заставить logstash работать со скриптом upstart

Невозможно заставить logstash работать со скриптом upstart

Я установил logstash на свой headless сервер, но у меня возникли некоторые проблемы с его запуском из upstart скрипта с sudo service logstash start. Вот что я получаю от /var/log/logstash/logstash.logэтогоздесьно я не вижу там ничего очевидного.

со скриптом upstart (/etc/init/logstash.conf) # logstash - экземпляр агента #

description     "logstash agent"

start on virtual-filesystems
stop on runlevel [06]

# Respawn it if the process exits
respawn

# We're setting high here, we'll re-limit below.
limit nofile 65550 65550

setuid logstash
setgid logstash

# You need to chdir somewhere writable because logstash needs to unpack a few
# temporary files on startup.
console log
script
  # Defaults
  PATH=/bin:/usr/bin
  LS_HOME=/var/lib/logstash
  LS_HEAP_SIZE="500m"
  LS_JAVA_OPTS="-Djava.io.tmpdir=${LS_HOME}"
  LS_LOG_FILE=/var/log/logstash/logstash.log
  LS_USE_GC_LOGGING=""
  LS_CONF_DIR=/etc/logstash/conf.d
  LS_OPEN_FILES=16384
  LS_NICE=19
  LS_OPTS="--debug"

  # Override our defaults with user defaults:
  [ -f /etc/default/logstash ] && . /etc/default/logstash

  HOME="${HOME:-$LS_HOME}"
  JAVA_OPTS="${LS_JAVA_OPTS}"
  # Reset filehandle limit
  ulimit -n ${LS_OPEN_FILES}
  cd "${LS_HOME}"

  # Export variables
  export PATH HOME JAVA_OPTS LS_HEAP_SIZE LS_JAVA_OPTS LS_USE_GC_LOGGING
  test -n "${JAVACMD}" && export JAVACMD

  exec nice -n ${LS_NICE} /opt/logstash/bin/logstash agent -f "${LS_CONF_DIR}" -l "${LS_LOG_FILE}" ${LS_OPTS}
end script

Файл конфигурации logstash выглядит следующим образом:

input {
  file {
    path => "/var/log/apache2/access.log"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
  match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  elasticsearch {
    host => localhost
  }
  stdout { codec => rubydebug }
}

Кажется, ничего не происходит, хотя в журнале Apache определенно что-то происходит.

Однако, когда я извлекаю интересную информацию из скрипта upstart (то, что находится между scriptи , end scriptи запускаю его как скрипт оболочки, он работает отлично, и я вижу, что в журналах появляются данные. Может ли кто-нибудь подсказать, почему это происходит? Я использую сервер Ubuntu 14.04 и установилlogstash=1.4.2-1-2c0f5a1

решение1

Итак, я полагаю, что это может быть ответом сейчас. Похоже, ваши тесты были запущены как rootпользователь, а ваша служба запущена как logstash. Ваши журналы тестов не показывают никаких ошибок. Но я думаю, что ваша проблема в правах доступа к файлам. Пожалуйста, проверьте, что файлы конфигурации доступны для чтения для пользователя logstash, а файлы журналов — для записи. Кроме того, поскольку этот процесс должен иметь возможность напрямую читать файлы журналов Apache, проверьте, может ли logstashон также читать их. Если logstash настроен на прослушивание входящих сетевых подключений, проверьте настроенные порты выше 1024.

Также вы можете попробовать запустить тесты от имени logstashпользователя:

что-то вроде того:

su -c "/path/to/logstash -t -f /path/to/config" logstash

Связанный контент