【问题标题】:Create index based on message field - appname根据消息字段创建索引 - appname
【发布时间】:2021-12-24 19:09:59
【问题描述】:

****Logstash.conf 代码 *******

输入{

    stdin{
        type => "stdin-type"
    }

file{
    type => "json"
    path => [ "C:/prod/*.log", "C:/prod/*/**.log"]
    start_position => "beginning"
    tags => "prod"
    }

file{
    type => "json"
    path => [ "C:/dev/*.log", "C:/dev/*/**.log"]
    start_position => "beginning"
    tags => "dev"
    }

}

过滤器{

     grok {
    match => {
    "message" => [ "%{JSON:payload_raw} "]
    }
        pattern_definitions => {
        "JSON" => "{.*$"}

}

json {
    source => "payload_raw"
    target => "payload"
    }


mutate {
    remove_field => [ "payload_raw","message" ]
        }


date {
    match => [ "[payload][datetime]", "yyyy-MM-dd HH:mm:ss,SSS" ]
    target => "@timestamp"
    }

}

输出{

    stdout {
    codec => rubydebug
    }
    elasticsearch {
    hosts => ["localhost:9200"]
    index => "%{tags}-logs"
    }

}


样本日志

{datetime":"2021-08-10 04:11:37,825","servername":"VM-0001","serverip":"(null)","process":"2404","thread ":"4","level":"DEBUG","appname":"Dev-Email","page":"Program.cs"}

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: elasticsearch logstash kibana logstash-grok logstash-configuration


【解决方案1】:

鉴于您共享的示例文档,您的elasticsearch 输出需要如下所示:

elasticsearch {
    hosts => ["localhost:9200"]
    index => "%{appname}-logs"
}

还知道索引名称不允许包含大写字母,因此Dev-Email 在用作索引名称之前需要小写(使用mutate/lowercase filter)。

【讨论】:

  • 我的要求是创建 appname 字段值的索引名称(Dev-Email)。它应该创建多个索引 appname 字段值(Dev-Email)。
  • 你能用你从 ES 日志中得到的完整错误更新你的问题吗?
  • 其实早些时候我无法向你完全解释我的问题。
  • 我的要求是创建 appname 字段值的索引名称(Dev-Email)。它应该创建多个索引 appname 字段值(Dev-Email)。如果 appname 值更改,则应使用更改的值创建索引
  • 我的上述评论仍然有效,我想了解您为什么会收到这些错误以及它们是什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
  • 2022-01-02
相关资源
最近更新 更多