elasticsearch 日志存储多个日志,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" /> elasticsearch 日志存储多个日志,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" />

elasticsearch 日志存储多个日志

elasticsearch 日志存储多个日志,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration,我正在学习一个在线教程,并获得了cars.csv文件和以下Logstash配置文件。我的日志库运行得非常好,并且在我们讲话时正在为CSV编制索引 问题是,我有另一个日志文件(完全不同的数据),我需要解析它并将其索引到不同的索引中 如何在不重新启动logstash的情况下添加此配置 如果上面不可能,我编辑配置文件,然后重新启动logstash-它不会重新索引整个cars文件,是吗 如果我做2。如何格式化多个日志文件样式的配置 我的新日志文件如下所示: 01-01-2017 ORDER FAILED

我正在学习一个在线教程,并获得了cars.csv文件和以下Logstash配置文件。我的日志库运行得非常好,并且在我们讲话时正在为CSV编制索引

问题是,我有另一个日志文件(完全不同的数据),我需要解析它并将其索引到不同的索引中

  • 如何在不重新启动logstash的情况下添加此配置
  • 如果上面不可能,我编辑配置文件,然后重新启动logstash-它不会重新索引整个cars文件,是吗
  • 如果我做2。如何格式化多个日志文件样式的配置
  • 我的新日志文件如下所示:

    01-01-2017 ORDER FAILED: £12.11 Somewhere : Fraud
    
    现有配置文件:

        input {
        file {
               path => "/opt/cars.csv"
               start_position => "beginning" 
               sincedb_path => "/dev/null"
             }
         }
    
        filter {
           csv {
              separator => ","
              columns =>
              [
                    "maker",
                    "model",
                        "mileage",
                            "manufacture_year",
                                "engine_displacement",
                                "engine_power",
                                "body_type",
                        "color_slug",
                    "stk_year",
                "transmission",
                        "door_count",
                "seat_count",
                "fuel_type",
                "date_last_seen",
                "date_created",
                "price_eur"
             ]
        }
    
        mutate {
           convert => ["mileage", "integer"]
        }
        mutate {
           convert => ["price_eur", "float"]
        }
        mutate {
               convert => ["engine_power", "integer"]
        }
        mutate {
          convert => ["door_count", "integer"]
        }
        mutate {
               convert => ["seat_count", "integer"]
        }
        }
    
         output {
          elasticsearch {
           hosts => "localhost"
    
           index => "cars"
           document_type => "sold_cars"
         }
    
         stdout {}
        }
    
    orders.log的配置文件

        input {
          file {
                path => "/opt/logs/orders.log"
                start_position => "beginning"
                sincedb_path => "/dev/null"
            }
        }
    
       filter {
           grok {
              match => { "message" => "(?<date>[0-9-]+) (?<order_status>ORDER [a-zA-Z]+): (?<order_amount>£[0-9.]+) (?<order_location>[a-zA-Z]+)( : (?<order_failure_reason>[A-Za-z ]+))?"}
              }
    
             mutate {
                  convert => ["order_amount", "float"]
                }
              }
    
           output {
           elasticsearch {
                   hosts => "localhost"
    
                   index => "sales"
                   document_type => "order"
         }
    
        stdout {}
         }
    
    输入{
    文件{
    path=>“/opt/logs/orders.log”
    开始位置=>“开始”
    sincedb_path=>“/dev/null”
    }
    }
    滤器{
    格罗克{
    匹配=>{“消息”=>“(?[0-9-]+)(?[a-zA-Z]+):(?[0-9.]+)(?[a-zA-Z]+)(:(?[a-zA-Z]+))?”
    }
    变异{
    转换=>[“订单金额”,“浮动”]
    }
    }
    输出{
    弹性搜索{
    主机=>“本地主机”
    索引=>“销售额”
    文档类型=>“订单”
    }
    stdout{}
    }
    

    免责声明:我是一个完全的新手。第二天使用麋鹿。

    对于第1点,您可以在logstash.yml文件中设置

    config.reload.automatic:true

    或者,在使用conf文件执行logstash时,按如下方式运行:

    bin/logstash -f conf-file-name.conf --config.reload.automatic
    

    完成这些设置后,您可以启动日志存储,从现在起,您在conf文件中所做的任何更改都将反映出来。

    2。如果无法执行上述操作,我编辑配置文件,然后重新启动logstash-它不会重新索引整个cars文件,对吗?

    如果使用
    sincedb\u path=>“/dev/null”
    ,Logstash将不记得is在哪里停止读取文档,并将在每次重新启动时重新为其编制索引。如果希望Logstash记住,则必须删除此行(请参阅)

    3.如何为多种样式的日志文件格式化配置。

    要支持多种样式的日志文件,可以在文件输入上放置标记(请参阅),然后在文件配置中使用条件(请参阅)

    像这样:

    file {
        path => "/opt/cars.csv"
        start_position => "beginning" 
        sincedb_path => "/dev/null"
        tags => [ "csv" ]
    }
    
    
    file {
        path => "/opt/logs/orders.log"
        start_position => "beginning"
        sincedb_path => "/dev/null"
        tags => [] "log" ]
    }
    
    
    if csv in [tags] {
        ...
    } else if log in [tags] {
        ...
    }