没有TLS / SSL的Graylog SMTP服务器

时间:2016-05-25 11:39:25

标签: docker graylog2 graylog

我想通过docker启动带有smtp支持的graylog。我是这样做的:

docker run -d -p 9000:9000 -p 12201:12201 -p 12201:12201/udp \
  -e GRAYLOG_NODE_ID=My_Node_Id \
  -e GRAYLOG_SMTP_SERVER="Server.name.local --no-tls --no-ssl --web-url=http://web.name.local" \
  -e GRAYLOG_SERVER_SECRET=Secret \
  -v /graylog/data:/var/opt/graylog/data \
  -v /graylog/logs:/var/log/graylog graylog2/allinone

Graylog工作正常,但我无法发送电子邮件测试消息(在Graylog: Streams - 管理提醒 - 发送测试提醒< /强>)。这样做我在Web界面中出现了一个错误屏幕

enter image description here

删除

  

- 无-TLS

来自docker配置,我没有得到那个屏幕。但当然现在我收到一条错误消息

  

尝试发送电子邮件时出错! (触发了20个小时   之前)Graylog服务器在尝试发送时遇到错误   电子邮件。这是详细的错误消息:   org.apache.commons.mail.EmailException:将电子邮件发送到   以下服务器失败:Server.name.local:587   (javax.mail.MessagingException:无法将套接字转换为TLS;   嵌套异常是:javax.net.ssl.SSLHandshakeException:   sun.security.validator.ValidatorException:P KIX路径构建失败:   sun.security.provider.certpath.SunCertPathBuilderException:无法   找到所请求目标的有效证书路径)

该错误没问题,因为没有tls / ssl支持。

但是为什么我在网页界面中使用--no-tls获得错误屏幕?有什么想法我怎么能没有ssl发送邮件?我对码头工人做错了吗?有人在没有tls / ssl的情况下成功使用了docker,graylog和email吗?

在图像中,可以阅读

  

请检查右侧显示的服务器是否正在运行   可到达的。

无法访问右上角红色条下方的IP地址。我甚至不知道IP地址。那个IP地址来自哪里?我需要改变它吗?为什么只有在激活了--no-tls时才会失败?

我正在使用可以通过docker获得的最新版本。

$ docker pull graylog2/allinone
Using default tag: latest
latest: Pulling from graylog2/allinone
e9c5e611068d: Already exists
c29de585b225: Already exists
0b3e3644d782: Already exists
a3ed95caeb02: Already exists
f9cf24c26853: Already exists
ff82d8c50b3d: Already exists
4136ecd1ecd2: Already exists
Digest: sha256:ec56d3678f072...
Status: Image is up to date for graylog2/allinone:latest

UPDATE ::

在<{>> graylog2 / allinone docker container site上,我刚看到它已被弃用,应该使用graylog2/server。我试一试。

我迷路了。非常感谢任何暗示!

2 个答案:

答案 0 :(得分:0)

尝试启动并运行graylog2/server并失败后,我又回到了graylog2/allinone,最后成功收到了一封电子邮件。指定 ALL 所需的参数似乎很重要:

GRAYLOG_SMTP_SERVER="Server.name.local --port=25 --no-tls --no-ssl"

答案 1 :(得分:0)

以下是它在Docker中使用我的graylog服务器的方式。

我正在使用Docker镜像:graylog/graylog:2.3.2-1

  

在docker-compose格式中,所以这些只能与&#39; -e&#39;一起使用。在#docker run&#39;命令传递环境变量。

environment:
  - GRAYLOG_TRANSPORT_EMAIL_ENABLED=true
  - GRAYLOG_TRANSPORT_EMAIL_HOSTNAME=smtp.myemailserver.com
  - GRAYLOG_TRANSPORT_EMAIL_PORT=25
  - GRAYLOG_TRANSPORT_EMAIL_USE_AUTH=false
  - GRAYLOG_TRANSPORT_EMAIL_USE_TLS=false
  - GRAYLOG_TRANSPORT_EMAIL_USE_SSL=false
  - GRAYLOG_TRANSPORT_EMAIL_FROM_EMAIL=noreply@mycompany.com

文档并未涵盖任何此类内容,只需进行搜索和试用/错误。我认为任何正常的graylog配置(.conf)参数都可以作为环境变量在GRAYLOG_前置的容器中传递。