- vừa được xem lúc

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

0 0 4

Người đăng: TruongItt

Theo Viblo Asia

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

Bình luận

Bài viết tương tự

- vừa được xem lúc

Elasticsearch là gì ?

. Lời nói đầu. Elasticsearch là gì .

0 0 43

- vừa được xem lúc

Backup và Restore Elasticsearch snapshot với AWS S3 trong Kubernetes

Ở công ty mình vừa có mấy task devops liên quan đến scaling, clustering Elasticsearch nên viết lại đề phòng sau này cần dùng. Có một task là chuyển dữ liệu từ single-node Elasticsearch cũ lên cluster mới.

0 0 60

- vừa được xem lúc

Reindex Elasticsearch data with zero downtime

Elasticsearch là một search engine tuyệt vời cho mọi dự án muốn áp dụng chức năng search cho sản phẩm của mình, với những tính năng như là near-realtime search, auto-complete, suggestion,.... Cùng với đó là lợi thế kiến trúc distributed search system, có thể dễ dàng scaling, failing handle. Khi muốn

0 0 46

- vừa được xem lúc

Fork you ElasticSearch! How Open Source Works

ElasticSearch recently dropped its open-source licensing strategy, prompting AWS to fork it. Learn how "Open Source" actually works and how companies profit from it.

0 0 72

- vừa được xem lúc

Tìm hiểu Text và Keyword trong Elasticsearch

Giới thiệu. Khi mình mới bắt đầu tìm hiểu về Elasticsearch mình không nghĩ rằng giữa kiểu dữ liệu Text và Keyword có sự khác nhau nhưng khi vào dự án thực tế mình mới nhận ra được sự khác biệt giữa 2

0 0 150

- vừa được xem lúc

Tìm hiểu và cài đặt Elasticsearch

Elasticsearch là gì. Elasticsearch cung cấp công cụ tìm tiếm và phân tích gần như là thời gian thực, áp dụng với mọi kiểu dữ liệu - văn bản có cấu trúc hoặc phi cấu trúc, số, thông tin địa lý.

0 0 126