우분투 서버에 ELK를 설치했습니다. 14.04. 그리고 이제는 모든 jboss 서버 로그를 log4j를 사용하여 보내고 싶었습니다.구성 ELK + log4j
logstash 구성 : 입력 conf의 파일을
input {
log4j {
type => "log4j"
port => 5000
}
}
필터의 conf 파일 :
filter {
if [type] == "log4j" {
grok {
match => {"message" => MY_GROK_PARSE}
}
}
}
출력 파일 :
output {
elasticsearch {
embedded => true
}
}
그리고하여 log4j 펜더 마무리 :
<appender name="LOGSTASH" class="org.apache.log4j.net.SocketAppender">
<param name="Port" value="5000"/>
<param name="RemoteHost" value="XXX.XXX.XXX.XXX"/> <!-- There is a real adress here ;-) -->
<param name="ReconnectionDelay" value="50000"/>
<param name="LocationInfo" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c{1}] %m%n" />
</layout>
</appender>
하지만이 구성에서는 아무런 변화가 없습니다. 그래서 나는 내가 오해 한 것을 모른다. 다른 부속 장치 (콘솔 및 로컬 파일)가 정상적으로 작동합니다. elasticsearch 로그는 모든 정보/활동을 보여줍니다.
편집 :이 내 제이 보스-의 log4j.xml에 대한 자세한 :
<appender name="Async" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="FILE" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="LOGSTASH" />
</appender>
<root>
<priority value="INFO" />
<appender-ref ref="Async" />
</root>
Logstash가 실제로 어떤 것을 수신했는지 확인 했습니까 (TCP 트래픽 스니퍼로 확인할 수 있습니까)? 움직이는 부분의 수를 줄이기 위해'elasticsearch' 출력을 간단한'stdout' 출력으로 대체하면 어떨까요? –
나는 당신이 말한 것을했습니다. 그래서 TCP 트래픽에 대해 나는 포트 5000에서 'sniffit'을 사용했고 아무것도 표시하지 않았다. (sniffit을 사용하면 괜찮습니까?) 출력을 변경했는데 아무 것도 일어나지 않습니다. – Guinoutortue
그래, Log4j 구성에 문제가 있음을 나타냅니다. Logger 구성에서 LOGSTASH appender를 어떻게 참조하고 있습니까? –