我在远程机器上有一个正在运行的 graylog2 docker 容器,端口 3000 和 12900 暴露(3000 条路由到 docker 内的端口 9000),我可以在该端口上打开 graylog Web UI。所以这可以按预期工作。但由于某种原因,我无法从容器外部添加日志。从容器内部的 cli 运行它,但不能从外部运行:
curl -XPOST http://localhost:3000/gelf -p0 -d '{"short_message":"Hello there", "host":"example.org", "facility":"test", "_foo":"bar"}'
从 docker 容器外部运行此命令,我得到:
{"type":"ApiError","message":"HTTP 404 Not Found"}
编辑:发现一些信息可以通过在运行 docker 容器时将 GRAYLOG_REST_TRANSPORT_URI 设置为公共 IP 来解决。不幸的是,当我这样启动它时,我遇到了另一个问题——无法启动任何输入来接收日志。Bind address: 0.0.0.0 Port: 3000它抛出:
Request to start input 'project' failed. Check your Graylog logs for more information.
Edit2:将我的测试环境移动到本地机器,以排除可能的服务器配置错误。得到同样的错误和同样的问题。
Edit3:决定测试 graylog1 docker 图像,并使用该图像,一切都按预期运行!因此,作为备份,我可以使用旧版本,但如果可能的话,我宁愿避免这样做。