【发布时间】:2020-06-04 02:13:04
【问题描述】:
我正在尝试将 log4net 日志发送到 logstash 以进行解析,然后在 elasticsearch 中结束。我已将该端口添加到 Windows 防火墙安全设置并允许所有连接,包括 5044 和 9600。
在 filebeat 日志中,我收到此错误
pipeline/output.go:100 Failed to connect to backoff(async(tcp://[http://hostname:5044]:5044)): lookup http://hostname:5044: no such host
Filebeat.yml(Logstash 部分)
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["http://hostname:5044"]
# Optional SSL. By default is off.
# List of root certificates for HTTPS server verifications
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
# Certificate for SSL client authentication
#ssl.certificate: "/etc/pki/client/cert.pem"
# Client Certificate Key
#ssl.key: "/etc/pki/client/cert.key"
#================================ Processors =====================================
Logstash.yml
我已将 http.host 设置为 0.0.0.0
# ------------ Metrics Settings --------------
#
# Bind address for the metrics REST endpoint
#
http.host: "0.0.0.0"
#
# Bind port for the metrics REST endpoint, this option also accept a range
# (9600-9700) and logstash will pick up the first available ports.
#
# http.port: 9600-9700
Logstash 过滤器配置
input {
beats {
port => "5044"
}
}
filter {
if [type] == "log4net" {
grok {
match => [ "message", "%{TIMESTAMP_ISO8601:timestamp} \[%{NUMBER:threadid}\] %{WORD:level}\s*%{DATA:class} \[%{DATA:NDC}\]\s+-\s+%{GREEDYDATA:message}" ]
}
date {
match => ["timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss"]
remove_field => ["timestamp"]
}
mutate {
update => {
"type" => "log4net-logs"
}
}
}
}
output {
elasticsearch {
hosts => ["http://hostname:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
【问题讨论】:
-
http://hostname:5044: no such host表示hostname无法正确解析。您确定它是有效的主机名吗? -
如果您确定主机名,那么可以尝试使用完全限定域名
-
@Val 我使用了一个有效的主机名,它与我在 logstash 配置中添加到 ElaststicSearch 主机的主机名相同(hostname:9200),并且 filebeat 似乎可以毫无问题地将数据发送到 elasticsearch。但与端口 5044 相同的主机名不适用于 logstash
-
所有东西都在同一台主机上运行吗(Filebeat、Logstash、ES)?您的 Logstash 管道(输入/过滤器/输出)配置如何?
-
@Val Filebeat 正在本地运行并推送到远程服务器。 ElasticSearch 和 Logstash 都安装在该远程服务器上。因此两者的主机名相同,并且我允许传入流量到端口 9200、5044、9600,这些端口是 elasticsearch 和 logstash 的端口
标签: elasticsearch logstash filebeat elk