happner-elastic-proxy
v8.0.0
Published
happner elastic proxy ----------------------------
Downloads
24
Maintainers
Keywords
Readme
happner elastic proxy
prerequisites:
node v7+
npm
run the 3 services
OPTION 1: Install and run services
elasticsearch 5.4
kibana 5.4
redis server
OPTION 2: Start services up in dockers
docker-compose up
installation instructions:
#install deps
npm install happner-elastic-proxy
#test run
npm test
run the service locally:
git clone https://github.com/happner/happner-elastic-proxy.git && cd happner-elastic-proxy && npm install && node service/start proxy
running the proxy service:
assuming kibana and elasticsearch is on the same machine, and we have all the prerequisites installed:
- modify kibana.yml:
elasticsearch.url: "http://localhost:55555"
elasticsearch.customHeaders: { "kibana_server_secret" : "username=_ADMIN&password=happn" }
elasticsearch.requestHeadersWhitelist: [ authorization, cookie ]
- download and run proxy:
> git clone https://github.com/happner/happner-elastic-proxy.git && cd happner-elastic-proxy && npm install
> node service/start proxy
# to start the proxy with non-default settings:
> node service/start proxy=proxy.port=55555,proxy.target=http://localhost:9200,proxy.log_output=true,proxy.log_output_errors_only=true
# if log_output=true - requests are logged to the console
# the elasticURL is adjusted to point to the elastic service, elastic requests are proxied to
- navigate to http://localhost:4444/app/kibana and check proxy-ing is working.
running the proxy as a component:
npm i happner-elastic-proxy --save
//starts the proxy service, we test pushing requests through it to elasticsearch, default listen port 55555 and target http://localhost:9200
var Service = require('happner-elastic-feed');
var proxyConfig = {};
var proxyService = new Service();
var http = require('http');
proxyService
.proxy(proxyConfig)
.then(function () {
http.get({
host: 'localhost',
port: 55555,
path: '/_cat/indices?v'
}, function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
console.log('successfully queried :::', body);
proxyService.stop()
.then(function(){
done();
})
.catch(done)
});
}).on('error', function(e) {
done(e);
});
})
.catch(function(e){
done(e);
})
for detailed proxy usage have a look at the tests.
Happner setup instructions in more detail here.
running the system as a component:
npm i happner-elastic-proxy --save
var Service = require('happner-elastic-proxy');
var service = new Service();
var proxyConfig = {
};
service
.proxy(proxyConfig)
.then(function () {
//do something else
})
TODOS:
- finish performance analysis tagging proxy
- create proxy with permissions check