我想使用一个logstash将数据发送到多个logstash服务。
如果我在k8s中使用此设置,它可以工作。
service.yml
apiVersion: v1
kind: Service
metadata:
labels:
app: logstash
name: logstash
spec:
selector:
app: logstash
ports:
- name: "5044"
port: 5044
targetPort: 5044filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/log1.json
tags: ["log1"]
processors:
- decode_json_fields:
fields: ["message"]
process_array: true
max_depth: 1
target: ""
overwrite_keys: true
add_error_key: false
output.logstash:
hosts: ["logstash-log1.default.svc.cluster.local:5044"]logstash.yml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: configmap-logstash
data:
logstash.yml: |
http.host: "0.0.0.0"
path.config: /usr/share/logstash/pipeline
xpack.monitoring.enabled: false
logstash.conf: |
input {
beats {
port => 5044
}
}
filter {
}
output {
stdout { codec => rubydebug }
}但如果我更改为另一种方式,则将另一个logstash实例的输出设置为:
k8s服务:
---
apiVersion: v1
kind: Service
metadata:
labels:
app: logstash-log1
name: logstash-log1
spec:
selector:
app: logstash-log1
ports:
- name: "5044"
port: 5044
targetPort: 5044logstash.yml
output {
if "log1" in [tags] {
stdout { codec => rubydebug }
tcp {
mode => "client"
host => "logstash-log1.default.svc.cluster.local"
port => 5044
codec => "json"
}
}
}目标日志堆栈的logstash.yml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: configmap-logstash
data:
logstash.yml: |
http.host: "0.0.0.0"
path.config: /usr/share/logstash/pipeline
xpack.monitoring.enabled: false
logstash.conf: |
input {
tcp {
port => 5044
}
}
filter {
}
output {
stdout { codec => rubydebug }
}这种通信是可以被证实的,它是有效的。但这些数据似乎并没有发送给logstash-log1.default.svc.cluster.local:5044。
如果使用curl从原始logstash进行测试,
curl logstash-log1.default.svc.cluster.local:5044可以获取目标logstash中的日志数据:
{
"port" => 37424,
"host" => "10.12.8.213"
}
{
"port" => 37424,
"host" => "10.12.8.213"
}
{
"port" => 37424,
"host" => "10.12.8.213"
}
{
"port" => 37424,
"host" => "10.12.8.213"
}所以问题可能出在两个logstash之间的配置上。tcp输入/输出方法不起作用吗?
发布于 2021-03-23 07:13:33
尝试使用lumberjack output和beats input。
这是logstash到logstash通信的推荐方法,在logstash文档中有详细的here解释。
https://stackoverflow.com/questions/65393663
复制相似问题