【发布时间】:2015-03-27 21:56:03
【问题描述】:
我正在使用 log4j socketappender 将我的日志从 tomcat 实例传送到另一台机器。在这个远程服务器上,我设置了 logstash 来对数据进行转换,然后将其转发到我的弹性搜索集群。出于某种原因,我无法让日志的原始主机出现在弹性搜索中。我得到了 logstash 转发器的主机,但原始日志中的主机甚至没有通过管道持续存在。
我的logstash配置
input {
log4j {
mode => "server"
port => "4560"
}
tcp {
port => "4561"
codec => "json"
type => "access"
}
}
filter {
mutate {
add_field => [ "source_ip", "@source_host" ]
}
if [type] == "access" {
mutate { remove_field => "something-private" }
}
ruby {
code => "event['@timestamp'] = event['@timestamp'].localtime('-05:00')"
}
ruby {
code => "event['@pretty_timestamp'] = event['@timestamp'].strftime('%A, %B %e %Y at %l:%M:%S %p')"
}
}
output {
elasticsearch {
host => "elasticsearch.host"
cluster => "log-cluster"
protocol => "http"
}
}
所有日志都很好,但我也想在其中包含它们的源主机,这样我就可以知道它们来自哪些服务器。
通过的平均日志事件将是这样的......
{
"_index": "logstash-2015.01.28",
"_type": "logs",
"_id": "AUsyNvDyCso0hZPOUVfM",
"_score": null,
"_source": {
"message": "Executing query: Removed",
"@version": "1",
"@timestamp": "2015-01-28T15:23:56.331-05:00",
"host": "10.253.1.112:31441",
"path": "org.blahblah",
"priority": "INFO",
"logger_name": "org.blahblah",
"thread": "http-bio-8080-exec-13",
"class": "?",
"file": "?:?",
"method": "?",
"source_ip": "@source_host",
"@pretty_timestamp": "Wednesday, January 28 2015 at 3:23:56 PM"
},
"sort": [
1422476636331,
1422476636331
]
}
知道如何调整它以包含正确的源主机吗?
log4j.rootLogger=INFO, default, SOCKET, FILE
log4j.appender.default=org.apache.log4j.ConsoleAppender
log4j.appender.default.layout=org.apache.log4j.PatternLayout
log4j.appender.default.layout.ConversionPattern=%d [%t] %-5p %c{1} - %m%n
log4j.appender.SOCKET=org.apache.log4j.net.SocketAppender
log4j.appender.SOCKET.Port=4560
log4j.appender.SOCKET.RemoteHost=${logHost}
log4j.appender.SOCKET.ReconnectionDelay=1000
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=${log_home}neuron-logging.log
log4j.appender.FILE.MaxFileSize=100MB
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %p %t %c - %m%n
我添加了一些 catalina 选项 -DlogHost= 和 -Dlog_home= blah blah
【问题讨论】:
-
您也可以发布您的 log4j 配置。或者以任何方式将此日志传输到 logstash 服务器
-
@VineethMohan 我添加了我的 log4j 配置,谢谢!
标签: java tomcat elasticsearch log4j logstash