Logstash отсутствует конфиг - PullRequest
0 голосов
/ 14 сентября 2018

У меня следующая проблема. Каждый раз, когда я пытаюсь установить конфигурацию для logstash, он не видит мой файл. Я уверен, что путь установлен правильно. Есть информация:

[2018-09-14T09:28:44,073][INFO ][logstash.config.source.local.configpathloader] No config files found in path {:path=>"/home/jakub/IdeaProjects/test/logstash.conf"}  

Мой docker-compose.yml выглядит следующим образом:

  logstash:
image: docker.elastic.co/logstash/logstash:6.4.0
networks: ['stack']
ports:
- "9290:9290"
- "4560:4560"
command: logstash -f /home/jakub/IdeaProjects/test/logstash.conf
depends_on: ['elasticsearch']

и logstash.conf:

    input {
  redis {
    host => "redis"
    key => "log4j2"
    data_type => "list"
    password => "RedisTest"
  }
}
output {
  elasticsearch {
    host => "elasticsearch"
  }
}

Что я делаю не так? Можете ли вы дать мне совет или решить мою проблему? Спасибо за все.

Приветствия

1 Ответ

0 голосов
/ 14 сентября 2018

Я полагаю, ваш logstash.conf находится на вашем хосте в /home/jakub/IdeaProjects/test/logstash.conf.

Таким образом, он не находится внутри вашего контейнера (если нет скрытого монтирования). Команда будет выполнена из контейнера, поэтому она указывает на несуществующий файл.

Итак, вы можете использовать докер cp /home/jakub/IdeaProjects/test/logstash.conf: /home/jakub/IdeaProjects/test/logstash.conf (при условии, что каталог существует в вашем контейнере)

... или (лучше!) Смонтировать путь от вашего хоста к вашему контейнеру. Такие как:

volumes:
  - /home/jakub/IdeaProjects/test/logstash.conf:/home/jakub/IdeaProjects/test/logstash.conf:ro

.. или использовать config (лучший вариант для moo, если вы находитесь в режиме роя!). Монтирование близко к опции «volume», описанной выше, но вы также должны предварительно создать ее (из командной строки или из файла docker-compose)

Существуют и другие варианты, но суть в том, что вы должны сделать свой файл доступным из своего контейнера !

...