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"
}
}
]
}
}