2015-08-28 1 views
0

J'ai essayé d'analyser les journaux Netscaler pour Logstash avec Grok. J'ai trouvé filtre suivant en ligneChamp de temps pour Netscaler logstash grok filter

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 { } 

    }} 

Pour le champ de temps, il est% {TIME} GMT, je me demande ce que cela signifie, et comment puis-je utiliser ce champ de temps extrait Date() filtre?

Répondre

0

% {TIME} GMT

signifie essentiellement expression régulière match TIME (?!<[0-9])%{HOUR}:%{MINUTE}(?::%{SECOND})(?![0-9]) suivi d'un espace et le mot "GMT".

plus sur les modèles de Grok>http://grokdebug.herokuapp.com/patterns#

Je pense à votre objectif au lieu de %{DATE_US}:%{TIME} GMT vous pouvez utiliser

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

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

plus sur le filtre de date>https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html.

-Siva