我有几个安装了logstash的Web服务器,我有一个日志服务器,它也安装了logstash。
我希望使用logstash将Web服务器/var/log/nginx/*log
中的正向日志记录到日志服务器。有可能吗?
网络服务器:
input {
file {
path => "/var/log/nginx/*log"
}
}
output {
tcp {
host => "log.server.ip"
port => 12345
}
}
日志服务器:
input {
tcp {
port => 12345
}
}
output {
stdout {
codec => "rubydebug"
}
}
但没有转发日志。
答案 0 :(得分:4)
执行此操作的正确方法是在Web服务器上使用logstash-forwarder或最好使用最新的Filebeat(logstash-forwarder替换)工具,并在日志服务器上使用beats
input plugin使用Logstash
因此,Web服务器上的Filebeat配置应如下所示:
filebeat:
# List of prospectors to fetch data.
prospectors:
# Each - is a prospector. Below are the prospector specific configurations
-
paths:
- "/var/log/nginx/*.log"
document_type: weblog
fields:
service: nginx
output:
logstash:
# The Logstash hosts.
hosts:
- log.server.ip:12345
日志服务器上的Logstash配置如下所示
input {
beats {
port => 12345
}
}
output {
stdout {
codec => "rubydebug"
}
}
如果您不想在Web服务器上安装Filebeat,因为您想利用现有的Logstash,那么也可以。 Web服务器上的Logstash配置需要使用lumberjack
output,如下所示:
input {
file {
path => "/var/log/nginx/*log"
}
}
output {
lumberjack {
hosts => "log.server.ip"
port => 12345
ssl_certificate => "/path/to/certificate.pub"
}
}
在您的日志服务器上,您需要使用lumberjack
input:
input {
lumberjack {
port => 12345
ssl_certificate => "/path/to/certificate.cer"
ssl_key => "/path/to/certificate.key"
}
}
output {
stdout {
codec => "rubydebug"
}
}