Server setup
Download tar package of ealsticSearch and install:
aptitude update
aptitude install openjdk-7-jdk
wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.0.0/elasticsearch-2.0.0.tar.gz
tar zxf elasticsearch-2.0.0.tar.gz
cd elasticsearch-2.0.0
bin/elasticsearch
Or you can install it as a service with deb package
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.deb
sudo dpkg -i elasticsearch-1.7.3.deb
sudo /etc/init.d/elasticsearch restart
Start in foreground:
sudo /usr/share/elasticsearch/bin/elasticsearch --default.path.conf=/etc/elasticsearch/.
If you omit the option "--default.path.conf",
you'll get an error:
org.elasticsearch.ElasticsearchException: Failed to load logging configuration.
When you want start the 2nd node in the same machine, always start it this way with the same command above.
Or run it in background:
/usr/share/elasticsearch/bin/elasticsearch -d --default.path.conf=/etc/elasticsearch/;
Data manipulation in client
Create a new index:
curl -XPUT 'localhost:9200/blogs' -d '
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1
}
}'
List all indexes: curl 'localhost:9200/_cat/indices?v';
For a index named "test":
List all data in an index: curl -XGET 'http://localhost:9200/test/_search?pretty';
Remove an index: curl -XDELETE 'http://localhost:9200/test/',
wild card can be used here: curl -XDELETE 'http://localhost:9200/logstash*/',
or many indexes at once: curl -XDELETE 'http://localhost:9200/website,shakes*/',
separated by comma.
Put the result as well-formatted json:
npm install -g json
curl 'localhost:9200/megacorp/employee/_search?pretty' | json
Notes
You can use
curl 'localhost:9200/megacorp/employee/_search?pretty' | python -m json.tool
in command line or :%!python -m json.tool in vim to format json string.
But it will sort your keys, and maybe not friendly to Unicode characters.
Do NOT delete "mongodb_meta" index in ES,
or you will get an error when starting mongo-connector:
AttributeError: 'IndicesClient' object has no attribute 'delete_mapping'
If you had deleted it, restart ES server to rebuild this index.
?petty sometimes will be invalid url.
Format json in vim: :%!json.
Ref:
http://stackoverflow.com/questions/352098/how-can-i-pretty-print-json
https://pascalprecht.github.io/2014/07/10/pretty-print-json-in-vim/
Security
Ref: Security for Elasticsearch.
Under directory "/home/es/apps/elasticsearch-2.0.0", run:
bin/plugin install elasticsearch/license/latest
bin/plugin install elasticsearch/shield/latest
bin/elasticsearch
bin/shield/esusers useradd es_admin -r admin
// input admin pwd: es@Newfairs2015
Elasticsearch authentication will affect kibana and mongo-connector, make things too complicated. So I decided to remove authentication. First stop elasticsearch server, then run:
bin/plugin --help
bin/plugin list
bin/plugin remove shield
bin/plugin remove license
bin/elasticsearch
Finally start mongo-connector and kibana.