我将其安装为:
$ docker run --name mongo -d mongo:3
$ docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e ES_JAVA_OPTS="-Xms2g -Xmx4g" \
-e "discovery.type=single-node" -e "xpack.security.enabled=false" \
-e "bootstrap.memory_lock=true" --ulimit memlock=-1:-1 \
-d docker.elastic.co/elasticsearch/elasticsearch:5.6.11
$ docker run --name graylog --link mongo --link elasticsearch \
-p 9000:9000 -p 12201:12201 -p 514:514 -p 5555:5555 \
-e GRAYLOG_WEB_ENDPOINT_URI="http://127.0.0.1:9000/api" \
-d graylog/graylog:3.0.0
然后在 graylog ui 上为 127.0.0.1 和端口 5555 创建 tcp 输入。启动它。
然后从控制台发送一条消息:
echo "Test message" | nc 127.0.0.1 5555
但是在graylog的任何地方都找不到这个(或任何其他消息)。
我错过了什么?。
创建 HTTP GELF 输入,进行测试
curl -XPOST http://127.0.0.1:5555/gelf -p0 -d '{"short_message":"Hello there", "host":"example.org", "facility":"test", "_foo":"bar"}'
得到:
curl: (56) Recv failure: Connection reset by peer
答案1
你应该重新阅读Graylog 3.0 - 有什么已更改. Docker 信息包括所有必要的信息(http://docs.graylog.org/en/3.0/pages/installation/docker.html)。
TLDR;
GRAYLOG_WEB_ENDPOINT_URI
不再是有效的 Graylog 配置参数。对我们来说,新参数是:
- http_bind_address
- http_publish_uri
阅读文档了解其含义:http://docs.graylog.org/en/3.0/pages/configuration/server.conf.html#web-rest-api
编辑:添加完整命令 仅发布所需的完整命令:
$ docker run --name mongo -d mongo:3
$ docker run --name elasticsearch \
-e "http.host=0.0.0.0" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-d docker.elastic.co/elasticsearch/elasticsearch-oss:6.6.1
$ docker run --name graylog --link mongo --link elasticsearch \
-p 9000:9000 -p 12201:12201 -p 514:514 \
-e GRAYLOG_HTTP_EXTERNAL_URI="http://127.0.0.1:9000/" \
-d graylog:latest