舊系統的日誌記錄的時間是北京時間'yyyy-MM-dd HH:mm:ss'格式的,導入elk但願能已日誌時間創建索引,方便查詢。因爲kibana的前端自動處理utc時間,會將elasticsearch的utf時間轉換成當前的時間,全部咱們在elk中統一使用utc時間。html
經過配置logstash的filter處理前端
步驟一:配置grok,找到符合日誌時間格式的pattern,TIMESTAMP_ISO8601是內置的pattern,從源碼看出%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}? 符合咱們的日誌的格式git
步驟二:配置date, 從步驟一獲取到logtime中匹配「yyyy-MM-dd HH:mm:ss」的時間,重寫@timestamp;這裏關鍵的一點是指定timezone爲日誌的時區,咱們使用Asia/Shanghai, 這樣logstash才能知道時間的時區信息,轉換成對應的utc時間保存到elasticsearchgithub
參考:http://blog.csdn.net/xiaoyu_bd/article/details/52531051elasticsearch
官網:https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html#plugins-filters-date-localeide
pattern源碼:https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patternsui
時區:http://joda-time.sourceforge.net/timezones.html.net