8.0.0 • Published 2 years ago

happner-elastic-proxy v8.0.0

Weekly downloads
83
License
-
Repository
-
Last release
2 years ago

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:
  1. modify kibana.yml:
elasticsearch.url: "http://localhost:55555"
elasticsearch.customHeaders: { "kibana_server_secret" : "username=_ADMIN&password=happn" }
elasticsearch.requestHeadersWhitelist: [ authorization, cookie ]
  1. 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
  1. 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
8.0.0

2 years ago

8.0.0-beta.1

2 years ago

7.0.4

3 years ago

7.0.3

3 years ago

7.0.2

4 years ago

7.0.1

4 years ago

7.0.1-smc606-1

4 years ago

7.0.0

4 years ago

6.0.0-smc.787

4 years ago

6.0.2

4 years ago

6.0.1

4 years ago

6.0.0

4 years ago

5.1.0

5 years ago

5.1.0-TR4243-3

5 years ago

5.1.0-TR4243-2

5 years ago

5.1.0-TR4243-1

5 years ago

5.1.0-TR4243-0

5 years ago

4.2.1

6 years ago

4.0.0

6 years ago

2.0.0

7 years ago