0

Hướng Dẫn Cấu Hình Elasticsearch High Availability và Kibana full setup

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

status curl

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

check helalthy pretty

node join sucess

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

access kibana

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

sucess full setup

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 !!!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí