6

にフェッチされたlogstash(後で に渡されたelasticsearch)さまざまなログの個別のインデックスを作成する方法を考えkibanaています。

私の場合、いくつかのクライアント サーバー (それぞれが と共にインストールされfilebeatます) と集中ログ サーバー ( ELK) があります。各クライアント サーバーにはさまざまな種類のログ (ログ、redis.logログなど) があり、それらをさまざまなインデックスに分類して、.pythonmongodbelasticsearch

各クライアント サーバーは、データベース、UI、アプリケーションなど、さまざまな目的にも使用されます。したがって、私はそれらに異なるインデックス名を付けたいと思っています ( filebeat.yml? の出力インデックスを変更することによって)。

4

4 に答える 4

7

Filebeat 構成では、所有document_typeしているさまざまなログを識別するために使用できます。次に、Logstash 内で、typeフィールドの値を設定して宛先インデックスを制御できます。

ただし、ログを異なるインデックスに分ける前に、それらを単一のインデックスに残し、いずれかtypeまたはいくつかのカスタム フィールドを使用してログ タイプを区別することを検討する必要があります。index と typeを参照してください。

Filebeat プロスペクター構成の例:

filebeat:
  prospectors:
    - paths:
        - /var/log/redis/*.log
      document_type: redis

    - paths:
        - /var/log/python/*.log
      document_type: python

    - paths:
        - /var/log/mongodb/*.log
      document_type: mongodb

Logstash 構成の例:

input {
  beats {
    port => 5044
  }
}

output {
  # Customize elasticsearch output for Filebeat.
  if [@metadata][beat] == "filebeat" {
    elasticsearch {
      hosts => "localhost:9200"
      manage_template => false
      # Use the Filebeat document_type value for the Elasticsearch index name.
      index => "%{[@metadata][type]}-%{+YYYY.MM.dd}"
      document_type => "log"
    }
  }
}
于 2016-08-08T21:58:18.690 に答える
1

logstash では、タグを使用して、複数の入力、フィルター、または出力プラグインを定義できます。

input {
    file {
            type => "redis"
            path => "/home/redis/log"
    }
    file {
            type => "python"
            path => "/home/python/log"
    }
} 
filter {
    if [type] == "redis" {
            # processing .......
    }
    if [type] == "python" {
            # processing .......
    }
}
output {
    if [type] == "redis" {
            # output to elasticsearch redis
            index => "redis" 
    }
    if [type] == "python" {
            # output to elasticsearch python
            index => "python"
    }
}
于 2016-08-08T18:57:12.737 に答える