Docker部署Graylog后,如何配置以接收外部数据?
解决Docker部署Graylog无法接收外部数据的问题
一、修正Graylog绑定地址配置
你的GRAYLOG_HTTP_BIND_ADDRESS设置为服务器IP,容器内服务需要监听所有可用接口才能接收宿主机转发的外部请求,修改为:
- GRAYLOG_HTTP_BIND_ADDRESS=0.0.0.0:9000
GRAYLOG_HTTP_PUBLISH_URI和GRAYLOG_HTTP_EXTERNAL_URI保留服务器IP配置即可,这两个参数用于告知外部客户端Graylog的访问路径。
二、修复密码配置错误
GRAYLOG_PASSWORD_SECRET长度不足要求的16字符,会导致Graylog启动异常,需设置至少16位的随机字符串,示例:
- GRAYLOG_PASSWORD_SECRET=your_long_random_secret_key_123456
同时删除无效参数- Password=Y71,Graylog不会识别该配置项。
三、开放服务器端口权限
在服务器防火墙(如ufw、iptables)或云服务商安全组中,添加以下端口的入站允许规则:
- 9000/TCP:Graylog Web界面与REST API
- 1514/TCP/UDP:Syslog协议端口
- 12201/TCP/UDP:GELF协议端口
以ufw为例,执行命令开放端口:
sudo ufw allow 9000/tcp sudo ufw allow 1514/tcp sudo ufw allow 1514/udp sudo ufw allow 12201/tcp sudo ufw allow 12201/udp sudo ufw reload
四、配置Graylog输入监听外部数据
登录Graylog Web界面后完成以下操作:
- 进入System > Inputs页面
- 选择需要的输入类型(如Syslog UDP、GELF TCP),点击Launch new input
- 在配置页将Bind address设置为
0.0.0.0(而非127.0.0.1),端口保持对应值(如Syslog用1514,GELF用12201) - 保存并启动输入,此时Graylog即可接收外部日志数据
五、验证容器内服务监听状态
进入Graylog容器,检查服务是否正确监听端口:
docker exec -it <graylog容器名称> netstat -tulpn
确认输出中存在0.0.0.0:9000、0.0.0.0:1514、0.0.0.0:12201的监听记录,说明服务已正确绑定所有接口。
内容的提问来源于stack exchange,提问作者Stick
相关产品推荐
相关产品推荐

