Cài đặt Elasticsearch 6 trên Linux – Centos 7

Hướng dẫn chi tiết các bước cài đặt Elasticsearch trên hệ điều hành Linux bản phân phối Centos 7

Elasticsearch là gì?

Elasticsearch là một search engine dựa trên phần mềm Lucene, Elasticsearch được phát triển bằng Java và được phát hành dạng mã nguồn mở theo giấy phép Apache. Nó là một search engine khá phổ bến dễ sử dụng và cài đặt.

Cài đặt Elasticsearch trên Centos 7

Cài đặt Elasticsearch trên Centos 7

Các bước cài đặt Elasticsearch trên linux

Do elasticsearch được phát triển bằng java vì thế chúng ta cần cài đặt JDK, ở đây tôi cài bản Open Jdk 8

Cài đặt Java trên linux

sudo yum install java-1.8.0-openjdk-devel

Kiểm tra version của java trên Linux với lệnh sau

java -version

Kết quả là

openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

Cài đặt Elasticsearch

Tương tự với các phần mềm khác ta có thể hiểu cài bằng lệnh yum install elasticsearchtuy nhiên có thể sẽ gặp vấn đề là trên bản phân phối Centos của bạn chưa có repo liên quan đến Elasticsearch và có thể nhận được thông báo như sau từ terminal

[[email protected]]# yum install elasticsearch
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.newmediaexpress.com
 * epel: mirrors.cat.pdx.edu
 * extras: centos.netonboard.com
 * remi-safe: mirrors.thzhost.com
 * updates: mirror.newmediaexpress.com
No package elasticsearch available.
Error: Nothing to do

Để khắc phục bạn cần thêm Elasticsearch repository

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Tạo 1 file repo /etc/yum.repos.d/elasticsearch.repo

sudo nano /etc/yum.repos.d/elasticsearch.repo

Với nội dung của file như sau:

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

Nếu bạn muốn cài bản cũ hơn thì có thể thay đổi 6.x thành giá trị tương ứng

Lưu file trên lại và tiến hành cài đặt Elasticsearch với lệnh sau

sudo yum install elasticsearch

Cài đặt xong hãy bật service Elasticsearch và đảm bảo service này sẽ tự bật khi hệ điều hành của bạn reboot

sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

Mặc định Elasticsearch sẽ chạy giao thức http và port 9200 và port này không bật remote. Hãy test lại bằng cách sau

curl -X GET "localhost:9200/"

Nếu kết quả nhận được tương tự nội dung dưới đây thì có nghĩa là việc cài đặt đã được hoàn thành

{
  "name" : "ClEA3nc",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "8Po0lYJ7kz-K1brngghGdQ",
  "version" : {
    "number" : "6.7.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "56c6e48",
    "build_date" : "2019-04-29T09:05:50.290371Z",
    "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"
}

trong trường hợp nếu vừa cài xong và test bằng Curl mà nhận được thông báo curl: (7) Failed to connect to localhost port 9200: Connection refused, thì hãy kiên nhẫn đợi khoảng 5-10 giây và thử lại.

Để xem log message của elasticsearch được ghi lại trong hệ thống hãy dùng lệnh sau

sudo journalctl -u elasticsearch

Config Elasticsearch (cấu hình Elasticsearch)

Mặc định sau khi cài đặt xong, data của elasticsearch được lưu trong thư mục /var/lib/elasticsearch ,và file config được lưu lại /etc/elasticsearch

Các cài đặt liên quan elasticsearch có thể là Remote Access, thay lại port của elasticsearch từ 9200 sang port khác, Setup memory,…. nếu như bạn không có những nhu cầu này thì có thể bỏ qua và sử dụng mặc định.

Remote access Elasticsearch

Để cấu hình cho phép 1 IP cụ thể được remote đến elasticsearch bạn chạy các lệnh sau

sudo firewall-cmd --new-zone=elasticsearch --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=elasticsearch --add-source=192.168.120.60/32 --permanent
sudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanent
sudo firewall-cmd --reload

Việc cài đặt này sẽ chỉ cho phép ip 192.168.120.60 được remote access đến port 9200, trong trường hợp bạn muốn thêm 1IP khác nữa hãy làm như sau

sudo firewall-cmd --zone=elasticsearch --add-source=<IP_ADDRESS> --permanent
sudo firewall-cmd --reload

Trong trường hợp khác nếu muốn 1 IP bất kỳ cũng có thể remote access đến elasticsearch thì hãy sửa lại file config /etc/elasticsearch/elasticsearch.yml tìm đến phần #network.host loại bỏ comment #

và thay lại địa chỉ thành 0.0.0.0

network.host: 0.0.0.0

Tiếp theo đó hãy khởi động lại elasticsearch để mọi thứ hoạt động ok

sudo systemctl restart elasticsearch

Trên đây là các bước đơn giản để cài đặt Elasticsearch trên Centos 7.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *