将logstash中的秒更改为毫秒

将logstash中的秒更改为毫秒,logstash,logstash-grok,elk,Logstash,Logstash Grok,Elk,我试图用ELK stack比较两个日志文件haproxy和nginx,特别是logtash中的响应时间,我在logstash中为haproxy和nginx创建了两个单独的conf文件,在haproxy中,我得到的响应时间是毫秒,例如2334,在nginx中,我得到的响应时间是秒,例如1.23 我想以毫秒为单位转换nginx的响应时间,我尝试使用ruby过滤器进行转换,但没有得到正确的结果,而且我认为这与我当前为haproxy创建的elasticsearch索引相冲突 下面是我的两个配置文件: H

我试图用ELK stack比较两个日志文件haproxy和nginx,特别是logtash中的响应时间,我在logstash中为haproxy和nginx创建了两个单独的conf文件,在haproxy中,我得到的响应时间是毫秒,例如2334,在nginx中,我得到的响应时间是秒,例如1.23

我想以毫秒为单位转换nginx的响应时间,我尝试使用ruby过滤器进行转换,但没有得到正确的结果,而且我认为这与我当前为haproxy创建的elasticsearch索引相冲突

下面是我的两个配置文件:

Haproxy logstash形态:

input {
  beats {
    port => 5044
  }
 }

filter {
  grok {
    match => { "message" => "%{MONTH:month}  %{MONTHDAY:date} %{TIME:time} %{WORD:[source]} %{WORD:[app]}\[%{DATA:[class]}\]: %{IPORHOST:[UE_IP]}:%{NUMBER:[UE_Port]} %{IPORHOST:[NATTED_IP]}:%{NUMBER:[NATTED_Source_Port]} %{IPORHOST:[NATTED_IP]}:%{NUMBER:[NATTED_Destination_Port]} %{IPORHOST:[WAN_IP]}:%{NUMBER:[WAN_Port]} \[%{HAPROXYDATE:[accept_date]}\] %{NOTSPACE:[frontend_name]}~ %{NOTSPACE:[backend_name]} %{NOTSPACE:[ty_name]}/%{NUMBER:[response_time]:int} %{NUMBER:[http_status_code]} %{NUMBER:[response_bytes]:int} - - ---- %{NOTSPACE:[df]} %{NOTSPACE:[df]} %{DATA:[domain_name]} %{DATA:[cache_status]} %{DATA:[domain_name]} %{URIPATHPARAM:[content]} HTTP/%{NUMBER:[http_version]}" }
    add_tag => [ "response_time", "response_time" ]

  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
 }

output {
  elasticsearch { hosts => ["localhost:9200"] }
#       stdout {
#               codec => rubydebug
#       }
  }
Nginx日志存储配置文件

input {
  beats {
    port => 5045
  }
 }

filter {
 grok {
        match => { "message" => "%{IPORHOST:clientip} - - \[%{HTTPDATE:timestamp}\] \"%{WORD:verb} %{URIPATHPARAM:content} HTTP/%{NUMBER:httpversion}\" %{NUMBER:response} %{NUMBER:response_bytes:int} \"-\" \"%{GREEDYDATA:junk}\" %{NUMBER:response_time}"}
 }
       ruby {
               code => "event.set('response_time', event.get('response_time').to_i * 1000)"
       }
}
output {
 elasticsearch {
   hosts => ["localhost:9200"]
  }
 stdout { codec => rubydebug }
}

感谢闪烁的迅速反应
grok {
match => { "message" => "%{IPV4:clientip} - - [%{HTTPDATE:requesttimestamp}] "%{WORD:httpmethod} /" %{NUMBER:responsecode:int} %{NUMBER:responsesize:int} "-" "-" "-" "%{NUMBER:responsetimems:float}""}
}
ruby {
code => "event.set('responsetimems', event.get('responsetimems').to_i * 1000)"
}