Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mobz/elasticsearch-head
A web front end for an elastic search cluster
https://github.com/mobz/elasticsearch-head
Last synced: 1 day ago
JSON representation
A web front end for an elastic search cluster
- Host: GitHub
- URL: https://github.com/mobz/elasticsearch-head
- Owner: mobz
- License: other
- Created: 2011-06-16T00:49:07.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2021-07-17T10:21:49.000Z (over 3 years ago)
- Last Synced: 2024-11-27T23:03:27.515Z (15 days ago)
- Language: JavaScript
- Homepage: http://mobz.github.io/elasticsearch-head/
- Size: 2.48 MB
- Stars: 9,420
- Watchers: 359
- Forks: 2,020
- Open Issues: 175
-
Metadata Files:
- Readme: README.textile
Awesome Lists containing this project
- awesome-repositories - mobz/elasticsearch-head - A web front end for an elastic search cluster (JavaScript)
- awesome-elasticsearch - mobz/elasticsearch-head
- elasticsearch-collection - mobz/elasticsearch-head
README
h1. elasticsearch-head
h2. A web front end for an Elasticsearch cluster
h3. "http://mobz.github.io/elasticsearch-head":http://mobz.github.io/elasticsearch-head
h2. Running
There are multiple ways of running elasticsearch-head.
h4. Running with built in server
* @git clone git://github.com/mobz/elasticsearch-head.git@
* @cd elasticsearch-head@
* @npm install@
* @npm run start@* @open@ "http://localhost:9100/":http://localhost:9100/
This will start a local webserver running on port 9100 serving elasticsearch-head
h4. 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@
* @open@ "http://localhost:9100/":http://localhost:9100/h4. Running as a Chrome extension
* Install "ElasticSearch Head":https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm/ 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":#enable-cors-in-elasticsearch with this method.h4. 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":#running-with-built-in-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
h4. 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
h4. 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@.h3. Connecting to elasticsearch
By default elasticsearch exposes a http rest API on port 9200 which elasticsearch-head connects to.
h4. 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":https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html 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*.h4. Basic Authentication
elasticsearch-head will add basic auth headers to each request if you pass in the "correct url parameters":#url-parameters
You will also need to add @http.cors.allow-headers: Authorization@ to the elasticsearch configurationh4. 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"
h4. 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":https://github.com/karussell/elasticsearch-http-basic plugin or a reverse proxy )
* @auth_password@ basic auth password as above (note: without "additional security layers":http://security.stackexchange.com/questions/988/is-basic-auth-secure-if-done-over-https, 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)h4. Contributing
To contribute to elasticsearch-head you will need the following developer tools
# git and a "github":https://github.com/ account
# "node ( including npm )":http://nodejs.org/download
# "grunt-cli":http://gruntjs.com/getting-started
# (to run jasmine tests) "phantomjs":http://phantomjs.orgThen
# create a fork of elasticsearch-head on github
# clone your fork to your machine
# @cd elasticsearch-head@
# @npm install@ # downloads node dev dependencies
# @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.h5. Contributing an Internationalisation
* Simplified Chinese by "darkcount":https://github.com/hangxin1940
* Traditional Chinese by "kewang":https://github.com/kewang
* English (primary) by "Ben Birch":https://twitter.com/mobz
* French by "David Pilato":https://twitter.com/dadoonet
* Portuguese by "caiodangelo":https://github.com/caiodangelo
* Turkish by "Cemre Mengu":https://github.com/cemremengu
* Japanese by "Satoshi Kimura":https://github.com/satoshi-kimura
* Vietnamese by "Du Tran":https://github.com/quangdutranTo contribute an internationalisation
# Follow "Contributing" instructions above
# Find your 2-character "ISO 639-1 language code":http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
# edit _site/index.html to add your 2 letter language code to the data-langs attribute of this line @@
# make a copy of @src/app/langs/en_strings.js@ prefixed with your language code
# convert english strings and fragments to your language. "Formatting Rules":http://docs.oracle.com/javase/tutorial/i18n/format/messageintro.html
# Submit a pull request!http://mobz.github.com/elasticsearch-head/screenshots/clusterOverview.png(ClusterOverview Screenshot)!