0

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 フィールドの下)。

いくつかの提案をしてください。

4

1 に答える 1