说起来,两者颇有渊源,怎么说呢?
Grafana 最早其实应该是 Kibana 3 的分支,不相信的可以去翻 Github 的提交记录,所以但凡用过 Kibana 3的人就知道, Grafana 的界面风格其实和 Kibana3 的风格是一致的。
我们来回顾一下历史,Kibana 1.0 的作者是 Rashid Khan 于 2011 年编写的,用的 PHP,开发起来发现不爽,然后第二年又用 Ruby 重写了 Kibana 2.0,发现还是不爽,于是一年后,用 Html+JS 再重写,用的 AngularJS,也是个爱折腾的主,这还是2013年。
那个时候的 Kibana3 是一个纯前端的 UI,功能需求越来越复杂之后,遇到各种问题和开发瓶颈。如基于浏览器端没有办法保证数据传输安全,并且数据都要传输到浏览器端进行渲染,复杂的监控经常卡死浏览器,很多复杂的功能需求没有办法很好在客户端实现。
基于此,Rashid 决定继续重写 Kibana(再一次重写...,2014年),所以 Kibana3 之后的版本 Kibana4 又完全用 NodeJS 重写了一遍,而这个时候有人继续捡起 Kibana3的代码,开辟一个新的项目,不能也叫 Kibana 吧,于是就叫 Grafana ,继续走监控道路,专门面向监控领域,后面也基本上也用 NodeJS 重写了,然后还混杂了 golang 实现的后端。
虽然 Kibana 断臂重来,但是现在的功能也越来越丰富,现在已经不是一个简单的监控平台了,这里划重点,它是一个实时的数据可视化分析平台,你可以在里面进行日志分析,可以进行监控指标分析,可以进行各种时序性数据的实时分析,可以进行机器学习的分析,可以进行数据关联关系的探索,可以进行信息图表的实时幻灯片展示,还可以对 整个 Elastic Stack 进行运维和管理。
如果只是论监控场景,两种实在是各有千秋,Grafana 有的,Kibana 不一定有,Kibana 有的,Grafana 不一定有,这个要看你的需求。
总之,看他们能不能实现你的需求,能够满足你的需求的产品就是好产品。