Не удается войти в док-контейнер Graylog2 через конечную точку HTTP

У меня есть запущенный докер-контейнер Graylog2 на удаленной машине с открытыми портами 3000 и 12900 (3000 маршрутов к порту 9000 в докере), и я могу открыть веб-интерфейс Graylog на этом порту. Так что это работает так, как ожидалось. Но почему-то не могу добавить логи из-за пределов контейнера. Запуск этого из cli РАБОТАЕТ ВНУТРИ контейнера, но НЕ РАБОТАЕТ СНАРУЖИ:

curl -XPOST http://localhost:3000/gelf -p0 -d '{"short_message":"Hello there", "host":"example.org", "facility":"test", "_foo":"bar"}'

Запустив эту команду из-за пределов контейнера докеров, я получаю:

{"type":"ApiError","message":"HTTP 404 Not Found"}

Редактировать: Обнаружена некоторая информация о том, что эту проблему можно решить, установив для GRAYLOG_REST_TRANSPORT_URI общедоступный IP-адрес при запуске контейнера Docker. К сожалению, когда я запускаю его таким образом, я сталкиваюсь с другой проблемой - не могу запустить какие-либо входы для получения логов. Bind address: 0.0.0.0 Port: 3000 Выдает:

Request to start input 'project' failed. Check your Graylog logs for more information.

Edit2: моя тестовая среда перемещена на локальный компьютер, чтобы исключить возможные неправильные настройки сервера. Те же ошибки и те же проблемы.

Edit3: решил протестировать образ docker Graylog1, и с ним все действительно работает, как и ожидалось, с места в карьер! Так что в качестве резервной копии я мог бы использовать старую версию, но я бы предпочел избегать этого, если это возможно.


person Marius    schedule 29.04.2017    source источник
comment
какую ошибку вы видите?   -  person alfonso.kim    schedule 29.04.2017
comment
Дратс, совсем забыл! Отредактировал мой вопрос с ошибкой.   -  person Marius    schedule 29.04.2017
comment
community.graylog. орг/т/   -  person joschi    schedule 01.05.2017


Ответы (1)


Вы должны запустить ввод GELF HTTP, чтобы иметь возможность получать сообщения GELF через HTTP.

REST API Graylog не предоставляет этот тип ввода.

person joschi    schedule 01.05.2017
comment
Я запустил HTTP-вход GELF, поэтому curl POST работает изнутри контейнера. Но я не могу публиковать сообщения из-за пределов контейнера. Любые идеи по этому поводу? - person Marius; 01.05.2017
comment
Вы должны начать ввод на сетевом интерфейсе, доступном из-за пределов контейнера Docker, и открыть соответствующий порт в контейнере Docker. - person joschi; 02.05.2017