Передайте вывод Единорога по каналу к Logstash-средству-передачи

Я установил logstash-forwarder на капельке DigitalOcean Ubuntu, наряду с моим приложением для направляющих, которое я развертываю с Capistrano. Я знаю logstash-forwarder установлен, потому что я могу сделать sudo service logstash-forwarder restart.

Я настроил logstash-forwarder читать из stdin со следующей конфигурацией:

{
  "network": {
    "servers": [ "<my logstash server>:5000" ],
    "timeout": 15,
    "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
  },
  "files": [
    {
      "paths": [
        "/var/log/syslog",
        "/var/log/auth.log"
       ],
      "fields": { "type": "syslog" }
    }, {
      "paths": [ "-" ],
      "fields": { "type": "stdin" }
    }
   ]
}

… и я настроил направляющие для отправки всех журналов в stdout вместо того, чтобы писать в диск. Я не абсолютно уверен где logstash-forwarder двоичные жизни, и я попытался говорить Capistrano выполнять следующую команду:

RBENV_ROOT=/usr/local/rbenv RBENV_VERSION=2.1.4 /usr/bin/env sudo /etc/init.d/unicorn_oddjob_production restart | /opt/logstash-forwarder/bin/logstash-forwarder

…, Но это перестало работать с:

(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@128.199.40.124: sudo exit status: 127
sudo stdout: Nothing written
sudo stderr: bash: /opt/logstash-forwarder/bin/logstash-forwarder: No such file or directory
…

Я довольно плохо знаком со всем этим, таким образом, я не уверен, где я иду не так, как надо. Так, как я могу отправить unicorn stdout кому: logstash-forwarder stdin?

0
задан 1 March 2015 в 16:17
1 ответ

Судя по всему, logstash-forwarder находится не там, где вы ожидаете от удаленной машины. См. Сообщение об ошибке:

sudo stderr: bash: /opt/logstash-forwarder/bin/logstash-forwarder: No such file or directory

Кроме того, как только это будет устранено,Я не уверен, что перезапуск демона с помощью параметра restart принесет то, что вы ожидаете. Процесс unicorn_oddjob_production завершится после остановки текущего единорога и создания его новой копии. Как только это произойдет, канал будет закрыт, а пересылка logstash будет отключена.

Не будучи экспертом по единорогу , я бы попытался настроить его ведение журнала на именованный канал и получить logstash-forwarder читает из него. См. этот пример . В нем объясняется, как отправить вывод в STDOUT. Для именованного канала он должен быть таким же.

Надеюсь, это поможет!

0
ответ дан 5 December 2019 в 12:57

Теги

Похожие вопросы