我是一個生活在東八區(UTC+8)的孩子,阿里雲的服務器時區在部署時也默認設置爲東八區
但我萬萬沒想到,有一天會看到東十六區的存在...
原始問題我已記錄在 Filebeat cannot recognize timezone in sysloghtml
一切坑的起源,來自於最新的modules命令,該命令以組件的形式管理配置文件,很是快捷:git
filebeat modules enable system elasticsearch kibana
github
modules命令是filebeat的組件化管理命令,具體使用方法參考 Quick start: modules for common log formatseditapache
filebeat 7.2.0把面向不一樣對象的採集器視爲不一樣的Modules,經過控制modules的開關來快速管理不一樣對象的日誌採集狀態。ubuntu
啓用模組後,使用setup命令配置環境:服務器
filebeat setup -e service filebeat start #使用service啓動filebeat
啓動以後一切就開始正常工做了,然而接下來神奇的事情出現了elasticsearch
在我打開kibana進行可視化分析的時候,全部的日誌時間往前漂移了8個小時,也就是UTC+8再+8!ide
神奇的時間漂移日誌,紅線是當前時間,綠色直方圖是日誌時間分佈
能夠看到全部日誌的時間都比真實時間快了8個小時
我起初懷疑filebeat二次解析,把utc+8時間再加了個8組件化
然而日誌原始JSON數據告訴我並非這樣ui
filebeat的文檔中@timestamp的記錄值和系統時間相同(UTC+8),但@timestamp自己記錄的應該是UTC值
因而kibana將其解析爲UTC值,並在此之上把時區又加了一個8。
因而UTC+16出現了...
系統時間
UTC+8 2019/07/29 20:56:14
日誌時間
Jul 29 20:56:14
@timestamp 記錄的時間
2019-07-29T20:56:14.000Z
@timestamp 應該記錄的時間
2019-07-29T12:56:14.000Z
在我調了一天bug,在github上翻閱無數個Pull Request,整我的接近崩潰的時候,一個帖子點亮了我:
[官方論壇] Filebeat 6.4.2 the timestamp is not right
這是我第一次在帖子裏看到有人討論covert_timezone配置,這個配置項一看就是跟時區有關的
只須要在path/to/conf/module.d/
目錄裏全部的.yml
開啓var.convert_timezone
就行!!!
可是這也太尼瑪不顯眼了吧!!
日誌文檔原始JSON數據,@timstamp
被記錄成了UTC+8時區(@timestamp應該是UTC記錄):
{ "_index": "filebeat-7.2.0-2019.07.28-000001", "_type": "_doc", "_id": "qRLNPWwBaHGrHZ27tQUU", "_version": 1, "_score": null, "_source": { "agent": { "hostname": "bigiron", "id": "3eb06835-b68e-4b25-9ec1-1ebf0bac83a3", "ephemeral_id": "fd8648df-4eab-4fd2-b915-97fb631211b6", "type": "filebeat", "version": "7.2.0" }, "process": { "name": "filebeat", "pid": 28369 }, "log": { "file": { "path": "/var/log/syslog" }, "offset": 1964308 }, "fileset": { "name": "syslog" }, "message": "2019-07-29T20:56:14.994+0800#011INFO#011log/harvester.go:253#011Harvester started for file: /var/log/apache2/access.log", "cloud": { "availability_zone": "cn-beijing-a", "instance": { "id": "i-2ze74ci7j8m68giheosd" }, "provider": "ecs", "region": "cn-beijing" }, "input": { "type": "log" }, "@timestamp": "2019-07-29T20:56:14.000Z", "system": { "syslog": {} }, "ecs": { "version": "1.0.0" }, "service": { "type": "system" }, "host": { "hostname": "bigiron", "os": { "kernel": "4.4.0-146-generic", "codename": "xenial", "name": "Ubuntu", "family": "debian", "version": "16.04.6 LTS (Xenial Xerus)", "platform": "ubuntu" }, "containerized": false, "name": "bigiron", "id": "a76d0b1176a3140a8e07cb725964722b", "architecture": "x86_64" }, "event": { "timezone": "+08:00", "module": "system", "dataset": "system.syslog" } }, "fields": { "@timestamp": [ "2019-07-29T20:56:14.000Z" ], "suricata.eve.timestamp": [ "2019-07-29T20:56:14.000Z" ] }, "sort": [ 1564433774000 ] }