Thiết lập một cụm Elasticsearch cao cấp (HA) với ba node và tích hợp Kibana để quản lý và trực quan hóa dữ liệu. Các bước được thực hiện trên hệ thống Ubuntu với các gói Debian.
1. Chuẩn bị môi trường
Tham khảo tài liệu cài đặt:
Cài đặt các công cụ mạng cần thiết:
- Hệ điều hành: Ubuntu 22.04
- Máy chủ:
core-1
: 192.168.65.11 (Leader)core-2
: 192.168.65.12 (Replica)core-3
: 192.168.65.13 (Replica)
Cài đặt khóa GPG cho Elasticsearch:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
2. Cài đặt và cấu hình Elasticsearch
Cài đặt Elasticsearch
Thực hiện các bước cài đặt trên tất cả các server (core-1, core-2, core-3).
Cấu hình Elasticsearch trên server 1
Chỉnh sửa tệp /etc/elasticsearch/elasticsearch.yml
:
vi /etc/elasticsearch/elasticsearch.yml
Thêm các thông tin sau:
cluster.name: truongitt-elk
node.name: core-1
network.host: 192.168.65.11
http.port: 9200
transport.host: 0.0.0.0
Khởi động dịch vụ trên server 1:
systemctl start elasticsearch
Cấu hình user và kiểm tra trạng thái
Tạo mật khẩu cho user elastic
trên server 1:
cd /usr/share/elasticsearch/bin/
./elasticsearch-reset-password -i -u elastic
Ví dụ mật khẩu: truongitt
Kiểm tra trạng thái node và cụm:
curl -k -u elastic:truongitt https://192.168.65.11:9200/
curl -k -u elastic:truongitt https://192.168.65.11:9200/_cluster/health?pretty
curl -k -u elastic:truongitt https://192.168.65.11:9200/_cat/nodes
Thêm node vào cụm
Tạo token enrollment trên server 1:
cd /usr/share/elasticsearch/bin/
./elasticsearch-create-enrollment-token -s node
Nhận token (ví dụ): eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTkyLjE2OC42NS4xMTo5MjAwIl0sImZnciI6IjM4NzYwMzA3NjUwYWQ5NjgyZTFlNDZmMDc3Y2ZhYjU0NTFiYjU2MjY0N2Q1ODhiYjlhNmJmZjcwNmI3NmZhODYiLCJrZXkiOiJPT1pIcFpjQkV4eFpZa1FmNWdTdToxbmR5bXowYkZYb21mUDc0N2V0U3JnIn0=
Trên server 2 và 3, thực hiện:
cd /usr/share/elasticsearch/bin/
./elasticsearch-reconfigure-node --enrollment-token eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTkyLjE2OC42NS4xMTo5MjAwIl0sImZnciI6IjM4NzYwMzA3NjUwYWQ5NjgyZTFlNDZmMDc3Y2ZhYjU0NTFiYjU2MjY0N2Q1ODhiYjlhNmJmZjcwNmI3NmZhODYiLCJrZXkiOiJPT1pIcFpjQkV4eFpZa1FmNWdTdToxbmR5bXowYkZYb21mUDc0N2V0U3JnIn0=
Cấu hình recovery cho cụm
Thêm recovery vào /etc/elasticsearch/elasticsearch.yml
trên server 1:
discovery.seed_hosts: - 192.168.65.11:9300 - 192.168.65.12:9300 - 192.168.65.13:9300
Trên server 2 và 3, chỉnh sửa /etc/elasticsearch/elasticsearch.yml
:
node.name: core-2 # core-3 cho server 3
network.host: 192.168.65.12 # 192.168.65.13 cho server 3
http.port: 9200
discovery.seed_hosts: - 192.168.65.11:9300 - 192.168.65.12:9300 - 192.168.65.13:9300
Kiểm tra lại trạng thái trên server 1:
curl -k -u elastic:truongitt https://192.168.65.11:9200/_cluster/health?pretty
curl -k -u elastic:truongitt https://192.168.65.11:9200/_cat/nodes
Kết quả ví dụ:
192.168.65.11 18 87 2 0.14 0.12 0.08 cdfhilmrstw * core-1
192.168.65.12 46 97 2 0.05 0.07 0.07 cdfhilmrstw - core-3
192.168.65.13 7 97 2 0.07 0.10 0.08 cdfhilmrstw - core-2
3. Kiểm tra HA
Dừng Elasticsearch trên server 1:
systemctl stop elasticsearch
Kiểm tra trạng thái trên server 2:
root@core-2:~# curl -k -u elastic:truongitt https://192.168.65.12:9200/_cat/nodes
192.168.65.13 51 97 1 0.22 0.15 0.16 cdfhilmrstw * core-2
192.168.65.12 46 83 2 0.11 0.13 0.12 cdfhilmrstw - core-3
4. Triển khai Kibana
Cập nhật và cài đặt Kibana:
sudo apt-get update && sudo apt-get install kibana
Cấu hình Kibana trên server 1
Tạo thư mục chứng chỉ và sao chép:
mkdir /etc/kibana/certs
cp /etc/elasticsearch/certs/http_ca.crt /etc/kibana/certs/
ls /etc/kibana/certs/
Tạo chứng chỉ SSL:
chown -R kibana:kibana /etc/kibana
openssl req -newkey rsa:4096 -nodes -sha256 \ -keyout /etc/kibana/certs/domain.key \ -subj "/CN=192.168.213.11" \ -addext "subjectAltName=DNS:192.168.65.11,IP:192.168.65.11" \ -x509 -days 365 \ -out /etc/kibana/certs/domain.crt
Chỉnh sửa tệp /etc/kibana/kibana.yml
:
vi /etc/kibana/kibana.yml
Thêm nội dung sau:
server.port: 5601
server.host: "0.0.0.0"
server.publicBaseUrl: "https://192.168.65.11:5601/" server.ssl.enabled: true
server.ssl.certificate: /etc/kibana/certs/domain.crt
server.ssl.key: /etc/kibana/certs/domain.key elasticsearch.hosts: - https://192.168.65.11:9200 - https://192.168.65.12:9200 - https://192.168.65.13:9200 elasticsearch.ssl.certificate: /etc/kibana/certs/domain.crt
elasticsearch.ssl.key: /etc/kibana/certs/domain.key
elasticsearch.ssl.certificateAuthorities: [ "/etc/kibana/certs/http_ca.crt" ]
elasticsearch.ssl.verificationMode: full
Tích hợp Kibana với Elasticsearch
Lấy token để join Kibana vào cụm:
curl -k -X POST -u elastic:truongitt \ https://192.168.65.11:9200/_security/service/elastic/kibana/credential/token/kibana_token
Kết quả ví dụ:
{"created":true,"token":{"name":"kibana_token","value":"AAEAAWVsYXN0aWMva2liYW5hL2tpYmFuYV90b2tlbjpENTdoX0psNlJJMnc0LTh6dWxudDFn"}}
Thêm token vào Kibana:
cd /usr/share/kibana/bin
./kibana-keystore add elasticsearch.serviceAccountToken
Nhập: AAEAAWVsYXN0aWMva2liYW5hL2tpYmFuYV90b2tlbjpENTdoX0psNlJJMnc0LTh6dWxudDFn
Khởi động Kibana và kiểm tra:
systemctl start kibana
netstat -tlpun
Truy cập: https://192.168.65.11:5601
Tài khoản: elastic
Mật khẩu: truongitt
5. Thử nghiệm với dữ liệu
Tạo index và thêm dữ liệu:
PUT truongittindex POST truongittindex/_doc
{"name":"hihi xin chao cac ban"} GET _cat/shards/truongittindex GET /truongittindex/_settings PUT /truongittindex/_settings
{ "index": { "number_of_replicas": "2" }
}
6. Hoàn thành
Chúc mừng bạn đã hoàn thành cấu hình Elasticsearch high available với ba server và tích hợp Kibana , hệ thống này đảm bảo khả năng chịu lỗi cao và cung cấp giao diện trực quan để quản lý dữ liệu. Hãy tiếp tục giám sát và tối ưu hóa để duy trì hiệu suất ổn định !!!