Elasticsearch 5.4 发布,新增机器学习功能
medcl 发表了文章 • 3 个评论 • 8876 次浏览 • 2017-05-05 09:12
https://www.elastic.co/cn/blog ... stack
今天,我们非常荣幸地宣布,首次发布通过 X-Pack 提供的 Elastic Stack Machine Learning 功能。加入 Elastic 就像跳上了火箭船,但是经过 7 个月不可思议的工作,我们现已将 Prelert Machine Learning 技术完全集成到 Elastic Stack。这让我们很激动,而且我们非常迫切地想要收到用户的反馈。
温馨提示:请注意,不要太过激动,这项功能在 5.4.0 版本中尚标记为 beta。
Machine Learning
我们的目标是通过一系列工具为用户赋能,让他们可以从自己的 Elasticsearch 数据中获取价值和洞察。与此同时,我们将 Machine Learning 视为 Elasticsearch 搜索和分析能力的自然延伸。举例来说,Elasticsearch 能够让您在大量数据中,实时地搜索用户“steve”的交易,或者利用聚合和可视化,展示一段时间以来的十大畅销产品或交易趋势。而现在有了 Machine Learning 功能,您就可以更加深入地探究数据,例如 “有没有哪项服务的行为发生了变化?” 或者 “主机上是否运行有异常进程?” 那么要想回答这些问题,就必须要利用 Machine Learning 技术,通过数据自动构建主机或服务的行为模式。
不过, Machine Learning 目前是软件行业最被夸大其词的术语之一,因为从本质上来讲,它就是用来实现数据驱动型预测、决策和建模的一系列广泛的算法和方法。因此,我们有必要隔绝干扰信息,具体说说我们所做的工作。
时间序列异常检测
目前,X-Pack Machine Learning 功能的着眼点是,利用无监督式机器学习,提供 “时间序列异常检测” 功能。
随着时间的推移,我们计划增加更多 Machine Learning 功能,但是我们目前只专注于为用户存储的时间序列数据(例如日志文件、应用程序和性能指标、网络流量或 Elasticsearch 中的财务/交易数据)提供附加值。
示例 1 - 自动提醒关键绩效指标值的异常变化
要说这项技术最直观的用例,那就是可以识别指标值或事件速率偏离正常行为的情况。例如,服务响应时间有没有显著增加?网站访客预期数量与同一时段正常情况相比,是否存在明显差异?传统情况下,人们会利用规则、阈值或简单的统计方法来进行此类分析。但遗憾的是,这些简单的方法鲜少能够高效地处理实际数据,原因在于此类方法往往是基于无效的统计假设(例如:高斯分布),因此不支持趋势分析(长期性或周期性趋势),或者在信号发生变化时缺乏稳定性。
所以说, Machine Learning 功能的首个切入点是单一指标作业,您可以借此了解该产品如何学习正常模式,如何识别单变量时间序列数据中存在的异常。如果您发现的异常是有意义的,您就可以连续地实时运行这项分析,并在发生异常时发出警报。
尽管这看上去像是一个比较简单的用例,但是产品后台包含大量复杂的无监督式机器学习算法和统计模型,因此我们对于任意信号具有鲁棒性,并且能够准确反映。
此外,为了让该功能可以在 Elasticsearch 集群中像原生程序一样运行,我们对功能实现进行了优化,因此几秒钟即可分析数以百万计的事件。
示例 2 - 自动追踪数以千计的指标
Machine Learning 产品可以扩展到数十万指标和日志文件,那么下一步就是要同时分析多个指标。这些指标可能是来自同一个主机的多个相关指标,可能是来自同一个数据库或应用程序的性能指标,也可能是来自多个主机的多个日志文件。在这种情况下,我们可以直接单独分析,再将结果聚合到同一个窗口,展示整体的系统异常情况。
例如,假设我要处理来自一大组应用程序服务的响应时间,我可以直接分析各个服务一段时间以来的响应时间,分别确认各个行为异常的服务,同时展示整体的系统异常情况:
示例 3 - 高级作业
最后,我们的产品还有大量更高级的用途。比方说,如果您想找出与整体相比行为异常的用户、异常的 DNS 流量,或者伦敦街头的拥堵路段,这时您就可以利用高级作业,灵活地分析 Elasticsearch 中存储的任何时间序列数据。
Elastic Stack 整合
Machine Learning 是 X-Pack 中的一项功能。这就意味着,安装 X-Pack 之后,就可以使用 Machine Learning 功能实时分析 Elasticsearch 中的时间序列数据。 Machine Learning 作业与索引和分片基本类似,能够跨 Elasticsearch 集群自动分布和管理。这还意味着 Machine Learning 作业对节点故障有很好的适应性。从性能角度看,紧密集成意味着数据永远不需要离开集群,而且我们可以利用 Elasticsearch 聚合极大地提高某些作业类型的性能。而紧密集成带来的另外一个好处就是,您可以直接从 Kibana 创建异常检测作业并查看结果。
由于这种方法对数据进行原位分析,数据从不离开集群,因此与将 Elasticsearch 数据集成到外部数据科学工具相比,这种方法能够带来显著的性能和运维优势。随着我们在这个领域开发出越来越多的技术,这种架构的优势将会更加显著。
立即试用并反馈
这些 Machine Learning 功能是 X-Pack 5.4 中的 beta 功能,现已可用。我们急切地想要听听您的使用体会,所以请下载 5.4 版本,安装 X-Pack,然后直接联系我们,或者通过我们的讨论论坛联系我们。
下载地址:https://www.elastic.co/cn/downloads
社区网站服务器迁移完毕
medcl 发表了文章 • 5 个评论 • 3505 次浏览 • 2017-04-24 14:52
感谢 ConvertLab 为本站提供服务器,目前服务器已经迁移完毕,大家可以感受一下速度!
同时感谢在此之前为本站提供网站空间的:谱时
社区账号也支持 Github 绑定了。
感谢大家一路支持,社区有你更精彩。
Elastic南京meetup分享征集中
kenny_ye 发表了文章 • 3 个评论 • 4333 次浏览 • 2017-03-27 14:34
1. 个人简介
2. 主题简介
3. 大概内容
发送到 kenny_ye@trendmicro.com.cn
征稿截止日期: 2017年5月7日
欢迎踊跃投稿!
1. 个人简介
2. 主题简介
3. 大概内容
发送到 kenny_ye@trendmicro.com.cn
征稿截止日期: 2017年5月7日
欢迎踊跃投稿!
2017 Elastic 官方及社区国内活动日程安排
medcl 发表了文章 • 11 个评论 • 12007 次浏览 • 2017-03-16 15:24
【线上活动】
在线直播
直播工具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 个评论 • 4221 次浏览 • 2017-03-09 02:06
在进入主题之前,我们先参观看看会场及周边情况吧,这次会场是在旧金山的 48 号码头,和去年的场地很近,不过今年的场地为了容纳的更多的人数,比去年的场地要大很多,码头对面就是著名的AT&T棒球场,看图。
今年多了一个开场的舞蹈,跟别人不一样的事,芭蕾舞蹈演员身上佩戴着若干闪光的传感器,在大背景墙上面可以看到随着演员的舞蹈,有不断变化的各种传感器实时分析的 Kibana 界面,这一切都是实时的哦。
然后就进入 Keynote 了,Elastic 公司 CEO Shay Banon 宣布 Elastic 的产品下载次数达到小目标,已经累计一个亿了。
Elastic 的产品的一个重要原则就是简单,为了让简单的事情变简单,比如采集日志文件,现在的 Filebeat 引入了模块的概念,相应模块直接提供对应成套的配置文件,包括 Mapping、Ingest pipeline、Kibana Dashboard, 启动 filebeat 收集数据进入 es 之后,直接就能可视化分析了。
现在使用 elasticsearch 来做 metric 分析的场景和用户越来越多,而 Kibana 的 Timeseries visual builder 就是为了 metric 场景而产生的一个新的特性,支持非常灵活的自定义可视化,还支持 elasticsearch 的 pipeline aggregation。
接下来就是,Elasticsearch 机器学习了,去年收购的 Perlert,目前已经和 Elasticsearch 无缝集成,现场 demo 演示了通过机器学习模块来分析日志的完整过程,实时的进行异常预测,从众多 service 的日志中找到 root cause。
然后就是 ECE,即 ElasticCloud 的私有云,企业可以很方便的借助它来实现搭建 Elastic 的私有云,集群管理,集群升级都很简单。
然后前 CEO Steven Schuurman 为大家揭晓了今年的第一届 Elastic Cause Awards 获奖的结果,你知道吗,Elasticsearch 正被用于预防埃博拉病毒、拯救人口贩卖以及防止校园暴力等很多有意义的项目中。
然后 Costin Leau 为大家演示了 Elasticsearch-sql,新的和 Elasticsearch 交互的方式,jdbc 兼容,大家期盼已久的功能终于来了,你可以使用现有的支持 jdbc 协议的各种工具来使用 elasticsearch 了,当然不会是完整的 SQL 标准协议,但满足大部分常见的简单的场景。
接下来,Rashid Khan 为大家介绍了与社区相关的一些统计,到最后才跳出来,这些炫酷的 infographic 和 presentation 居然就是在 Kibana 上面,并且这些数据是实时变化的,从而引入了 Kibana 新的功能:Kibana Canvas,借助它,你可以灵活布局设计报表或是 presentation,与后端Elasticsearch数据实时连接,另外与大家通常熟知的静态的 infographic 不同,所有的这些可视化图形都是可以交互操作的,比如过滤与搜索,从此,数据的探索与分析又有了一种新的方式了。
Keynote 的内容主要就到这里了,下午还有很多其他的具体的演讲,都是各个产品的具体的新的特性,回头再补充。
现场还有很多各种类型的 Demo。
想知道 Elastic{ON}17 后续几天还有什么新鲜事么,欢迎关注我的微博:@medcl 和 Elastic 中文社区公众号。
Elastic Stack 5.2.2 发布
medcl 发表了文章 • 5 个评论 • 3772 次浏览 • 2017-03-01 10:37
- 修复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 个评论 • 5195 次浏览 • 2017-02-23 11:25
同学们,乡亲们:
想要今年的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。所有的细节可以这个链接页找到。如果您还要其他问题,也欢迎告知我们:) — 我们会一直在这里提供帮助! :)
Elastic Stack 5.2.1 发布
medcl 发表了文章 • 4 个评论 • 6350 次浏览 • 2017-02-15 14:07
基于 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 个评论 • 7283 次浏览 • 2017-02-03 13:26
(Elastic Stack 包括 Elasticsearch、Logstash、Kibana、Beats):
Elasticsearch 5.2.0 主要亮点:
- 新增数字和日期范围字段类型,非常方便对范围类型进行交并集的查询,比如你的数据是日历类型的数据,每天都有一些会议信息,会议的开始和结束时间都不同,你想看本周那天有空,可以使用 range fields 很方便的进行查询。了解更多
- 新增分片分配解释 API,会告知分片失败的具体原因,如分片损坏、磁盘写满还是配置错误,进行快速运维,以前只能根据经验到处寻找可能是什么问题,费事费力,了解更多。
- 对 Keyword 类型标准化,在5.0将 string 类型拆成了 text 和 keyword两种类型,text 支持分词,keyword 则不分词默认支持 doc values,不过有时候你还需要对 keyword 类型进行一些标准化处理,如都转成小写,现在可以使用 normalizers 参数来指定标准化的 filter。
- Terms 聚合的分区,terms 聚合默认返回10个 term,以前如果你需要返回全部的 term 列表是不可能的任务(基于内存压力),现在你可以通过将请求分区,以多次请求的方式来取回这些数据,了解更多。
- 字段折叠,在搜索时可以按某个字段的值进行折叠,在每个折叠的值内进行排序选取 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 主要亮点:
- 新的监控 UI,现在 X-Pack 也能监控 logstash 了,X-Pack 基础免费版就包括,如下图:
- 更多的监控 API,新增3个类型的统计信息:cgroup、持久化队列和 output新增持续时间字段。
- 离线插件管理,在很多没有公网的部署环境,都需要离线安装,以前的离线安装不够完善,尽管大部分插件没问题,但是还是存在个别插件的依赖链下载不完整的问题,为了解决这个问题,我们基本上重新设计了整个工作流程使用了新的方式来打包插件和他所有的依赖,了解更多。
相关连接:
Download Logstash 5.2.0
Logstash 5.2.0 release notes
Kibana 5.2.0 主要亮点:
- 支持 Elasticsearch Tribe 节点,在“admin”集群的基础上,引入了新的“data”集群,“data”集群可以理解成 Kibana 后面的数据来源,可以是 tribe 节点,而“admin”集群是存放 kibana 可视化信息“。kibana”索引的地方,默认 data 和 admin 集群都是在同一个集群,且不能是 tribe 节点,目前还有一些细节正在处理,如 console 还不能很好的工作。
- 增加新的可视化类型:热点图(heatmap),可以很方便的按区间和按时间来显示数据的范围分布,如下图:
- 开始进行国际化的支持,感谢 IBM 团队的努力,目前已经提供了基础的框架支持,虽然是万里长征的第一大步,但也是非常激动人心的。
- 地图服务的改进,Elastic 自己的 Tile 地图服务已经上线几个月了,我们现在能提供10个级别的缩放了,X-Pack 基础用户可以达到12个级别的缩放,并且我们正在尝试18个级别的缩放,并且从5.2开始,我们能让这些级别动态调整,不用发布新的 Kibana。
- 监控容器中的 Elasticsearch,现在我们可以监控容器里面的 Elasticsearch 实例的运行情况了,CPU 利用率、GC、堆栈使用情况等,如下图:
相关连接:
Download Kibana 5.2.0
Kibana 5.2.0 release notes
Beats 5.2.0 主要亮点:
- 新增 Beat:Heartbeat,一个新的正式的官方beat 成员,用于可用性监控,和所有的 beat 一样,轻量级,Heartbeat 可以用于很多场景,比如安全,你不希望暴露某个端口时,使用 Heartbeat,当你发现该端口对外开启了,就可以触发通知,或者服务/网站可用性检测,服务down 了可以及时感知,目前支持:ICMP、TCP 和 HTTP 类型的监控,目前 Heartbeat还处于 beat 阶段,暂不推荐用于生产环境。
- Metricbeat 可跟踪网络连接,从5.2开始,Metricbeat 导出了 linux 系统的应用程序的网络连接信息,每个进程打开的 tcp 套接字,本地及远程的 ip 都包含在内,基于它,你可以进行如下的图分析:
- 收集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 发表了文章 • 2 个评论 • 9453 次浏览 • 2017-01-11 11:45
在 Elastic 中国开发者大会 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
早在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的人联系我问要不要合并在成为同一家公司,我们才发现彼此的看法竟然不谋而合。
我现在依然是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
研发情况
研发出新功能的第一版本通常很快,但是需要不断的测试确保所有运转正常。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起来。不要等其他人的开源代码,有可能你会等到,但是有可能你永远等不到。在你写出来之后,你没准会收获惊喜。
《Elasticsearch 权威指南》中文版
medcl 发表了文章 • 3 个评论 • 30961 次浏览 • 2017-01-09 16:29
在几十位社区同学的共同努力下,《Elasticsearch 权威指南》的翻译工作接近尾声,
在线访问链接如下:
http://es-guide-preview.elasticsearch.cn
晚点会放到 elastic.co 官网上,大家学习 Elasticsearch 又多了一份好的资料,大家在访问的过程,如果发现有问题(翻译的各种 bug,翻译有误,不合理,不通顺,标点,格式等等),欢迎前往 https://github.com/elasticsear ... guide 提交 Issue,同时也欢迎直接提交 pull request 来改进本书。
同时也希望更多的志愿者加入我们一起进行翻译,后续我们会继续翻译其他的手册,另外有很多同学自己已经在翻译部分内容,也欢迎加入我们一起,有兴趣的同学加入我们翻译的QQ群:109764489 ,一起为 Elastic 的中文资料贡献力量。
最后,再次感谢以下本书的志愿者:
薛杰,骆朗,彭秋源,魏喆,饶琛琳, 风虎,路小磊,michealzh,nodexy,sdlyjzh,落英流离, sunyonggang,Singham,烧碱,龙翔,陈思,陈华, 追风侃侃,Geolem,卷发,kfypmqqw,袁伟强,yichao, 小彬,leo,tangmisi,Alex,baifan,Evan,fanyer, wwb,瑞星,刘碧琴,walker,songgl, 吕兵,东,杜宁,秦东亮,biyuhao,刘刚, yumo,王秀文,zcola,gitqh,blackoon,David,韩炳辰, 韩陆,echolihao,Xargin,abel-sun,卞顺强, bsll,冬狼,王琦。
Elastic Stack 5.0 正式发布
medcl 发表了文章 • 0 个评论 • 7857 次浏览 • 2016-10-27 16:28
作者:Shay Banon,原文:https://www.elastic.co/blog/el ... eased
记得在 2016 年 2 月份,就在 Elastic{ON} 16 大会之后,我写了一篇标题为 [Heya, Elastic Stack and X-Pack] (https://www.elastic.co/blog/he ... -pack ) 的博客。经过了几乎整整一年的努力,中间发布了 5 个 Alpha,1 个 Beta 和一个 RC 版本,今天我们非常高兴的正式宣布发布 Elastic Stack 的 GA 正式版本。
并且,重要的是,于此同时,在我们的 [Elastic Cloud](https://www.elastic.co/cloud/as-a-service/signup ) 上面也同步进行了更新。所以如果你需要托管的 Elasticsearch 和 Kibana ,那么没有其它地方比这里更及时了。我们致力于让 Elastic Cloud 成为一个托管 Elasticsearch 的最佳场所。事实上,在正式版发布之前,我们也提供了 RC 版本方便你用于测试。
我们的团队今天正在庆祝这一时刻,我希望你能加入我们。
GA 版本今天已经可以下载了,如果要加入 Elastic 团队 11 月 3 号的线上活动,了解更多有关于本次发布和向工程师提问,请点击这里 [注册!](https://www.elastic.co/live/v5 )
在开始探索发布详情之前,我想借此机会来回顾一下有哪些背后的事情让我们走到今天。
## 我们的社区
最近的 Elastic{ON} Tour,在每场活动的开场我会讨论我们公司过去几年的简短历史。最近一次活动的高潮是当我宣布我们的累计下载总数达到了七千五百万。当我第一次开始这个项目的时候,我希望她能够被能够被广泛使用,但是我们的社区的热情和激情总是不断的给我快乐和惊喜。
## 先驱者计划
考虑到这一点,我想分享一下 [先驱者计划](https://www.elastic.co/blog/el ... ogram ) 的一些结果。该计划开始于一个简单的前提,你如何使用 Elastic Stack 对我们来说非常重要,不管是产品研发还是确保发布高质量的可用版本。我非常高兴的告诉大家自四月份发布的第一个Alpha版本,我们的社区一共提交了146个issue。
我们的社区是Elastic其中一个最宝贵的财产。事实上,在这次发布中讨论的最多的就是为什么命名为 "Elastic Stack"。
## Elastic Stack
过去一年,我们收购了Packetbeat 团队,然后Beats 就诞生了。这是一个开源的用于构建轻量级数据收集的平台,可用于日志、基础设施监控指标、网络流量等数据的收集,并且以前所未有的简单方式来将数据发送至Logstash或Elasticsearch。同时我们热爱那些已经习惯于将 ELK 作为代表我们软件栈的你们,只不过加上Beats,我们不知道如何将“B”和E-L-K组合在一起。(NOTE:过去用过ELKB)
但Elastic Stack 远不只是一个名字。当我们开始发布一个周期,我们开发提交、构建、测试和发布的是一整个软件栈。这个很重要,从内部来保证兼容性。并且,对你来说,它可以帮助你提升部署速度,减少版本冲突,让开发者轻松的处理整个 Elastic Stack的兼容性问题。
## 一场特性之旅
在我开始这篇博客之前,我打算列举每个产品的一些主要特性,但是发现好像很难确定从哪里开始和结束。我们每个产品和技术的leader 已经创建了单独的博客来讨论各自产品的特性,没人比他们更适合介绍其中的故事。 我个人,更是对其中的一些特性感到非常兴奋,相较于简单的罗列,我会提供一些简短概要并且鼓励你去阅读每个产品详细的博客。
Ingest Node
Ingest Node 是Elasticsearch 的一个节点类型,允许你对数据做一些加工,比如:grok、geoip、date和其它索引(或重建)过程中的基本数据操作。 通过访问REST API的时候指定一个参数“?pipeline=x”来使用由一系列处理器(processors)构造的管道,它可用帮你对文档进行预处理,原生的在Elasticsearch内部,在索引之前做灵活的 ingest部署。这不代表要替换掉Logstash,也不会移除对Beats的需要,只为你设计数据采集架构时提供一种更加灵活的可能性。
Elasticsearch 性能
性能报告倾向于提供一个大纲,尤其是比较性的性能测试报告,基于此,我们花了很大力气来比较5.0.0 与之前发布的版本。数据现在已经可用了,这个数据也是我们用来检查和确保我们正在做正确的事情来保证性能,我们是如此的公开来避免由性能测试数字引起的所谓秘密和怀疑。事实上,不止测试结果,我们还公布了我们的硬件和配置,我们还开源了我们的工具链(叫做 [Rally](https://github.com/elastic/rally )) 和测试记录本身([Rally-Tracks](https://github.com/elastic/rally-tracks ))。
Metricbeat
Metricbeat 替换 Topbeat 成为Elastic Stack里主要的收集度量指标的工具。和Topbeat一样,Metricbeat 收集和“top” 类似的诸如机器及进程的资源(CPU, memory, disk, network)统计信息。和Topbeat不同的是,Metricbeat 同时也收集其它系统的指标信息,如:Apache、HAProxy、MongoDB、MySQL、Nginx、PostgreSQL、 Redis和 Zookeeper,并且在不久的将来还会支持更多应用和系统。
Logstash 监控 API** - 这是一个新的监控特性提供Logstash 管道及其插件在运行时的可视状态。这个组件收集Logstash处理你数据的各种操作性统计指标信息,所有的这些信息都可通过简单的API来进行查询。
Timelion
以前以re{Search} 项目介绍过,现在Timelion 作为Kibana原生的核心组件可直接可用。Timelion 提供一个查询表达式和可视化类型让你探索基于时间的数据。
再列举几个,诸如BKD 树、scaled_float 和 half_float ,我们投入了大量的精力到 [Elasticsearch 可靠性](https://www.elastic.co/guide/e ... .html ) 中,另外Kibana惊艳的重新设计(我从来不知道我们以前有这么讨厌这些边框直到移除), Beats 支持的Kafaka输出,等等,还有很多很多。
这是一个非常大的版本发布,非常有必要阅读相关独立的博客来了解更多范围内的改进。
- [Elasticsearch](https://www.elastic.co/blog/el ... eased )
- [Kibana](https://www.elastic.co/blog/kibana-5-0-0 )
- [Logstash](https://www.elastic.co/blog/lo ... eased )
## X-Pack
在Elastic 我们热爱扩展。太多我们构建的东西我们给他们起了非常有趣的名字,如:Shield、Marvel和Watcher,作为提供给我们客户的额外的插件,独立闭源但没限制开源部分的能力的特性,随着后面又增加了Graph 和Reporting,安装流程也变得困难和困惑。
来和X-Pack 打个招呼吧!
一个包含了security、alerting、monitoring & management、reporting和graph 能力的Elastic Stack的插件。我们对5.0的工程不仅限于Elastic Stack,同时也包括给X-Pack 添加如下:
- Kibana里的管理和监控的UI界面
- Kibana里创建用户和角色的UI界面
- 非常简化的安装流程
X-Pack 可以试用,同时提供商业和免费(基本)授权证书选项。我们尤其兴奋的将X-Pack的某些特性开放出来免费使用,详细请见 [Subscriptions](https://www.elastic.co/subscriptions ) 页。
## 放在最后
我敬畏发布此次版本所做的所有努力,来自我们社区和客户的共同参与,以及为了将来发布所做的一系列背地里的工作。一如既往,理解一个版本的最好方式就是去体验它。
- [Elasticsearch 5.0.0 下载](https://www.elastic.co/downloads/elasticsearch )
- [Kibana 5.0.0 下载](https://www.elastic.co/downloads/kibana )
- [X-Pack 5.0.0 安装指南](https://www.elastic.co/downloads/x-pack )
- [Logstash 5.0.0 下载](https://www.elastic.co/downloads/logstash )
- [Beats 5.0.0 下载](https://www.elastic.co/downloads/beats )
- [ES-Hadoop 5.0.0 下载](https://www.elastic.co/downloads/hadoop )
Elastic{ON} Dev China 2016 开始报名了!
medcl 发表了文章 • 8 个评论 • 5942 次浏览 • 2016-09-20 22:23
大会网站:[url=http://conf.elasticsearch.cn]http://conf.elasticsearch.cn[/url]
大会介绍:
Elastic 中国开发者大会 2016(Elastic{ON} Dev China 2016)是由 Elastic 官方在中国举办的第一次开发者大会,前身 ESCC (Elasticsearch China Conference) 是由 Elastic 中文社区每年定期举办的线下交流活动,主要围绕 Elastic 的开源产品: Elasticsearch、Logstash、Kibana 和 Beats,探讨在搜索、数据实时分析、日志分析、安全等领域的实践与应用。
大会时间:
2016-12-10 08:00 至 2016-12-10 18:00 周六
如何参与:
提供赞助:http://elasticsearch.mikecrm.com/nECSP4
提交演讲:http://elasticsearch.mikecrm.com/x0y56G
当志愿者:http://elasticsearch.mikecrm.com/n5BVwP
购买门票:http://event.3188.la/460820612/
大会具体场地和日程不断更新中,敬请关注!
Elastic 为 Elastic Stack 带来新的 Graph 实时图分析功能
medcl 发表了文章 • 1 个评论 • 15066 次浏览 • 2016-03-31 09:36
Elastic 今天宣布发布一个新的用于 Elasticsearch 和 Kibana 的插件,通过它们您可以很方便的发现、理解和探索您现有数据之间的关系。通过结合速度与相关度的搜索与图分析,Graph 已开启一页新的篇章同时为 Elastic Stack 带来更多的使用场景。
“我们构建 Graph 来帮助您以更多的方式来分析您存储在 Elasticsearch 中的数据” -- Steve Kearns,Elastic 高级产品总监提到, “通过把相关度作为切入点来查看数据间的关系,以前需要涉及到多个系统、批量作业甚至机器学习才能做到的事情,现在变成容易解决的问题。”
Graph 为 Elastic Stack 开启新的使用场景
当您往 Elasticsearch 存储数据时 -- 产品信息、用户资料、文档、日志 -- 这些数据通常会包含对象(实体、人员、角色或者机器等)之间的引用关系。最好的探索这些关系的方法就是以可视化的方式去查看,Graph 通过以 Kibana 插件的方式提供了这样的能力。和 Elastic 的所有产品一样,它的 UI 界面设计简单易用,API 接口丰富强大,借助于 Elastic 在相关性评分的丰富经验,挖掘出您数据中最有价值的关系信息。这种独特的图形探索方式,并且无需引入新的索引格式,允许用户直接查询现有的数据,为 Elastic Stack 打开了一个新的更广泛的使用场景。
Graph 让一些复杂问题和场景(如行为分析、反欺诈、网络安全、药物发现、个性化医疗,或者基于持续的实时数据构建个性化推荐)的处理变得简单。Graph 通过相关性评分计算分离噪音和有用信息,自动识别最重要的这些关系。由于构建于 Elasticsearch 之上,Graph 天然具备高可用和近实时的能力。
Graph 为关系性探索带来相关度
当数据添加到 Elasticsearch 后,索引进程会跟踪和记录该文档每个字段每个值,更新全局词频信息,并准备相关数据用于大的范围查询。这些统计信息还被用来计算搜索的相关度以及有效的用于 Aggregation 中。通过 Graph,Elastic Stack 将以一种新的方式来使用这些统计信息 -- 首先是识别文档间的关系,然后再为指定查询按最相关的关系进行优先级排序处理。
相比之下,传统的图分析技术仅基于给定关系的简单的频次统计。这种方法的缺点是关系连接最多的元素 -- 如《肖申克的救赎》的电影推荐指数或在星巴克的信用卡购买数据 -- 被认为是最重要的而返回但不一定最有价值。Elasticsearch 中的 Graph,相关度会根据与每个关系的重要程度来进行计算而不是简单的平均处理,返回的是重要的结果,避免出现频繁或平常的连接关系
“Graph 是一个极好的例子,让大家看到我们的产品所带来的无限可能性以及我们如何努力让我们的用户尽可能容易的得益于 Elastic Stack。” -- Shay Banon,Elastic CTO 与联合创始人说 -- “我很自豪地看到我们的公司在持续创新,然后也迫不及待的想要看到我们的客户采用 Graph 这种新方法来解决真正具有挑战性的问题和案例.”
了解更多:
Graph 产品首页
观看 Graph 在线研讨会
关于 Elastic
Elastic 是世界领先的软件提供商,致力于结构化和非结构化数据的实时可用性,用户场景包括搜索、日志和数据分析等领域。公司由 Elasticsearch、Kibana、Logstash 和 Beats 这些开源项目背后的开发人员于2012年创立,Elastic Stack、X-Pack 和 Elastic Cloud 这些产品迄今累计已超过5千万次下载。
Elastic 由 Benchmark Capital、Index Ventures 及 NEA 投资,总部位于阿姆斯特丹和加州山景城,公司员工及办事处遍布全球各地。欲了解更多,请访问 http://elastic.co。