我正在为kibana写一个插件。
我希望能够与elasticsearch进行通信,并且我已经安装了盾牌。
目前,我设法做到的唯一方法是通过服务器发送请求,例如:
server.route({
method: 'GET',
path: '/someFunction',
handler: async function (request, reply) {
const exec = require('child_process').exec;
exec("curl --user admin:111111 -XPOST 'localhost:9200/filebeat-*/_search?pretty' -d ' { --someQuery-- }'", function (err, res) {
if (err) {
throw err;
} else {
console.log(JSON.parse(res));
reply(JSON.parse(res));
}
});
}
});
我确信有更好的方法可以做到这一点,因为我可以在代码中的其他位置看到esResp
和searchSource
。
验证已经插入登录中,因此我无需在服务器中公开硬编码的密码。
我该怎么做?如何使用kibana内置的通信进行弹性搜索?
答案 0 :(得分:0)
好的吧..
return es.search({
index: 'filebeat-*',
body: {
"size": 0,
"aggs": {
"group_by_product": {
"terms": {
"field": "product"
}
}
}
}
}).then(function (resp) {
resp.aggregations.group_by_product.buckets.forEach(function (obj) {
});
});
只需要使用elasticsearch nodeJs模块。