今天聊聊,我是如何被Kibana时区timezone问题搞得没脾气的…


前段时间跟大家聊过,我们开始使用metrices + kibana + elasticesarch集群的组合构建应用级性能监控,数据在es里面可以轻松的使用kibana画各种图表。


文章写的不是太严谨,后期会不断更新修改补充该文章,标注下原文地址:

http://xiaorui.cc/?p=2466

http://xiaorui.cc/2015/12/09/%E7%BA%A0%E7%BB%93kibana4%E7%9A%84%E6%97%B6%E5%8C%BAtimezone%E9%85%8D%E7%BD%AE%E9%97%AE%E9%A2%98/

我自己做测试的时候,发现始终看不到数据,中途调整了index和doc_type ,提示 Area charts require more than one data point. Try adding an X-Axis Aggregation

后来把时间的范围加大后,看到了数据的图表了。

 

虽然图表显示了,但是时间戳所在的时区有问题,kibana默认的时区是根据浏览器js获取的,也就是你当前本地的时区。 你本地的时区是东8,那么kibana画图的时候会加上一个pre_zone参数,但是很多时候咱们入库的timestamp时间戳就是当前的北京时间,kibana又帮你加8个小时…

以前的kibana版本是支持直接在线setting修改时区,再不济也是可以修改本地的配置的。现在看不懂kibana为毛不开放这个友好功能了. 

后来我在github kibana项目提了一个issue ,得到的回答让我很不满意…

Issue Url :https://github.com/elastic/kibana/issues/5589

看过以前的issue list,老外曾经说过,他推荐用户尽量在client层,就加入时区的概念,或者是定制mapping,在mapping结构里把date类型做时区的处理。 

如果你是python的elasticsearch客户端模块,他貌似没有timezone的属性配置。 我现在的做法是用datetime转换成 “2015-11-20T10:33:33+08:00″  的字符串模式。你虽然用python转成字符串,但是在elasticsearch mapping里是个date日期时间类型。 

另外我看了下kibana关于timezone的源码,找到了dateFormat:tz 参数。 有意思的是,老外也让我修改dateFormat:tz参数,但是kibana setting > Advanced 没有dataFormat:tz这个可以改动的选项。 不管怎么说,这参数确是用来解决时区问题入口。 

可以把dateFormat:tz的值改成Asia/Shanghai就可以了.

filename : kibana/src/plugins/kibana/public/kibana.js

.setRootController(‘kibana’, function ($scope, $rootScope, courier, config) {
  function setDefaultTimezone() {
    moment.tz.setDefault(config.get(‘dateFormat:tz’));
  }

filename: kibana/src/ui/public/config/defaults.js

#这里定义了kibana的默认配置的方式,关于dateFormat:tz参数,他说的很明白,就是用浏览器获取时区 (getTimezoneOffset) .

‘dateFormat:tz’: {
  value: ‘Browser’,
  description: ‘Which timezone should be used.  ”Browser” will use the timezone detected by your browser.’,
  type: ‘select’,
  options: _.union(['Browser'], moment.tz.names())

}


除此之外,在StackOverflow里面,看到一逗比的回答,说是直接改本地时区… 

对于kibana4还是很看好,确实非常适合做临时的dashboard实时图表展现,对于我来说他的缺点就这么几个了,一个是future回馈慢,另外是无权限管理.  

另外给大家展现下,使用kibana实现的实时消息统计.




对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品