与 Elasticsearch 通信

Kibana 在服务器和浏览器上暴露了两个客户端用于和 elasticsearch 通信。其中一个为管理客户端,用于管理 Kibana 的状态;另外一个为数据客户端,用于处理其它所有的请求。客户端使用 elasticsearch.js 库。

服务器客户端

服务器客户端通过 elasticsearch 插件暴露。

  const adminCluster = server.plugins.elasticsearch.getCluster('admin);  const dataCluster = server.plugins.elasticsearch.getCluster('data);  //ping as the configured elasticsearch.user in kibana.yml  adminCluster.callWithInternalUser('ping');  //ping as the user specified in the current requests header  adminCluster.callWithRequest(req, 'ping');

浏览器客户端

浏览器客户端通过 AngularJS 服务暴露。

uiModules.get('kibana').run(function (esAdmin, es) {  es.ping()  .then(() => esAdmin.ping())  .catch(err => {    console.log('error pinging servers');  });});