2016-08-26 1 views
0

나는이 응용 프로그램의 로그 파일을 rsyslog를 통해 원격 서버로 보내려고이 rsyslog/logstash article을 따라 왔습니다. 그 페이지에서, 내가 취한 조치가 있습니다. 방화벽과 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

이것은 서버에서 방화벽 문제로 판명났습니다. 나는 방화벽을 멈추었지만 비활성화하지 않았기 때문에 서버를 다시 시작했을 때 다시 켜졌다.