kopf
kopf is a simple web administration tool for elasticsearch written in JavaScript + AngularJS + jQuery + Twitter bootstrap.
It offers an easy way of performing common tasks on an elasticsearch cluster. Not every single API is covered by this plugin, but it does offer a REST client which allows you to explore the full potential of the ElasticSearch API.
Important:
Kopf is no longer maintained. A replacement(cerebro) has been developed and is currently maintained at https://github.com/lmenezes/cerebro. At this point, cerebro should be pretty much feature equivalent of kopf, with a few new features on top.
Versions
elasticsearch version | branch | latest version |
---|---|---|
0.90.X | 0.90 | v0.90 |
1.X | 1.0 | v1.6.1 |
2.X | 2.0 | v2.1.1 |
Installation
You can either install a specific version(using its release tag) or the most up to date version from a given branch.
####Installing on an Elasticsearch instance:
./elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf/{branch|version}
open http://localhost:9200/_plugin/kopf
####Run locally:
git clone git://github.com/lmenezes/elasticsearch-kopf.git
cd elasticsearch-kopf
git checkout {branch|version}
open _site/index.html
ps: local execution doesn't work with Chrome(and maybe other browsers). See more here.
Alternatively you can run it via connect
which should solve the ng-include
issue.
git clone git://github.com/lmenezes/elasticsearch-kopf.git
cd elasticsearch-kopf
git checkout {branch|version}
npm install
grunt server
Browse to http://localhost:9000/_site.
####Kopf behind a reverse proxy Example configuration for nginx:
server {
listen 8080;
server_name localhost;
location ~ ^/es.*$ {
proxy_pass http://localhost:9200;
rewrite ^/es(.*) /$1 break;
}
location ~ ^/kopf/.*$ {
proxy_pass http://localhost:9200;
rewrite ^/kopf/(.*) /_plugin/kopf/$1 break;
}
}
Example configuration for kopf(kopf_external_settings.json):
{
"elasticsearch_root_path": "/es",
"with_credentials": false,
"theme": "dark",
"refresh_rate": 5000
}
Access kopf at http://localhost:8080/kopf/ ####Try it online:
http://lmenezes.com/elasticsearch-kopf/?location=http://localhost:9200
####Basic HTTP Auth support:
http://lmenezes.com/elasticsearch-kopf/?location=http://user:pwd@localhost:9200
if using https://github.com/Asquera/elasticsearch-http-basic, try:
http://lmenezes.com/elasticsearch-kopf/?location=http://user:pwd@localhost:9200//
The plugin modifies the base elasticsearch response and therefore this workaround is needed.