Cách thiết lập cụm Elasticsearch với 3 nút trên Ubuntu

theanh

Administrator
Nhân viên
Elasticsearch là một cơ sở dữ liệu không có SQL. Đây là công cụ tìm kiếm và phân tích phân tán, tìm kiếm và phân tích thời gian thực cho mọi loại dữ liệu. Elasticsearch có thể lưu trữ hiệu quả mọi loại dữ liệu, dù là văn bản có cấu trúc hay không có cấu trúc, dữ liệu số và lập chỉ mục theo cách hỗ trợ tìm kiếm nhanh. Elasticsearch cung cấp một REST API đơn giản để quản lý cụm và lập chỉ mục/ghi và tìm kiếm dữ liệu.

Elasticsearch được xây dựng bằng Java và bao gồm một phiên bản OpenJDK được đóng gói.

Để hiểu rõ hơn về Elasticsearch, hãy tham khảo tài liệu chính thức của Elasticsearch.

Trong bài viết này, chúng tôi sẽ chỉ tập trung vào cách thiết lập cụm gồm 3 Node.

Điều kiện tiên quyết​

  1. Ubuntu 18.04 LTS

Những việc chúng tôi sẽ làm​

  1. Tải xuống Elasticsearch
  2. Cài đặt Java 1.8
  3. Cài đặt và cấu hình Elasticsearch
  4. Kiểm tra Cluster

Tải xuống Elasticsearch

Đối với Linux, phiên bản hiện tại 7.4.2, tính đến thời điểm hiện tại, của Elasticsearch có thể được tải xuống bằng lệnh sau trên hệ thống Linux của bạn.

Tải xuống trên mỗi nút (Tên thư mục có thể khác nhau)​

Mã:
mkdir elastic1[B]cd elastic1/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-linux-x86_64.tar.gz
Nếu bạn đang tìm kiếm một phiên bản cụ thể, bạn luôn có thể duyệt lưu trữ trên trang Elasticsearch. Luôn tốt khi sử dụng phiên bản mới nhất vì nó chứa tất cả các bản sửa lỗi cho các sự cố trong các phiên bản trước.


Cài đặt Java​

Elasticsearch cần Java khả dụng trên hệ thống.

Để cài đặt OpenJDK 8, hãy sử dụng các lệnh sau trên Máy chủ Ubuntu 18.04 của bạn

Trên mỗi nút[/b]
Mã:
sudo apt update[B]sudo apt install openjdk-8-jdk
java --version

Cài đặt và cấu hình Elasticsearch​

Bây giờ, đã đến lúc cài đặt Elasticsearch từ kho lưu trữ.

Giải nén gói mà chúng ta vừa tải xuống ở bước trước bằng lệnh sau.

Cài đặt Elasticsearch trên từng nút​

Mã:
tar -zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz

Cấu hình Elasticsearch​

Trước khi bắt đầu dịch vụ, Elasticsearch cần được cấu hình để hoạt động ở chế độ Cluster.

Ở đây chúng ta có 3 máy chủ

es-node-1: 10.11.10.62 (Máy chủ chính ban đầu)
es-node-2: 10.11.14.248
es-node-3: 10.11.13.158

Mở tệp config/elasticsearch.yml và thêm nội dung sau vào đó. (Kiểm tra IP của bạn)
Mã:
vimconfig/elasticsearch.yml

Thêm Masteres-node-1 vàoconfig/elasticsearch.yml[/b]​

Mã:
#đặt tên cho cụm của bạn.[B]cluster.name: my-cluster

#đặt tên cho các nút của bạn (thay đổi số nút từ nút này sang nút khác).
node.name: "es-node-1"

#xác định nút 1 là master-eligible:
node.master: true

#xác định nút 2 và 3 là nút dữ liệu:
node.data: true

#nhập IP riêng và cổng của nút của bạn:
network.host: 10.11.10.62
http.port: 9200

#chi tiết IP riêng của các nút của bạn:
discovery.zen.ping.unicast.hosts: ["10.11.10.62", "10.11.14.248","10.11.13.158"]

cluster.initial_master_nodes:
- 10.11.10.62

Add On es-node-2 inconfig/elasticsearch.yml (Nút này không chứa: cluster.initial_master_nodes)​

Mã:
#đặt tên cho cụm của bạn.
cluster.name: my-cluster

#đặt tên cho các nút của bạn (thay đổi số nút từ nút này sang nút khác).
node.name: "es-node-2"

#xác định nút 1 là master-eligible:
node.master: true

#xác định nút 2 và 3 là data nodes:
node.data: true

#nhập IP riêng và cổng của nút của bạn:
network.host: 10.11.14.248
http.port: 9200

#chi tiết IP riêng của các nút của bạn:
discovery.zen.ping.unicast.hosts: ["10.11.10.62", "10.11.14.248","10.11.13.158"]

Add On es-node-3 inconfig/elasticsearch.yml(Nút này không chứa: cluster.initial_master_nodes)

Mã:
#đặt tên cho cụm của bạn.
cluster.name: my-cluster

#đặt tên cho các nút của bạn (thay đổi số nút từ nút này sang nút khác).
node.name: "es-node-3"

#xác định nút 1 là master-eligible:
node.master: true

#xác định nút 2 và 3 là data nodes:
node.data: true

#nhập IP riêng và cổng của node của bạn:
network.host: 10.11.13.158
http.port: 9200

#chi tiết IP riêng của node của bạn:
discovery.zen.ping.unicast.hosts: ["10.11.10.62", "10.11.14.248","10.11.13.158"]

Khởi động và kiểm tra Cluster​

Khởi động Cluster​

Trên mỗi Node (Đầu tiên khởi động Master es-node1)[/b]

Sử dụng lệnh sau để khởi động Elasticsearch ở chế độ nền trước
Mã:
bin/elasticsearch
Lưu ý:

Elasticsearch sử dụng thư mục mmapfs theo mặc định để lưu trữ các chỉ mục của nó. Giới hạn mặc định của hệ điều hành đối với số lượng mmap có thể quá thấp, điều này có thể dẫn đến các trường hợp ngoại lệ hết bộ nhớ sau.
Mã:
[1]: vùng bộ nhớ ảo tối đa vm.max_map_count [65530] quá thấp, hãy tăng lên ít nhất là [262144]
Trên Ubuntu 18.04, chúng ta có thể tăng giới hạn bằng cách chạy lệnh sau như root/sudo:
Mã:
sudo sysctl -w vm.max_map_count=262144
Thêm -d vào startđể bắt đầu Elasticsearch inbackground
Mã:
bin/elasticsearch -d


Khi cụm bắt đầu, bạn có thể thấy nhật ký như sau trên es-node-1. Lưu ý cách các nút được thêm vào es-node-1 khi chúng được khởi động.
Mã:
[2019-11-30T08:43:05,766][INFO ][o.e.c.s.ClusterApplierService] [I][es-node-1] đã thêm {{es-node-2}[/I][/b]{V9-rBKeJRe2S8UPW96_XzA}{65Bu-WtmTj-Hce_lFAK-ng}{10.11.14.248}{10.11.14.248:9300}{dilm}{ml.machine_memory=4135120896, ml.max_open_jobs=20, xpack.installed=true},}, term: 1, version: 18, reason: Publication{term=1, version=18}
Mã:
[2019-11-30T08:43:30,317][INFO ][o.e.c.s.MasterService ] [I][es-node-1] node-join[{es-node-3[/I]}{TArASFSyS2-gVcNaH-XosQ}{g9X4hxLBQAu3QBcPXL9JAQ}{10.11.13.158}{10.11.13.158:9300}{dilm}{ml.machine_memory=4135124992, ml.max_open_jobs=20, xpack.installed=true} tham gia người lãnh đạo hiện tại], kỳ hạn: 1, phiên bản: 19, lý do: đã thêm {{es-node-3}{TArASFSyS2-gVcNaH-XosQ}{g9X4hxLBQAu3QBcPXL9JAQ}{10.11.13.158}{10.11.13.158:9300}{dilm}{ml.machine_memory=4135124992, ml.max_open_jobs=20, xpack.installed=true},}
Mã:
[2019-11-30T08:43:30,820][INFO ][o.e.c.s.ClusterApplierService] [B][es-node-1] đã thêm {{es-node-3}[/b]{TArASFSyS2-gVcNaH-XosQ}{g9X4hxLBQAu3QBcPXL9JAQ}{10.11.13.158}{10.11.13.158:9300}{dilm}{ml.machine_memory=4135124992, ml.max_open_jobs=20, xpack.installed=true},}, term: 1, version: 19, reason: Publication{term=1, version=19


Kiểm tra cụm

Mở một thiết bị đầu cuối mới mà cụm có thể truy cập được và thử các lệnh sau
Mã:
curl http://10.11.10.62:9200/_cluster/stats?pretty

Mã:
[B]curl http://10.11.10.62:9200/_nodes/process?pretty[/b]

Mã:
[B]curl http://10.11.10.62:9200/_cluster/stats?pretty[/b]

Kết luận​

Trong bài viết này, chúng ta đã xem các bước để tải xuống phiên bản mới nhất của elasticsearch, cài đặt Java 8, cấu hình Elasticsearch, khởi động và kiểm tra cụm.
 
Back
Bên trên