社区网站更新日志

medcl 发表了文章 • 3 个评论 • 980 次浏览 • 2017-04-28 23:30 • 来自相关话题

这里专门用来放社区网站更新的日志。  
  • 2017.4.28 支持 SSL
Snip20170428_1.png
 
这里专门用来放社区网站更新的日志。  
  • 2017.4.28 支持 SSL
Snip20170428_1.png
 

社区网站服务器迁移完毕

medcl 发表了文章 • 5 个评论 • 1408 次浏览 • 2017-04-24 14:52 • 来自相关话题

image001.png
 感谢 ConvertLab 为本站提供服务器,目前服务器已经迁移完毕,大家可以感受一下速度!  
logoblack.png
同时感谢在此之前为本站提供网站空间的:谱时      社区账号也支持 Github 绑定了。 感谢大家一路支持,社区有你更精彩。
image001.png
 感谢 ConvertLab 为本站提供服务器,目前服务器已经迁移完毕,大家可以感受一下速度!  
logoblack.png
同时感谢在此之前为本站提供网站空间的:谱时      社区账号也支持 Github 绑定了。 感谢大家一路支持,社区有你更精彩。

Elastic南京meetup分享征集中

kenny_ye 发表了文章 • 3 个评论 • 1517 次浏览 • 2017-03-27 14:34 • 来自相关话题

南京meetup筹备中,有意提供分享的同学请将 1. 个人简介 2. 主题简介 3. 大概内容 发送到 kenny_ye@trendmicro.com.cn   征稿截止日期: 2017年5月7日   欢迎踊跃投稿!
南京meetup筹备中,有意提供分享的同学请将 1. 个人简介 2. 主题简介 3. 大概内容 发送到 kenny_ye@trendmicro.com.cn   征稿截止日期: 2017年5月7日   欢迎踊跃投稿!

Elastic 官方及社区国内活动日程安排

medcl 发表了文章 • 11 个评论 • 5347 次浏览 • 2017-03-16 15:24 • 来自相关话题

Elastic-Heart-2.png
【线上活动】 在线直播 直播工具Zoom:https://elastic.zoom.us/j/522710614,房间号:522710614(密码进群索取)
  • 《Elastic{ON}17 Keynote 回顾》,QQ 群(190605846),2017-3-17 21:00 PM,回放
  • 《What's new in Elasticsearch 5》,QQ 群(190605846),2017-3-20 21:00 PM,回放
  • 《What's new in Logstash 5》,QQ 群(190605846),2017-3-21 21:00 PM,回放 
      【线下活动】  Workshop
  • Elastic Workshop,北京,2017-04-10【报名结束】
  • Elastic Workshop,上海,2017-04-17【报名结束】
  • Elastic Workshop,深圳,2017-04-20【报名结束】
  • Elastic Workshop,上海,2017-06-29【报名结束】
  • Elastic Workshop,广州,2017-07-04【报名结束】
  • Elastic Workshop,深圳,2017-07-06【报名结束】
  Meetup
  • Elastic Meetup Shanghai ,上海,2017.5.14, 【报名结束】【日程
  • Elastic Meetup Beijing ,北京,2017.5.21  【报名结束】【日程】【直播回放
  • Elastic Meetup Nanjing,南京,2017.6.10 【报名结束】【日程】【直播回放
  • Elastic Meetup Hangzhou,杭州,2017.6.25 【报名结束​】【日程】【直播回放
  • Elastic Meetup Changsha,长沙,2017.10.28 【报名链接】【日程
  • Elastic Meetup Wuhan,武汉,2017.11.4 【报名链接】【日程
  • Elastic Meetup Guangzhou,广州,2017.11.25 【报名链接】【日程】🔥🔥🔥🔥
  • Elastic Meetup Shenzhen,深圳,2017.12.16 【报名链接】🔥🔥🔥🔥
  【会议参展】 Elastic 今年继续赞助和支持各种开发者会议,欢迎届时来展台交流。
  • Gopher China,上海,2017.04.15-2017.04.16
  • OSC Shanghai ,上海,2017.5.13
  • The China-R Conf,北京,2017.5.19-2017.5.21
  • OSC Hangzhou,杭州,2017.6.24
  • ArchSummit Shenzhen,深圳,2017.7.7-2017.7.8
  • OSC Jinan,济南,2017.7.22
  • OSC Zhuhai,珠海,2017.8.27
  • RubyConf China,杭州,2017.9.16-17
  • OSC Chengdu, 成都,2017.9.23
  • OSC Chongqing,重庆,2017.9.24
  • ArchSummit Beijing,2017.12.8-2017.12.9
  上面是暂时确定的活动,部分活动报名链接晚点放出来,请关注本页面。 欢迎各个不同的城市的同学一起帮忙举办线下活动。 各个城市的线下活动欢迎报名分享,大家多交流,话题无论大小。

Elastic{ON}17 见闻

medcl 发表了文章 • 2 个评论 • 1409 次浏览 • 2017-03-09 02:06 • 来自相关话题

Elastic 一年一度的用户大会 Elasitc{ON}17 昨日在旧金山举行了,与参人员达到了 2000 多位,这是第三届 Elastic{ON} 了,让我们一起来看看这次大会都要哪些亮点吧。 在进入主题之前,我们先参观看看会场及周边情况吧,这次会场是在旧金山的 48 号码头,和去年的场地很近,不过今年的场地为了容纳的更多的人数,比去年的场地要大很多,码头对面就是著名的AT&T棒球场,看图。
IMG_5718.jpg
IMG_5720.jpg
IMG_5820.jpg
今年多了一个开场的舞蹈,跟别人不一样的事,芭蕾舞蹈演员身上佩戴着若干闪光的传感器,在大背景墙上面可以看到随着演员的舞蹈,有不断变化的各种传感器实时分析的 Kibana 界面,这一切都是实时的哦。
C6WCqNtU0AA3Ft1.jpg
C6WDw1dU8AAuJvA.jpg
然后就进入 Keynote 了,Elastic 公司 CEO Shay Banon 宣布 Elastic 的产品下载次数达到小目标,已经累计一个亿了。
C6WDw1eU8AAZETi.jpg
Elastic 的产品的一个重要原则就是简单,为了让简单的事情变简单,比如采集日志文件,现在的 Filebeat 引入了模块的概念,相应模块直接提供对应成套的配置文件,包括 Mapping、Ingest pipeline、Kibana Dashboard, 启动 filebeat 收集数据进入 es 之后,直接就能可视化分析了。
IMG_5742.jpg
现在使用 elasticsearch 来做 metric 分析的场景和用户越来越多,而 Kibana 的 Timeseries visual builder 就是为了 metric 场景而产生的一个新的特性,支持非常灵活的自定义可视化,还支持 elasticsearch 的 pipeline aggregation。
IMG_5748.jpg
IMG_5749.jpg
接下来就是,Elasticsearch 机器学习了,去年收购的 Perlert,目前已经和 Elasticsearch 无缝集成,现场 demo 演示了通过机器学习模块来分析日志的完整过程,实时的进行异常预测,从众多 service 的日志中找到 root cause。
IMG_5751.jpg
IMG_5752.jpg
IMG_5756.jpg
IMG_5759.jpg
然后就是 ECE,即 ElasticCloud 的私有云,企业可以很方便的借助它来实现搭建 Elastic 的私有云,集群管理,集群升级都很简单。
IMG_5761.jpg
IMG_5762.jpg
然后前 CEO Steven Schuurman 为大家揭晓了今年的第一届 Elastic Cause Awards 获奖的结果,你知道吗,Elasticsearch 正被用于预防埃博拉病毒、拯救人口贩卖以及防止校园暴力等很多有意义的项目中。
IMG_5765.jpg
C6WWI9kU4AADZb5.jpg
C6WWI9kU4AEYmEm.jpg
C6WWI92UoAA-vwB.jpg
然后 Costin Leau 为大家演示了 Elasticsearch-sql,新的和 Elasticsearch 交互的方式,jdbc 兼容,大家期盼已久的功能终于来了,你可以使用现有的支持 jdbc 协议的各种工具来使用 elasticsearch 了,当然不会是完整的 SQL 标准协议,但满足大部分常见的简单的场景。
C6WZQQ-U0AETS_S.jpg
IMG_5768.jpg
IMG_5769.jpg
IMG_5770.jpg
  接下来,Rashid Khan 为大家介绍了与社区相关的一些统计,到最后才跳出来,这些炫酷的 infographic 和 presentation 居然就是在 Kibana 上面,并且这些数据是实时变化的,从而引入了 Kibana 新的功能:Kibana Canvas,借助它,你可以灵活布局设计报表或是 presentation,与后端Elasticsearch数据实时连接,另外与大家通常熟知的静态的 infographic 不同,所有的这些可视化图形都是可以交互操作的,比如过滤与搜索,从此,数据的探索与分析又有了一种新的方式了。
IMG_5773.jpg
IMG_5774.jpg
IMG_5775.jpg
IMG_5778.jpg
IMG_5781.jpg
Keynote 的内容主要就到这里了,下午还有很多其他的具体的演讲,都是各个产品的具体的新的特性,回头再补充。   现场还有很多各种类型的 Demo。
IMG_5784.jpg
IMG_5785.jpg
IMG_5786.jpg
IMG_5787.jpg
IMG_5788.jpg
IMG_5789.jpg
IMG_5790.jpg
IMG_5791.jpg
想知道 Elastic{ON}17 后续几天还有什么新鲜事么,欢迎关注我的微博:@medcl 和 Elastic 中文社区公众号。  

Elastic Stack 5.2.2 发布

medcl 发表了文章 • 5 个评论 • 1253 次浏览 • 2017-03-01 10:37 • 来自相关话题

Elasticsearch 5.2.2
  • 修复request熔断器没有正确处理当前运行请求数的bug,当请求返回前却被客户端关闭时没有对计数减一,会造成节点慢慢的不能处理任何请求,除非重启节点,所有的用户都应该升级 #23317
  • 修复cgroup正则解析的bug,造成节点的不能正常启动 #23219
  • 被shard锁暂缓执行的请求可能会别其他线程启动,并且该请求丢失了上下文,会造成该请求被当做非法请求而拒绝
  • 恢复terms agg的include/exclude参数的支持
  下载:https://www.elastic.co/downloads/elasticsearch 完整的Release notes:https://www.elastic.co/guide/e ... .html XPack release notes:https://www.elastic.co/guide/e ... 5.2.2   Logstash 5.2.2
  • 修复持久化队列在windows启用造成的崩溃
  • 修复多实例公用相同的数据目录造成的数据损坏
  • 修复JVM性能指标收集造成的吞吐影响
  下载:https://www.elastic.co/downloads/logstash Release notes:https://www.elastic.co/guide/e ... .html   Kibana 5.2.2
  •  之前的版本kibana的visualization依赖一个旧的Elasticsearch的include/exclude特性,但是该功能在Elasticsearch5.2.1被突然移除了,引起了kibana的visualization的错误,现在Kibana对新创建的visualization使用正确的结构,并且能在查询时自动转换遗留的旧结构到新的结构
  • 从5.2.0开始,包含sub-bucket的垂直条形图(vertical bar)配置为分组没有合适的缩减y轴,造成相当小甚至某些情况下不可用,这次回归将再次对y轴进行必要的扩展而不管其条形图的模式
  下载:https://www.elastic.co/downloads/kibana 完整Release notes https://www.elastic.co/guide/e ... .html   Beats 5.2.2
  • Metricbeat修复当docker容器被kill掉造成的docker 模块挂起的bug
  • Metricbeat修复超时时间设置而不是默认值
  Release notes:https://www.elastic.co/guide/e ... .html 下载:https://www.elastic.co/downloads/beats/

欢迎参加Elastic的Meetup线下活动问卷调查

medcl 发表了文章 • 1 个评论 • 1185 次浏览 • 2017-02-23 11:25 • 来自相关话题

问卷调查直达链接:https://www.surveymonkey.com/r/elastic-china17    同学们,乡亲们:     想要今年的Elastic线下活动来到您身边么,快参加我们的问卷调查吧,如果您的城市不在下拉列表,记得添加进去,问卷调查比较简单啦,大概只需要花费您几分钟时间,快来吧:https://www.surveymonkey.com/r/elastic-china17 。      另外Elastic也在寻找各个城市的演讲者、场地赞助、协办方、志愿者。如果您有项目用到了任何Elasticsearch、Kibana、Logstash或Beats,并且有兴趣分享您的经验故事(不管是5分钟还是50分钟)请让我们知道,我们非常愿意与我们的社区一起分享您的故事。不管是哪种参与方式都欢迎,请在问卷内留下联系方式或联系我:medcl123(添加注明来意)。

我们感谢您参与本次问卷调查!问题集中在您想参加的线下活动类型,调查结果将被用来使组织者更好地安排活动计划。本调查预计需要花费2 - 5分钟才能完成。我们将与所有参与调查的人分享任何有趣的发现。所有收集的信息将保持匿名。为了鼓励大家花费这一天中的几分钟时间,将随机抽取五个人赢得 $50 美元的亚马逊礼品卡和十五个人将赢得 Elastic Stack 特别版T恤。为了进行抽奖活动,我们会在调查结束时要求您提供电子邮件,但只会用它来让您知道如果您中奖了。

  除了这个问卷调查,我们在也同时更新了 Elastic 用户组的行为准则(Code of Conduct)。参加我们的活动意味着您同意我们的准则。完整的准则可以访问:https://www.elastic.co/community/codeofconduct。所有的细节可以这个链接页找到。如果您还要其他问题,也欢迎告知我们:) — 我们会一直在这里提供帮助!  :)  
timg.jpeg

Elastic Stack 5.2.1 发布

medcl 发表了文章 • 4 个评论 • 2446 次浏览 • 2017-02-15 14:07 • 来自相关话题

Elasticsearch 5.2.1 发布内容   基于 Lucene 6.4.1,所有5.2.0 用户都应该升级到该版本,修正了很多 bug,尤其了 Lucene6.4.1修复了两个重要的内存泄漏:
  • 当存储字段配置为“best_compression",我们依赖于 JVM 回收机制来释放解压缩实例(Deflater/Inflater instances)。然而这些类也行只使用了很少的 JVM 堆栈内存,却使用了大量了本地内存,所以可能 会出现在 JVM 回收解压缩实例之前而操作系统先用完了本地内存。 LUCENE-7647
  • 特定的查询可能会持有 IndexReader 的一个引用,当这些查询被缓存之后,本来应该已经被删除的段会因为这个引用而继续被 Lucene 持有。LUCENE-7657
  功能废弃:
  • Geo distance range 废弃,请使用`geo_distance` bucket aggregation 或 geo_distance sort来替代。#22835
 改进增强:
  • 分配解释 API(allocation explaining)在未分配主分片信息中包含陈旧的副本信息(不管是陈旧还是损坏的)#22826
  Bug 修复:
  • 如果查询超时,将缓存结果置为无效。#22807
  • Reindex 接口支持来源 es 版本<2.0,当不能清除旧的 scroll 不记录日志。
  • 将参数:search.highlight.term_vector_multi_value 保留为节点级别。
  其他细节详见 Release notes。  Download Elasticsearch 5.2.1 X-Pack 5.2.1 release notes   Kibana 5.2.1 发布内容:   在该版本中主要包括了一些重要的 bug 修复,包含一个安全风险的 fix 以及可能造成 kibana 崩溃的问题。 在5.0早期的版本中,如果配置了 SSL,特定的请求会造成 Kibana 无法释放文件打开句柄,这会造成进程随着时间推移的崩溃。请求在发生数据之前被取消也会造成进程的崩溃。还有一个安全的风险:ESA-2017-02(Http 头信息可能泄露敏感信息的问题,注:Kibana4不受影响)。   其他详见:Release notes Download Kibana 5.2.1   Beats,Logstash 发布内容见: https://www.elastic.co/guide/e ... .html https://www.elastic.co/guide/e ... .html    

Elastic Stack 5.2.0 发布

medcl 发表了文章 • 1 个评论 • 3869 次浏览 • 2017-02-03 13:26 • 来自相关话题

本周三,Elastic 发布了 ElasticStack 的全新版本5.2.0,包含了很多激动人心的特性,让我们 一起来看看吧, (Elastic Stack 包括 Elasticsearch、Logstash、Kibana、Beats):  Elasticsearch 5.2.0 主要亮点:
  1. 新增数字和日期范围字段类型,非常方便对范围类型进行交并集的查询,比如你的数据是日历类型的数据,每天都有一些会议信息,会议的开始和结束时间都不同,你想看本周那天有空,可以使用 range fields 很方便的进行查询。了解更多
  2. 新增分片分配解释 API,会告知分片失败的具体原因,如分片损坏、磁盘写满还是配置错误,进行快速运维,以前只能根据经验到处寻找可能是什么问题,费事费力,了解更多
  3. 对 Keyword 类型标准化,在5.0将 string 类型拆成了 text 和 keyword两种类型,text 支持分词,keyword 则不分词默认支持 doc values,不过有时候你还需要对 keyword 类型进行一些标准化处理,如都转成小写,现在可以使用 normalizers 参数来指定标准化的 filter。
  4. Terms 聚合的分区,terms 聚合默认返回10个 term,以前如果你需要返回全部的 term 列表是不可能的任务(基于内存压力),现在你可以通过将请求分区,以多次请求的方式来取回这些数据,了解更多
  5. 字段折叠,在搜索时可以按某个字段的值进行折叠,在每个折叠的值内进行排序选取 topN,了解更多
  相关链接: Download Elasticsearch 5.2.0 Elasticsearch 5.2.0 release notes Elasticsearch 5.2.0 breaking changes X-Pack 5.2.0 release notes   Logstash 5.2.0 主要亮点:
  1. 新的监控 UI,现在 X-Pack 也能监控 logstash 了,X-Pack 基础免费版就包括,如下图:
    MonitoringUI-rel-blog.png
    Screen_Shot_2017-01-09_at_16.51_.49_.png
  2. 更多的监控 API,新增3个类型的统计信息:cgroup、持久化队列和 output新增持续时间字段。
  3. 离线插件管理,在很多没有公网的部署环境,都需要离线安装,以前的离线安装不够完善,尽管大部分插件没问题,但是还是存在个别插件的依赖链下载不完整的问题,为了解决这个问题,我们基本上重新设计了整个工作流程使用了新的方式来打包插件和他所有的依赖,了解更多
  相关连接: Download Logstash 5.2.0 Logstash 5.2.0 release notes   Kibana 5.2.0 主要亮点:
  1. 支持 Elasticsearch Tribe 节点,在“admin”集群的基础上,引入了新的“data”集群,“data”集群可以理解成 Kibana 后面的数据来源,可以是 tribe 节点,而“admin”集群是存放 kibana 可视化信息“。kibana”索引的地方,默认 data 和 admin 集群都是在同一个集群,且不能是 tribe 节点,目前还有一些细节正在处理,如 console 还不能很好的工作。
  2. 增加新的可视化类型:热点图(heatmap),可以很方便的按区间和按时间来显示数据的范围分布,如下图:
    Heatmap_Linechart.png
  3. 开始进行国际化的支持,感谢 IBM 团队的努力,目前已经提供了基础的框架支持,虽然是万里长征的第一大步,但也是非常激动人心的。
  4. 地图服务的改进,Elastic 自己的 Tile 地图服务已经上线几个月了,我们现在能提供10个级别的缩放了,X-Pack 基础用户可以达到12个级别的缩放,并且我们正在尝试18个级别的缩放,并且从5.2开始,我们能让这些级别动态调整,不用发布新的 Kibana。
  5. 监控容器中的 Elasticsearch,现在我们可以监控容器里面的 Elasticsearch 实例的运行情况了,CPU 利用率、GC、堆栈使用情况等,如下图:
    monitoring-elasticsearch-in-containers.png
  相关连接: Download Kibana 5.2.0 Kibana 5.2.0 release notes   Beats 5.2.0 主要亮点:
  1. 新增 Beat:Heartbeat,一个新的正式的官方beat 成员,用于可用性监控,和所有的 beat 一样,轻量级,Heartbeat 可以用于很多场景,比如安全,你不希望暴露某个端口时,使用 Heartbeat,当你发现该端口对外开启了,就可以触发通知,或者服务/网站可用性检测,服务down 了可以及时感知,目前支持:ICMP、TCP 和 HTTP 类型的监控,目前 Heartbeat还处于 beat 阶段,暂不推荐用于生产环境。
  2. Metricbeat 可跟踪网络连接,从5.2开始,Metricbeat 导出了 linux 系统的应用程序的网络连接信息,每个进程打开的 tcp 套接字,本地及远程的 ip 都包含在内,基于它,你可以进行如下的图分析:
    connections-2.png
  3. 收集Prometheus导出的指标,从5.2开始,监控系统普罗米修斯的收集模块导出的数据可以提供给 Metricbeat 然后索引进 Elasticsearch。
  相关连接: Download Beats 5.2.0 Beats 5.2.0 release notes   Elastic Stack 下载链接:https://www.elastic.co/downloads Bug 反馈:http://github.com/elastic 以后有版本的更新消息都会在这里发布一份中文版,欢迎大家关注。

对话 Kibana 之父:如果需要,你应该自己动手编写工具

medcl 发表了文章 • 1 个评论 • 2378 次浏览 • 2017-01-11 11:45 • 来自相关话题

转载:http://www.infoq.com/cn/news/2 ... nToolElastic 中国开发者大会 2016上,ELK 正式宣布更名为“Elastic Stack”,Elastic公司称其开源项目累计已经有8000万次下载。Elastic Stack 最新版本为5.0,从此,Elastic公司会对Elasticsearch、Kibana、Logstash、Beats、X-Pack进行统一规划以同版本号码发布。会上,Kibana 的原作者 Rashid Khan 进行了题为《Kibana 5.0: The Window into the Elastic Stack》。 PPT下载:http://elasticsearch.cn/article/122 
IMG_4857.gif
早在2001年,Rashid 就接触了运维工作,他的第一份工作是在摩根大通集团做网络运维管理分析员。2012年,Rashid 在美国一家媒体公司担任架构工程师,并且研发了 Kibana 的初始版本,那时他的目的是专门设计界面以适配 Logstash,如今 Kibana 已经逐渐演变成了 Elasticsearch 的分析平台。运维出身的他是在怎样的情况下开始了 Kibana 开发,Kibana 走到今天经历了什么,将来 Kibana 的发展会是怎样的?InfoQ 对 Rashid 进行了采访,以下文章来自于采访稿件的整理。 作为运维人员,我亟须优化日志搜索 开始的时候做运维工作遇到很多问题,on call待命,甚至在凌晨2点被叫醒;这种工作状态让我感到很厌烦。往往,在日志中可以发现问题所在,但是需要花费好久时间才能找到。 于是,我寻找有哪些开源软件可以做基本的日志搜索,然后发现了Logstash和与之配合使用的Elasticsearch。经过测试,我发现Elasticsearch速度很快并且提供我所需要的功能;然后我就开始编写一套非常简单的interface作为补充展示,大概花费了我几天的时间。这就是第一版Kibana的诞生过程,当时是采用PHP编写的,功能是可以展示日志并配有搜索入口,目的是把这个工具可以交付给我的boss,使得他无需我的参与便可以使用这个interface。需要提一句的是,Elasticsearch 对于Web编程很友好,并且日志数据按照日期排列。 在全职投入 Kibana 为 Elastic 公司工作之前,我一直从事运维工作并且我非常喜欢运维工作。因为这段实践经验帮助我体会到了运维人的问题和困难,这让我知道了需要创造一个什么样的工具。我依然认为运维是一个非常有挑战的工作,让所有的东西都正常地运转起来。 编程吧,动手创造自己的工具 的确,我是运维人员,但是我还自己动手开发工具。这在美国越来越普遍了,因为大家意识到,如果你可以编写代码,你的工作会轻松很多,代码可以代替你进行重复工作。通过代码实现自动化是正确的途径,没有人愿意不停地做同样的事情。 编写Kibana是因为我当时没有发现一个适合我的工具,于是我决定自己动手。第一版Kibana是用PHP写的,第二版是用Ruby,第三版之后是用JavaScript。我不害怕学习心得语言,因为学语言并不难,Ruby或者JavaScript的语言掌握仅仅是简单的熟悉语法,并没有接触到实际项目中复杂的事情。而重写Kibana的工作也并不复杂,因为其实Elasticsearch做的工作最重。 “哪种编程语言最好?”说实话,其实这个问题的讨论对我而言并不重要。重要的是,为你的工作选择恰当的语言。PHP在我心中仍然有一席之地,我认为它依然是一个好的语言,可能很多人有异议,但是我认为它简单易上手、稳定变化慢,相关工具也很容易上手。Node.js相对来说,比较复杂;Node社区也意识到这个问题,并且正在改进。比如说,当时我选择了Ruby重写Kibana,是因为Logstash是用JRuby写的,Elasticsearch 使用Java写的(JRuby可以理解为Ruby可以跑在JVM里面)。当时想把 Kibana 的 Ruby那个版本是因为想放到Logstash中,但是没有成功。所以,接下来我们研发了Kibana 3 。 在开发Kibana之前,我用过Graphite,但是为什么依然不满足呢?首先,Graphite很棒,所有关于数字、指标、时间序列的事情。但是那个时候,我需要的是一个可以做日志搜索的东西,需要有一个Dashboard可以给出一个图片。我非常希望从日志中获得信息并且把它们和预定的指标绑定在一起,实际上这些幕后工作都是Elasticsearch做的,并且速度真的快很多。此外需要考虑到扩展性,Graphite对于它适合的大小还算可以,即使超过了极限,更多的数据对应着更多的CPU消耗;但是想扩展很多的话,就很困难了,这一点上Graphite还有很多可以提升的空间,Elastic Stack就可以很轻松地实现。 不过,我依然很喜欢Graphite,我也依然认为这是一个有需求的工具,并且它其实是可以和Elasticsearch、Kibana结合在一起使用的。Architecture dependent的问题困扰了很多人, 比如32bit和64bit两者之间,即便是传输一个文件也不能工作,这是一个非常可怕的事情。Graphite 解决了这个问题,并且界面很美,功能强大 。Kibana也解决了很多相似的问题, 尤其是加上了Elasticsearch的配合,解决了许多我在做运维工作时总是非常想做的工作。 从来没有犹豫过是否开源 12岁的时候就开始接触开源项目了,所以在写Kibana的时候从来没有犹豫过要不要把它开源。 开始的时候我们只是把需求写在纸上,然后一条条做。放到Github之后,看到下载量不断上升我们感到很吃惊。我们没有想到,原来这么多人都面临这同样的问题,没有想到大家对这样的一个开源项目如此需要。开源的目的就是为了能帮助人们,最初我也曾疑惑有可能根本没有人用;然后发现越来越多的人在讨论、使用它。现在Elastic Stack是一个开源整体,把个人的事业career放在服务其他人的开源项目上,并能收获到好的反馈,这让我们感到很开心、很欣慰。 当时的小愿望,现在的大公司 Kibana第一版存在仅仅几周。是因为我开始使用Ruby进行重写,这大概花费了两周的时间。因为Logstash使用Ruby写的(即便当时我并不会Ruby),而我的目的就是让Kibana适配Logstash和Elasticsearch,让三者在一起可以协作获得更多的信息。当时我的想法就是让三个工具可以无缝衔接起来好似一个工具一样,有趣的是,这仅仅是当时我自己的一个愿望,后来Elasticsearch的人联系我问要不要合并在成为同一家公司,我们才发现彼此的看法竟然不谋而合。
elastic-logo-H-full-color.jpg
我现在依然是on call的。在 Elastic 公司,我们有on call轮班制。其实这是与用户交流的机会,这是我们 Elastic 每一个开发者都非常珍视的机会。在对用户支持的过程中,我们可以更清晰地了解用户的需求和真实使用情况;还有一些其他方式,比如会议、沙龙、见面会等,任何可以帮助我们与社区连接的。在我看来,在用户发生问题时,你在他身边并且帮助修复问题:没有比这个更好的工作方式。所以,on call不是折磨,是机会。 Kibana的下一步:数据挖掘、角色报表 1、数据挖掘,精益求精 最开始在做日志分析的那个时候,坦率地讲,我并没有关联到了Data mining。因为那时只是想先把问题弄清楚。但是在把所有的问题都解决完(这些并不难,只是花时间而已),实现了最初我们想要的Kibana之后,运维的工作量就大大减少了。 一切都运转得很顺利之后,我们开始思考怎样能把事情做得越来越好,尽量少地产生问题。我们可以获得数据,并且发现了一些问题发生的规律:问题的发生节点,比如说往往半夜三点、发布新版本之后;问题的发生频率,哪些问题非常热门,我们需要把对应的工作放在CDN上;问题的优化处理,发生问题之后如何最快地回滚。机器学习很强有力,而且对于运维人员而言,越少的红色提示越幸福。但是目前我的考虑是,能做到提前预警就已经很棒了。 基于这些思考,我们认为需要开始进行数据挖掘的工作了,这样才把事情做得越来越好,才能更大程度地帮助公司用户。在五六年前,很少会有人想到运维团队可以给出商业业务的指导意见,但是现在这开始越来越普遍。 2、接下来,Dashboard不会只有public一种 此前Kibana的Dashboard是完全公开的,没有角色区分。我知道一些其他的工具提供了包边权限区分的功能。最初的时候,只是想保持事情的简单化,Kibana并没有考虑到把Dashboard做成基于角色的,我们考虑更多的是产品易用性、功能,而没有打算触及安全模块。对于我们自己而言,这并不是过去那些年优先级第一的事项。最开始Kibana的主要矛盾是怎样把内容展现出来,打造Elasticsearch的良好用户界面,所以那个时候是界面是对所有用户可见的。而权限的控制我们是在Elasticsearch上面实现的,搜索、索引、集群操作添加是在Elasticsearch,也就是说我们首先Elasticsearch中实现数据层的安全。 接下来,我们考虑怎样把安全性延展到Kibana中,对不同角色进行区分化的搜索展示。(此前,有一个插件可以满足在Kibana中进行 Elasticsearch 用户的控制。代码是开源的,任何公司都可以编写自己的安全模块,并且我们也乐意帮助他们)在决定做一件事情之后我们就希望把一件事情做得非常好,而不是半途而废。 Kibana in Elastic Stack 5.0
Snip20170111_11.png
研发情况 研发出新功能的第一版本通常很快,但是需要不断的测试确保所有运转正常。Elastic Stack5.0 的所有功能大概花费了9个月的研发时间。在决策哪些功能需要研发时,我们有几周的考虑时间,还会参考社区中的反馈。然后我们还会给开发者一些自主空间,我们试着避免总是给某些人下发某些任务。我们认为最好主意并不来自与管理层或者经理,而是来自于那些与用户交流频繁的软件工程师,花费很多时间做客户支持的同事。会面通常是远程的,因为我们是个分布式的公司,公司成员分布于30多个国家,一共470多人。Kibana部分的研发、测试和运营人员一共有20多人。 如果有两个程序员所做的事情是一样的话,没有关系这不是重复劳动,反而可以让产品更加优化,两个人可以互相讨论加速功能研发;否则的话产品会被程序员打上过强的个人烙印,最终让产品交付给客户的是整个团队。 会一直并且只是配合Elasticsearch 是的,我们没有其他 datasource 的计划,因为我们大部分的使用case是要有时间序列的。 最开始融合在一起的是 Elasticsearch 和 Logstash,然后 Kibana 参与进来。在这个融合的过程中,遇到任何冲突或者改变,我们的评判标准都是怎样对用户而言更友好。举例说明,安全问题最佳的解决是在数据层,搜索非常占用内存,使用ES可以做很复杂的事情,在旧版本的 Kibana 中,可以使用 Elasticsearch 的 API,但是这拖缓了速度,并且用户可能会做一些危险的事情。在 Kibana 和 Elasticsearch 融合之后,我再也没有那样做了,对于一些重的内存需求工作不会在UI层(Kibana)而是会放到数据层(ES),用最少的内存,让尽可能多的计算脱离 JVM heap ,放入socket breaker,让我们管理更简洁干净并做到在UI可追踪。 Kibana的美学 Kibana最初的设计师只是我一个人,现在当然我们有了自己的很优秀的设计师,这是很被看重的部分,没有外包出去。因为我们需要和设计团队频繁地交流,不断地给予反馈,和工程团队。这是我们公司文化的一个重要部分。 你想一想这是运维人员需要终日面对的工具,没有人愿意一直看着丑的东西;此外,也希望Kibana可以让运维人员的boss们感到惊艳,我们希望可以帮助使用者产生非常美的工作。 写在最后 在采访结束时,InfoQ问Rashid是否可以给广大读者一些建议,Rashid想了想说:

如果你有一个想法,把它code出来,build起来。不要等其他人的开源代码,有可能你会等到,但是有可能你永远等不到。在你写出来之后,你没准会收获惊喜。

 
1.png