【问题标题】:Logstash - Trying to create an elapsed filterLogstash - 尝试创建一个经过的过滤器
【发布时间】:2018-07-20 11:20:41
【问题描述】:

我正在尝试创建一个已用过滤器,但未显示已用字段。 这是输入:

statement => "SELECT TRANSACTION_ID, COMMUNICATION_ID, 
    BROKER_NAME, IS_NAME, SERVICE_NAME, OPERATION_NAME, OPERATION_VERSION, MESSAGE_TYPE, APPROACH, CLIENT_ID, 
    APPLICATION_ID, EXT_SESSION_ID, EXT_TRANSACTION_ID, EXT_ORIGIN, LANG_CODE, EXT_HOST, APPLICATION, CHANNEL, 
    NUM_RETRIES, STATUS_CODE, STATUS_MSG, DATE_CREATED, 
    DESTINATION_HOST, OPERATION_ID 
    FROM IIB_OPER.COMMUNICATION_LOG 
    WHERE DATE_CREATED > '2018-07-20'"

这是过滤器:

filter {
    if [message_type] == "Req" {
        mutate {
            add_tag => [ "taskStarted" ]
        }
    }
    if [message_type] == "Res" {
        mutate {
            add_tag => [ "taskTerminated" ]
        }
    }   
    elapsed {
        unique_id_field => "operation_id"
        start_tag => "taskStarted"
        end_tag => "taskTerminated"
        timeout => 20000
        new_event_on_match => true
    }
}

在 Kibana 中,在索引模式中,字段会出现,但是当我让 logstash 工作时,已用字段不会出现。

知道为什么吗?

干杯,

【问题讨论】:

    标签: elasticsearch filter logstash elapsed


    【解决方案1】:

    回答我自己的问题... 问题是我正在尝试将已经在 J​​SON 中的列转换为导入到 Elastic,因此创建另一个临时日期它可以工作。

    date {
        match => [ "temp_date", "yyyy-MM-dd HH:mm:ss,SSS"]
    }
    if [message_type] == "Req" {
        mutate {
            add_tag => [ "taskStarted" ]
        }
    }
    if [message_type] == "Res" {
        mutate {
            add_tag => [ "taskTerminated" ]
        }
    }   
    elapsed {
        unique_id_field => "operation_id"
        start_tag => "taskStarted"
        end_tag => "taskTerminated"
        timeout => 30
    }
    

    还有一点...非常重要...超时以秒为单位,不是以英里为单位。

    干杯,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多