我有一个运行在 Azure 中的 Elasticsearch、MongoDB 和 Graylog2 的 Ubuntu 服务器,并且我有一个试图从中发送日志的 asp.net mvc4 应用程序。(我使用 Gelf4Net / Log4Net 作为日志记录组件)。切入正题,没有记录任何内容。
(跳到更新看看有什么问题)
设置
- 1 Xsmall Ubuntu VM 运行 graylog2 所需的软件
- 一切都作为守护进程运行
- 1 个带有 MVC4 应用程序的 Xsmall 云服务(2 个实例)
- 虚拟网络设置,以便他们可以交谈。
那么我尝试了什么?
- 在 linux 框中,以下命令将导致记录一条消息
echo "<86>Dec 24 17:05:01 foo-bar CRON[10049]: pam_unix(cron:session):" | nc -w 1 -u 127.0.0.1 514
- 我可以更改 IP 地址以使用公共 IP,它也可以正常工作。
- 使用这个 powershell 脚本,我可以从我的开发机器以及生产 Web 服务器记录相同的消息
- Windows 防火墙已关闭,但仍无法正常工作。
- 我可以登录到 FileAppender Log4Net,所以我知道 Log4Net 正在工作。
- 跟踪 graylog2.log 显示没有任何兴趣。关于我的插件目录的一些警告所以我知道一切正常,但我无法让 Gelf4Net 附加程序工作。我在这里是一个损失。我在哪里可以看?有什么我想念的吗
灰色日志2.CONF
#only showing the connection stuff here. If you need something else let me know
syslog_listen_port = 514
syslog_listen_address = 0.0.0.0
syslog_enable_udp = true
syslog_enable_tcp = false
web.config/Log4Net
//application_start() has log4net.Config.XmlConfigurator.Configure();
<log4net >
<root>
<level value="ALL" />
<appender-ref ref="GelfUdpAppender" />
</root>
<appender name="GelfUdpAppender" type="Gelf4net.Appender.GelfUdpAppender, Gelf4net">
<remoteAddress value="public.ip.of.server"/>
<remotePort value="514" />
<layout type="Gelf4net.Layout.GelfLayout, Gelf4net">
<param name="Facility" value="RandomPhrases" />
</layout>
</appender>
</log4net>
更新
由于某种原因,我没有想到在调试模式下运行 graylog :) 这样做会显示此消息。
2013-04-09 03:00:56,202 信息:org.graylog2.inputs.syslog.SyslogProcessor - 无法解析日期。因为allow_override_syslog_date 为真,所以设置为NOW。2013-04-09 03:00:56,202 调试:org.graylog2.inputs.syslog.SyslogProcessor - 跳过不完整的消息。
所以它正在发送一条不完整的消息。我怎样才能看到它有什么问题?