2016-08-26 6 views
0

これは、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 

答えて

0

これはサーバー上のファイアウォールの問題であることが判明しました。私はファイアウォールを止めましたが、それを無効にしなかったので、サーバを再起動したときには再び有効になりました。

関連する問題