filebeat がインストールされた 2 つのサーバーがあり、別のサーバーには ELK スタックがインストールされています。
Logstash conf ディレクトリの下の ELK サーバーで、2 つのサーバーを表す 2 つのファイルを作成しました。
両方のサーバーで filebeat 構成ファイルで、サーバーごとに異なるポートを指定しました (Logstash を出力として)
そして、これがサーバー1のLogstashファイルです。
input {
beats {
port => 5044
}
}
output {
if "api_logs" in [tags] {
elasticsearch {
hosts => [ "es:9200" ]
index => "api_logs-%{+YYYY.MM.dd}"
}
}
else if "error_logs" in [tags] {
elasticsearch {
hosts => [ "es:9200" ]
index => "error_logs-%{+YYYY.MM.dd}"
}
}
}
これがサーバー 2 の Logstash ファイルです。
input {
beats {
port => 5045
}
}
output {
if "api_logs" in [tags] {
elasticsearch {
hosts => [ "es:9200" ]
index => "api_logs-%{+YYYY.MM.dd}"
}
}
else if "error_logs" in [tags] {
elasticsearch {
hosts => [ "es:9200" ]
index => "error_logs-%{+YYYY.MM.dd}"
}
}
}
サーバー 1 のファイルビート ファイル
filebeat.inputs:
- type: log
tags: ["api_logs"]
enabled: true
paths:
- logs/api*
- type: log
tags: ["error_logs"]
enabled: true
paths:
- logs/error*
output.logstash:
hosts: ["es:5044"]
サーバー 2 のファイルビート ファイル
filebeat.inputs:
- type: log
tags: ["api_logs"]
enabled: true
paths:
- logs/api*
- type: log
tags: ["error_logs"]
enabled: true
paths:
- logs/error*
output.logstash:
hosts: ["es:5045"]
しかし、Kibana でインデックスを作成すると、別のサーバーではなく、1 つのサーバー ログのみが表示されます (host.name フィールドの下)。
いくつかの提案をしてください。