与 Elasticsearch 通信edit

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

服务器客户端edit

服务器客户端通过 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');

浏览器客户端edit

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

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