Elasticsearch、MongoDB、Graylog2 を Azure で実行している Ubuntu サーバーがあり、ログを送信しようとしている asp.net mvc4 アプリケーションがあります。(ロギング コンポーネントとして Gelf4Net / Log4Net を使用しています)。要するに、何もログに記録されていません。
(更新にスキップして、何が問題なのかを確認してください)
セットアップ
- graylog2 に必要なソフトウェアを実行する 1 つの Xsmall Ubuntu VM
- すべてがデーモンとして実行されています
- MVC4 アプリを備えた 1 つの 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 アペンダーを機能させることができません。私はここで負けです。どこで見ることができますか?私が欠けているものはありますか
GRAYLOG2.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 が true であるため、NOW に設定されました。2013-04-09 03:00:56,202 デバッグ: org.graylog2.inputs.syslog.SyslogProcessor - 不完全なメッセージをスキップします。
したがって、不完全なメッセージを送信しています。何が問題なのかどうすればわかりますか?