2015-05-04 2 views
-1

Я использую следующий код для чтения McAfee журналов (я выбрал использовать фильтры CSV, поскольку ГРКИ фильтры оказались грязным)Logstash проблемы временной меткой - разобранное значение один час меньше, чем значения журнала

input { 

stdin{} 
} 

filter { 

csv { 
     columns => ["timestamp", "McAf_ThreatSeverity", "McAf_Event", "McAf_EventDescription", "McAf_EventCategory", "McAf_ThreatT$ 

      separator => "|" 
    } 


date { 
     locale => "en" 
     match => ["timestamp", "dd/MM/YYYY:HH:mm:ss"] 
     timezone => "Europe/London" 
     add_tag => "McAfee_ThreatEventLog" 
    } 

    } 

output { 
    elasticsearch { 
     #action => "index" 
     host => "localhost" 
     } 
    stdout { 
     codec => rubydebug 
    } 
} 

вход что-то вроде этого ...

31/03/2015:12:59:07| SEVERITY_CRITICAL | 1093| Buffer Overflow detected and blocked| Host intrusion buffer overflow| 10.3.1.252| Blocked| buffer overflow 

выход нормально КРОМЕ для метки времени, который один час меньше, что в журналах. То есть,

Using milestone 2 filter plugin 'csv'. This plugin should be stable, but if you see strange behavior, please let us know! For more information on plugin milestones, see http://logstash.net/docs/1.4.2/plugin-milestones {:level=>:warn} 
31/03/2015:12:59:07| SEVERITY_CRITICAL | 1093| Buffer Overflow detected and blocked| Host intrusion buffer overflow| 10.3.1.252| Blocked| buffer overflow 
{ 
         "message" => [ 
     [0] "31/03/2015:12:59:07| SEVERITY_CRITICAL | 1093| Buffer Overflow detected and blocked| Host intrusion buffer overflow| 10.3.1.252| Blocked| buffer overflow" 
    ], 
         "@version" => "1", 
         "@timestamp" => "2015-03-31T11:59:07.000Z", 
          "host" => "UOD-220076", 
         "timestamp" => "31/03/2015:12:59:07", 
      "McAf_ThreatSeverity" => " SEVERITY_CRITICAL ", 
         "McAf_Event" => " 1093", 
      "McAf_EventDescription" => " Buffer Overflow detected and blocked", 
       "McAf_EventCategory" => " Host intrusion buffer overflow", 
    "McAf_ThreatTargetIPv4Address" => " 10.3.1.252", 
       "McAf_ActionTaken" => " Blocked", 
       "McAf_ThreatType" => " buffer overflow", 
          "tags" => [ 
     [0] "McAfee_ThreatEventLog" 
    ] 
} 

В приведенном выше выходе, время в журнале является 12:59:07, но разобранное значение 11:59:07.

Интересно то, что я разобраны различные журналы вчера (журналы брандмауэра), используя следующий код:

input { 

stdin{} 
} 

filter { 

csv { 
     columns => ["timestamp", "Interface", "Origin", "Type", "Action", "Service", "SourcePort", "SourceIP", "DestinationIP", "P$ 
     separator => "|" 
    } 


date { 
     locale => "en" 
     match => ["timestamp", "dd/MMM/YYYY:HH:mm:ss"] 
     timezone => "Europe/London" 
     add_tag => "checkpoint_fw" 

    } 


} 

output { 
    elasticsearch { 
     host => "localhost" 
     } 
    stdout { 

И следующий ввод ....

18/MAR/2015: 15: 00: 00 | eth3-04 | grog1 | Войти | Принимать | HTTP | 46718 | 193.60.148.101 | 23.194.230.180 | ТСР | 0 | | | inzone: местный; outzone: Внешний; service_id: http; message_info: Подразумеваемое правило | Шлюз безопасности/Управление

Что дает правильный вывод метки времени, как показано ниже:

[0] "18/MAR/2015:15:00:00| eth3-04| grog1| Log| Accept| http| 46718| 193.60.148.101| 23.194.230.180| tcp| 0| | | inzone: Local; outzone: External; service_id: http; message_info: Implied rule| Security Gateway/Management" 
], 
    "@version" => "1", 
    "@timestamp" => "2015-03-18T15:00:00.000Z", 
     "host" => "UOD-220076", 
    "timestamp" => "18/MAR/2015:15:00:00", 
    "Interface" => " eth3-04", 
     "Origin" => " grog1", 
     "Type" => " Log", 
     "Action" => " Accept", 
     "Service" => " http", 
    "SourcePort" => " 46718", 
    "SourceIP" => " 193.60.148.101", 
"DestinationIP" => " 23.194.230.180", 
    "Protocol" => " tcp", 
     "Rule" => " 0", 
    "RuleName" => " ", 
    "CurrentRule" => " ", 
    "Information" => " inzone: Local; outzone: External; service_id: http; message_info: Implied rule", 
     "Product" => " Security Gateway/Management", 
     "tags" => [ 
    [0] "checkpoint_fw" 

Единственное различие между сценарием McAfee и скрипт брандмауэра (кроме полей, очевидно), что скрипт брандмауэра использует dd/MMM/YYYY, в то время как сценарий McAfee использует dd/MM/YYYY - я очень сомневаюсь, что это будет значительная разница.

Любые идеи о том, как я могу получить временную метку McAfee в точности, что находится на журналах? (Я даже попытался изменить временные интервалы, но все, что было сделано, это увеличить разницу во времени) - есть ли способ сказать «+ 1 час» в logstash (а не kibana)?

Спасибо.

ответ

1

Ответ прост. Часовой пояс Европа/Лондон - это BST (GMT + 100), начиная с 29 марта. Ваша другая запись была с 18-го, который был до отметки BST.

+0

Alcanzar Вы правы - я думал об этом. Дело в том, что я все еще хочу решить эту проблему - у меня не может быть журнала на 1 час позади - мне нужно время точно так же, как в журналах, - есть ли способ? – DannyKELK

+0

Elasticsearch хранит все даты/время в GMT - там не обойтись ... вы можете отображать их в любом часовом поясе, который вам нужен в пользовательском интерфейсе, или сохранить не проанализированное значение в другом поле и отображать это (которое вы уже делать). – Alcanzar