Giter VIP home page Giter VIP logo

elasticsearch-head's Introduction

elasticsearch-head

A web front end for an Elasticsearch cluster

Running

There are multiple ways of running elasticsearch-head.

Running with built in server

  • git clone git://github.com/mobz/elasticsearch-head.git
  • cd elasticsearch-head
  • npm install
  • npm run start

This will start a local webserver running on port 9100 serving elasticsearch-head

Running with docker

  • for Elasticsearch 5.x: docker run -p 9100:9100 mobz/elasticsearch-head:5
  • for Elasticsearch 2.x: docker run -p 9100:9100 mobz/elasticsearch-head:2
  • for Elasticsearch 1.x: docker run -p 9100:9100 mobz/elasticsearch-head:1
  • for fans of alpine there is mobz/elasticsearch-head:5-alpine

Running as a Chrome extension

  • Install ElasticSearch Head from the Chrome Web Store.
  • Click the extension icon in the toolbar of your web browser.
  • Note that you don’t need to enable CORS with this method.

Running as a plugin of Elasticsearch (deprecated)

  • for Elasticsearch 5.x, 6.x, and 7.x: site plugins are not supported. Run as a standalone server
  • for Elasticsearch 2.x: sudo elasticsearch/bin/plugin install mobz/elasticsearch-head
  • for Elasticsearch 1.x: sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head/1.x
  • for Elasticsearch 0.x: sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head/0.9
  • open http://localhost:9200/_plugin/head/

This will automatically download the appropriate version of elasticsearch-head from github and run it as a plugin within the elasticsearch cluster. In this mode elasticsearch-head automatically connects to the node that is running it

Running with the local proxy

This is an experimental feature which creates a local proxy for many remote elasticsearch clusters

  • configure clusters in proxy/clusters
  • create a file per remote cluster you want to connect to ( see localhost9200.json as example )
  • requires node >= 6.0
  • npm install
  • npm run proxy

At the moment it only works with grunt server running on http://localhost:9100

Alternatives

  • File System: elastisearch-head is a standalone webapp written in good-ol’ html5. This means, you can put it up on any webserver, run it directly from the filesystem. It’ll even fit on a floppy disk.
  • DEB package: There is an unofficial deb package. the plugin executable will be available at /usr/share/elasticsearch/bin/plugin.
  • Homebrew: There is an unofficial keg. The plugin executable will be available at /usr/local/Cellar/elasticsearch/(elasticsearch version)/libexec/bin/plugin.

Connecting to elasticsearch

By default elasticsearch exposes a http rest API on port 9200 which elasticsearch-head connects to.

Enable CORS in elasticsearch

When not running as a Chrome extension or as a plugin of elasticsearch (which is not even possible from version 5), you must enable CORS in elasticsearch, or else your browser will reject elasticsearch-head’s requests due to violation of the same-origin policy.

In elasticsearch configuration;

  • add http.cors.enabled: true
  • you must also set http.cors.allow-origin because no origin allowed by default. http.cors.allow-origin: "*" is valid value, however it’s considered as a security risk as your cluster is open to cross origin from anywhere.

Basic Authentication

elasticsearch-head will add basic auth headers to each request if you pass in the correct url parameters
You will also need to add http.cors.allow-headers: Authorization to the elasticsearch configuration

x-pack

elasticsearch x-pack requires basic authentication and CORS as described above. Make sure you have the correct CORS setup and then open es-head with a url like “http://localhost:9100/?auth_user=elastic&auth_password=changeme”

URL Parameters

Parameters may be appended to the url to set an initial state eg. head/index.html?base_uri=http://node-01.example.com:9200

  • base_uri force elasticsearch-head to connect to a particular node.
  • dashboard experimental feature to open elasticsearch-head in a mode suitable for dashboard / radiator. Accepts one parameter dashboard=cluster
  • auth_user adds basic auth credentials to http requests ( requires elasticsearch-http-basic plugin or a reverse proxy )
  • auth_password basic auth password as above (note: without additional security layers, passwords are sent over the network in the clear )
  • lang force elasticsearch-head to use specified ui language (eg: en, fr, pt, zh, zh-TW, tr, ja)

Contributing

To contribute to elasticsearch-head you will need the following developer tools

  1. git and a github account
  2. node
  3. grunt-cli
  4. (to run jasmine tests) phantomjs

Then

  1. create a fork of elasticsearch-head on github
  2. clone your fork to your machine
  3. cd elasticsearch-head
  4. npm install # downloads node dev dependencies
  5. grunt dev # builds the distribution files, then watches the src directory for changes (if you have an warning like "Warning: Task “clean” failed. Use —force to continue.", well use —force ;) )

Changes to both _site and src directories must be committed, to allow people to
run elasticsearch-head without running dev tools and follow existing dev patterns,
such as indenting with tabs.

Contributing an Internationalisation

To contribute an internationalisation

  1. Follow “Contributing” instructions above
  2. Find your 2-character ISO 639-1 language code
  3. edit site/index.html to add your 2 letter language code to the data-langs attribute of this line @here">@
  4. make a copy of src/app/langs/en_strings.js prefixed with your language code
  5. convert english strings and fragments to your language. Formatting Rules
  6. Submit a pull request

ClusterOverview Screenshot

elasticsearch-head's People

Contributors

aeftef avatar alambert avatar andrese avatar awick avatar benmccann avatar bshelton229 avatar caiodangelo avatar cmanaha avatar dadoonet avatar dpursehouse avatar ebuildy avatar erickt avatar francoisforster avatar hangxin1940 avatar hmalphettes avatar jappievw avatar kewang avatar liu-frosk avatar lucassaldanha avatar mobz avatar ndwhelan avatar nickw-indeed avatar offsnoooze avatar philipskokoh avatar prawnsalad avatar quangdutran avatar shadiakiki1986 avatar spinscale avatar vocatan avatar zhaoyunxing92 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.