1

3 つのファイル入力 (すべてログ ファイル)、3 つのフィルター (それぞれ異なるパターン)、3 つの Elasticsearch 出力 (それぞれが異なるインデックスに移動) を含む Logstash 構成ファイルを作成しました。各インデックスには入力タイプに応じて異なるテンプレートがあり、インデックスは週ごとに分割されます。

この問題は、説明されている構成ファイルの実行時に発生し、インデックス テンプレートは無視され、インデックスの作成には影響しません。

この場合、テンプレートは機能しません。

input {
    file {
        path => ["/path/to/file.log"]
        start_position => "beginning"
        sincedb_path => "/dev/null"
        ignore_older => 0
        type => 'type_1'
        }
    file {
        path => "/path/to/file2.log"
        start_position => "beginning"
        sincedb_path => "/dev/null"
        ignore_older => 0
        type => 'type_2'
    }
    file {
        path => ["/path/to/file3.log"]
        start_position => "beginning"
        sincedb_path => "/dev/null"
        ignore_older => 0
        type => 'type_3'
    }
}
filter {
    if [type] == "type_1" {
        csv {
            columns => ["column1","column2","column3"]
                separator => "|"
        }
        date {
            match => [ "column3", "EEE MMM dd HH:mm:ss zzz yyyy" ]
            target => "@timestamp"
        }
        date {
            match => [ "column3", "EEE MMM dd HH:mm:ss zzz yyyy" ]
            target => "column3"
        }   
        mutate {
            remove_field => [ "message" ]
            remove_field => [ "path" ]
            remove_field => [ "host" ]
        }
    }
    if [type] == "type_2" {
        csv {
            columns => ["column1","column2",]
            separator => "|"
        }
        mutate {
            remove_field => [ "message" ]
            remove_field => [ "path" ]
            remove_field => [ "host" ]
            convert => { "column1" => "float" }
        }
        date {
            match => [ "column2", "EEE MMM dd HH:mm:ss zzz yyyy" ]
            target => "@timestamp"
        }
        date {
            match => [ "column2", "EEE MMM dd HH:mm:ss zzz yyyy" ]
            target => "column2"
        }
    }
    if [type] == "type_3" {
        csv {
            columns => ["column1","column2","column3","column4"]
            separator => "|"
        }
        mutate {
            remove_field => [ "message" ]
            remove_field => [ "path" ]
            remove_field => [ "host" ]
            convert => { "column3" => "float" }
            convert => { "column1" => "float" }
        }
        date {
            match => [ "column4", "EEE MMM dd HH:mm:ss zzz yyyy" ]
            target => "@timestamp"
        }
        date {
             match => [ "column4", "EEE MMM dd HH:mm:ss zzz yyyy" ]
             target => "column4"
        }
    }
}
output {
    if [type] == "type_1" {
        elasticsearch { 
            hosts => ["localhost:9200"]
            index => "type_1-%{+xxxx.ww}"
        }
    }
    if [type] == "type_2" {
        elasticsearch { 
            hosts => ["localhost:9200"]
            index => "type_2-%{+xxxx.ww}"
        }
    }
    if [type] == "type_3" {
        elasticsearch {
            hosts => ["localhost:9200"]
            index => "type_3-%{+xxxx.ww}"
        }
    }
}

逆に、入力ファイルの種類、フィルター、elasticsearch の出力ごとに 1 つの構成ファイルを使用すると、テンプレートは正常に機能します。

テンプレートはここでうまく機能します:

input {
    file {
        path => ["/path/to/file.log"]
        start_position => "beginning"
        sincedb_path => "/dev/null"
        ignore_older => 0
        }
}
filter {
    csv {
        columns => ["column1","column2","column3"]
            separator => "|"
    }
    date {
        match => [ "column3", "EEE MMM dd HH:mm:ss zzz yyyy" ]
        target => "@timestamp"
    }
    date {
        match => [ "column3", "EEE MMM dd HH:mm:ss zzz yyyy" ]
        target => "column3"
    }   
    mutate {
        remove_field => [ "message" ]
        remove_field => [ "path" ]
        remove_field => [ "host" ]
    }
}
output {
    elasticsearch { 
        hosts => ["localhost:9200"]
        index => "type_1-%{+xxxx.ww}"
    }
}

構成ファイルで次のパラメーターを既に使用しています。

  • テンプレート => "ファイル名.json"
  • template_overwrite => "真"
  • manage_template =>「真」
  • テンプレート名 => 「テンプレート名」

しかし、彼らは助けにはなりませんでした。

以前にこのエラーが発生したことがありますか?

(私はelasticsearch 2.3.2とlogstash 2.3.2で作業しています)

どんな助けでも大歓迎です


私のテンプレート

タイプ_1

 curl -X PUT 'localhost:9200/_template/type_1' -d '
    {
      "template": "type_1*", 
      "settings" : {
        "index" : {
          "refresh_interval" : "30s"
        }
      },
      "mappings": {
        "logs" : {
            "_all": {
              "enabled": false
            },
            "_source": {
              "enabled": false
            },
            "dynamic": "strict",
            "properties" : {
                 "column3" : {
                    "type" : "date",
                    "format" : "strict_date_optional_time||epoch_millis",
                        "norms": {
                            "enabled": false
                        }
                  },
                  "@timestamp" : {
                    "format" : "strict_date_optional_time||epoch_millis",
                    "type" : "date",
                                "norms": {
                                    "enabled": false
                                }
                  },
                  "column2" : {
                    "type" : "string",
                    "index": "not_analyzed"             
                  },
                  "column1" : {
                    "type" : "string",
                    "index": "not_analyzed"
                  },
                  "@version" : {
                    "type" : "string",
                        "norms": {
                            "enabled": false
                        }
                  }
             }
         }
      }
    }';

タイプ_2

 curl -X PUT 'localhost:9200/_template/type_2' -d '
    {
      "template": "type_2*", 
      "settings" : {
        "index" : {
          "refresh_interval" : "30s"
        }
      },
      "mappings": {
        "logs" : {
            "_all": {
              "enabled": false
            },
            "_source": {
              "enabled": false
            },
            "dynamic": "strict",
            "properties" : {
                 "column2" : {
                    "type" : "date",
                    "format" : "strict_date_optional_time||epoch_millis",
                        "norms": {
                            "enabled": false
                        }
                  },
                  "@timestamp" : {
                    "format" : "strict_date_optional_time||epoch_millis",
                    "type" : "date",
                                "norms": {
                                    "enabled": false
                                }
                  },
                  "column1" : {
                    "type" : "float",
                    "index": "not_analyzed"             
                  },
                  "@version" : {
                    "type" : "string",
                        "norms": {
                            "enabled": false
                        }
                  }
             }
         }
      }
    }';

タイプ_3

curl -X PUT 'localhost:9200/_template/type_3' -d '
{
  "template": "type_3*", 
  "settings" : {
    "index" : {
      "refresh_interval" : "30s"
    }
  },
  "mappings": {
    "logs" : {
        "_all": {
          "enabled": false
        },
        "_source": {
          "enabled": false
        },
        "dynamic": "strict",
        "properties" : {
             "column4" : {
                "type" : "date",
                "format" : "strict_date_optional_time||epoch_millis",
                    "norms": {
                        "enabled": false
                    }
              },
              "@timestamp" : {
                "format" : "strict_date_optional_time||epoch_millis",
                "type" : "date",
                            "norms": {
                                "enabled": false
                            }
              },
              "column3" : {
                "type" : "float",
                "index": "not_analyzed"             
              },
              "column2" : {
                "type" : "string",
                "index": "not_analyzed"             
              },
               "column1" : {
                "type" : "float",
                "index": "not_analyzed"             
              },
              "@version" : {
                "type" : "string",
                    "norms": {
                        "enabled": false
                    }
              }
         }
     }
  }
}';
4

1 に答える 1