0

要旨

rsyslog は %HOSTNAME% の値をどこで取得しますか?
Tomcat が提供するアプリケーションの %HOSTNAME% は正しいのに、同じ構成のコンソール アプリケーションのホスト名が「不明」なのはなぜですか?

EC2 インスタンスで rsyslog を使用しており、ログを loggly に送信しようとしています。ログ メッセージの場合tail -f、日付、ホスト名、タグ、メッセージを含むデフォルトの形式でログを確認できます。

使用するlogger "message"と、コンソールとログの両方に正しいログ エントリが表示されます。ただし、Java コンソール アプリケーションがイベントをログに記録すると、ホスト名はコンソールとログの両方で「不明」になります。

奇妙なことに、rsyslog、syslog4j、および log4j の同じ構成が、Tomcat によってホストされている Web アプリケーションからのものである場合、正しいログ エントリになります。

rsyslog は %HOSTNAME% の値をどこで取得しますか? Tomcat が提供するアプリケーションの %HOSTNAME% は正しいのに、同じ構成のコンソール アプリケーションのホスト名が「不明」なのはなぜですか?

4

2 に答える 2

0

私はこれを理解しました。ホスト名を取得するには、ホスト名をホスト ファイルの IP アドレスにマップする必要がありました。実際、これはすでに起こっていると思っていましたが、スクリプトを実行して正しいホスト エントリを追加する時点では、IP アドレスは不明で、ホスト名だけがファイルに追加されます。

正しいエントリを追加すると、ホスト名が rsyslog と loggly に期待どおりに表示されます。

その間に、loggly 形式を %HOSTNAME% から %$myhostname% に変更しました。私たちはリモート ログを記録していなかったので、$myhostname が常に正しいホスト名だったので、これでうまくいきました。

于 2014-01-24T19:33:16.987 に答える
0

rsyslog.conf にこの行がない場合は、追加して rsyslog を再起動します $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

于 2014-01-14T19:30:23.160 に答える