나는이 응용 프로그램의 로그 파일을 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