Installing Elasticsearch (6.x) on Debian
Download and install the public signing key:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Installing the ‘apt-transport-https’ package before proceeding:
apt-get install apt-transport-https
Adding the repository definition to ‘/etc/apt/sources.list’
echo -e "\n# Elasticsearch\ndeb https://artifacts.elastic.co/packages/6.x/apt stable main" >> /etc/apt/sources.list
Before installing elasticsearch, we need openjdk:
apt-get install openjdk-8-jdk
Installing elasticsearch:
apt-get update && apt-get install elasticsearch
Output example:
Preparing to unpack .../elasticsearch_6.7.1_all.deb ... /usr/bin/java Creating elasticsearch group... OK Creating elasticsearch user... OK Unpacking elasticsearch (6.7.1) ... Setting up elasticsearch (6.7.1) ...
Before starting: If you wish, you can adjust the settings. Elasticsearch has three configuration files:
– ‘/etc/elasticsearch/elasticsearch.yml’ for configuring Elasticsearch
– ‘/etc/elasticsearch/jvm.options’ for configuring Elasticsearch JVM settings
– ‘/etc/elasticsearch/log4j2.properties’ for configuring Elasticsearch logging
Sample configuration file for Elasticsearch
cluster.name: UNIX node.name: web network.host: 127.0.0.1 http.port: 9200 http.compression: true bootstrap.memory_lock: true path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch
Starting elasticsearch:
systemctl start elasticsearch
Let’s play and test a little bit:
root@ns:~# curl http://localhost:9200/ { "name" : "KG5BdkS", "cluster_name" : "elasticsearch", "cluster_uuid" : "bfK5xI2ZQPyH4fyL3S1X7A", "version" : { "number" : "6.7.1", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "2f32220", "build_date" : "2019-04-02T15:59:27.961366Z", "build_snapshot" : false, "lucene_version" : "7.7.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
I will create a index:
root@ns:~# curl -X PUT http://localhost:9200/tex {"acknowledged":true,"shards_acknowledged":true,"index":"tex"}
And I will test to add some data to my index
root@ns:~# curl http://localhost:9200/tex/unixteacher/1 -d '{"message":"Welcome to my webpage"}' -H "Content-Type: application/json" {"_index":"tex","_type":"unixteacher","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}
Everything looks ok. I have got the data from the index
root@ns:~# curl http://localhost:9200/tex/unixteacher/1?pretty { "_index" : "tex", "_type" : "unixteacher", "_id" : "1", "_version" : 1, "_seq_no" : 0, "_primary_term" : 1, "found" : true, "_source" : { "message" : "Welcome to my webpage" } }
I can get the data from the _search endpoint:
root@ns:~# curl http://localhost:9200/tex/_search?pretty { "took" : 41, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 1.0, "hits" : [ { "_index" : "tex", "_type" : "unixteacher", "_id" : "1", "_score" : 1.0, "_source" : { "message" : "Welcome to my webpage" } } ] } }