Hướng dẫn cài Elasticsearch trên CentOS 7

  • Friday 22/05/2020

Elasticsearch là gì?

ElasticSearch là một công cụ tìm kiếm cấp doanh nghiệp (enterprise-level search engine). Mục tiêu là tạo công cụ, nền tảng kỹ thuật tìm kiếm và phân tích thời gian thực nhanh và chính xác, và có thể áp dụng hay triển khai dễ dàng vào các nguồn dữ liệu khác nhau như MS SQL, MySQL, PostgreSQL …có thể và văn bản(text), thư điện tử(email), pdf … nói chung là tất cả những thứ có liên quan tới dữ liệu có văn bản. Nó có đầy đủ công cụ với một giao diện web HTTP có hỗ trợ dữ liệu JSON. Elasticsearch được phát triển bằng Java và được phát hành dạng nguồn mở theo giấy phép Apache.

Điều kiện tiên quyết để sử dụng Elasticsearch

Để chạy được  Elasticsearch thì hệ thống của bạn cần có Java 8 trở lên

Để kiểm tra trên server đã có Java chưa, bạn cần dùng lệnh

java -version

openjdk version "11.0.7" 2020-04-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.7+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.7+10-LTS, mixed mode, sharing)

Nếu Java chưa có bạn cần cài java  trở lên.

yum install java-11-openjdk java-11-openjdk-devel -y

 

Cài đặt Yum Repository cho Elasticsearch

#download signing key
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

#create repo file
vi /etc/yum.repos.d/elasticsearch.repo

[Elasticsearch-7]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
sudo yum install elasticsearch
vim /etc/elasticsearch/elasticsearch.yml

Cài đặt elasticsearch bằng yum

yum install elasticsearch -y

Cấu hình java_home cho Elasticsearch

vim /etc/sysconfig/elasticsearch khai báo thông số

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64

Sửa lại chính xác đường dẫn thư mục java mà đã cài đặt trên server,

Cấu hình network cho Elasticsearch

/etc/elasticsearch/elasticsearch.yml

Nếu bạn chỉ sử dụng cho localhost thì bạn khai báo 127.0.0.1, 
Nếu muốn IP bên ngoài server thì cần khai báo IP của server

# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 127.0.0.1
Trường hợp bạn sử dụng 1  node server thì khai báo

discovery.type: single-node

Khởi động lại Elasticsearch

systemctl restart elasticsearch

Mặc định dữ liệu của elasticsearch được lưu  /var/lib/elasticsearch

Kiểm tra dịch vụ Elasticsearch

Sau khi start service elasticsearch xong, bạn có thể dùng lệnh

curl -X GET “localhost:9200/?pretty”

{
"name" : "localhost",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "-xxxxxxxxxxxxxxxxxxxx",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "xxxxxxxxxxxxxxx",
"build_date" : "2020-01-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}