0

Grok を使用して Logstash の Netscaler ログを解析しようとしました。次のフィルターをオンラインで見つけました

filter {
    if "netscaler" in [tags] {
            grok {
                    break_on_match => true
                    match => [
                            "message", "<%{POSINT:syslog_pri}> %{DATE_US}:%{TIME} GMT %{SYSLOGHOST:syslog_hostname} %{GREEDYDATA:netscaler_message} : %{DATA} %{IP:source_ip}:%{POSINT:source_port} - %{DATA} %{IP:vserver_ip}:%{POSINT:vserver_port} - %{DATA} %{IP:nat_ip}:%{POSINT:nat_port} - %{DATA} %{IP:destination_ip}:%{POSINT:destination_port} - %{DATA} %{DATE_US:DELINK_DATE}:%{TIME:DELINK_TIME} GMT - %{DATA} %{POSINT:total_bytes_sent} - %{DATA} %{POSINT:total_bytes_recv}",
                            "message", "<%{POSINT:syslog_pri}> %{DATE_US}:%{TIME} GMT %{SYSLOGHOST:syslog_hostname} %{GREEDYDATA:netscaler_message} : %{DATA} %{IP:source_ip}:%{POSINT:source_port} - %{DATA} %{IP:destination_ip}:%{POSINT:destination_port} - %{DATA} %{DATE_US:START_DATE}:%{TIME:START_TIME} GMT - %{DATA} %{DATE_US:END_DATE}:%{TIME:END_TIME} GMT - %{DATA} %{POSINT:total_bytes_sent} - %{DATA} %{POSINT:total_bytes_recv}",
                            "message", "<%{POSINT:syslog_pri}> %{DATE_US}:%{TIME} GMT %{SYSLOGHOST:syslog_hostname} %{GREEDYDATA:netscaler_message} : %{DATA} %{INT:netscaler_spcbid} - %{DATA} %{IP:clientip} - %{DATA} %{INT:netscaler_client_port} - %{DATA} %{IP:netscaler_vserver_ip} - %{DATA} %{INT:netscaler_vserver_port} %{GREEDYDATA:netscaler_message} - %{DATA} %{WORD:netscaler_session_type}",
                            "message", "<%{POSINT:syslog_pri}> %{DATE_US}:%{TIME} GMT %{SYSLOGHOST:syslog_hostname} %{GREEDYDATA:netscaler_message}"
                    ]
            }
            syslog_pri { }

    }}

時間フィールドについては、%{TIME} GMT です。これが何を意味するのか疑問に思っています。この抽出された時間フィールドを date() フィルターでどのように使用できますか?

4

1 に答える 1

0

%{TIME} GMT

基本的には、正規表現 TIME(?!<[0-9])%{HOUR}:%{MINUTE}(?::%{SECOND})(?![0-9])の後にスペースと「GMT」という単語が続く一致を意味します。

grok パターンの詳細 > http://grokdebug.herokuapp.com/patterns#

私はあなたの代わりにあなたの目的のために%{DATE_US}:%{TIME} GMT使うことができると思います

<ns_syslog_timestamp>%{DATE}:%{TIME} %{WORD:ns_syslog_timezone}

date {
    match => [ "ns_syslog_timestamp", "MM/dd/YYYY:HH:mm:ss" ] 
    locale => en
  }

日付フィルターの詳細 > https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html .

-シヴァ

于 2015-10-27T17:27:45.333 に答える