Трубный выход Единорога на Логсташ-Экспедитор

Я установил logstash-forwarder на капле DigitalOcean Ubuntu вместе с моим приложением Rails, которое я развернул вместе с 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" }
    }
   ]
}

… И я настроил Rails для отправки всех журналов 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"s stdout в logstash-forwarder"s stdin?

1 ответ

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

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

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

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

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

Другие вопросы по тегам