これは、rsyslog/logstash articleを追跡して、アプリケーションのログファイルをrsyslog経由でリモートサーバーに送信しようとしました。そのページから、私が取ったステップがあります。ファイアウォールとSELinuxは、クライアント(VM送信ログ)とサーバー(VM受信ログ)の両方でオフになっています。私はクライアントとサーバーの間でパケットを送信できることをnetcatユーティリティで証明しています。rsyslogを使用して、syslog以外のファイルをリモートサーバーに配信することはできますか?
私のクライアント側では、私はそうのように私のある/etc/rsyslog.confファイル設定した:クライアント側で
# Load the imfile module
module(load="imfile" PollingInterval="10")
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
# Debugging
$DebugFile /var/log/rsyslog-debug.log
$DebugLevel 2
# General configuration
$RepeatedMsgReduction off
$WorkDirectory /var/spool/rsyslog
$ActionQueueFileName mainqueue
$ActionQueueMaxDiskSpace 500M
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
# Template for non json logs, just sends the message wholesale with extra
# # furniture.
template(name="textLogTemplate"
type="list") {
constant(value="{ ")
constant(value="\"type\":\"")
property(name="programname")
constant(value="\", ")
constant(value="\"host\":\"")
property(name="%HOSTNAME%")
constant(value="\", ")
constant(value="\"timestamp\":\"")
property(name="timestamp" dateFormat="rfc3339")
constant(value="\", ")
constant(value="\"@version\":\"1\", ")
constant(value="\"role\":\"app-server\", ")
constant(value="\"sourcefile\":\"")
property(name="$!metadata!filename")
constant(value="\", ")
constant(value="\"message\":\"")
property(name="rawmsg" format="json")
constant(value="\"}\n")
}
を、私は/etc/rsyslog.d/01-trm-error-を持っていますサーバー側ではlogs.conf
input(type="imfile"
File="/usr/share/tomcat/dist/logs/trm-error.log"
Tag="trm-error-logs:"
readMode="2"
escapeLF="on"
)
if $programname == 'trm-error-logs:' then {
action(
type="omfwd"
Target="my.remoteserver.com"
Port="514"
Protocol="tcp"
template="textLogTemplate"
)
stop
}
は、私は私のある/etc/rsyslog.conf
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
に私は両側にrsyslogのサービスを再起動しました持っています。
ただし、出荷されるログは表示されません。/var/log/messagesに/usr/share/tomcat/dist/logs/trm-error.logの内容が表示されていますが、表示させたくありません。私は生成する/var/log/rsyslog-debug.logファイルの内容ごとに/usr/share/tomcat/dist/logs/trm-error.logの内容が読み込まれているのを見ています。
私はクライアントマシンで以下を実行し、何も見ません。
tcpdump -i eth0 -n host my.remoteserver.com -P out -vvv