Saturday, September 28, 2024

Quản trị shard Elasicsearch với Cerebro

-

1. Giới thiệu.

Shard là gì?

Shard là một phần nhỏ của một cơ sở dữ liệu hoặc một tập dữ liệu lớn. Khi dữ liệu được chia thành nhiều shard, mỗi shard chứa một phần của dữ liệu tổng thể. Việc chia dữ liệu thành các shard giúp cải thiện hiệu suất và khả năng mở rộng của hệ thống.

Lợi ích của Sharding

  • Khả năng mở rộng: Sharding cho phép hệ thống mở rộng dễ dàng bằng cách thêm nhiều shard hơn khi dữ liệu tăng lên.
  • Hiệu suất: Bằng cách phân chia dữ liệu, các truy vấn có thể được thực hiện song song trên nhiều shard, giảm tải và tăng tốc độ truy vấn.
  • Quản lý dữ liệu lớn: Sharding giúp quản lý và lưu trữ dữ liệu lớn một cách hiệu quả hơn.

Ví dụ về Sharding.

  • Elasticsearch: Elasticsearch sử dụng sharding để phân chia dữ liệu trên nhiều node, giúp cải thiện hiệu suất tìm kiếm và khả năng mở rộng.
  • MongoDB: MongoDB sử dụng sharding để phân chia dữ liệu trên nhiều server, giúp quản lý dữ liệu lớn và tăng cường hiệu suất truy vấn.

Cerebro là gì?

Cerebro là một công cụ hữu ích cho bất kỳ ai sử dụng Elasticsearch, cho dù bạn là người mới bắt đầu hay chuyên gia.Nó có thể giúp bạn tiết kiệm thời gian và công sức bằng cách cung cấp một cách dễ dàng để quản lý và giám sát cụm Elasticsearch của bạn.

  • Xem và quản lý các chỉ mục và mẫu
  • Thực hiện các truy vấn Elasticsearch
  • Xem và phân tích dữ liệu
  • Quản lý người dùng và quyền
  • Giám sát hiệu suất cụm

Cerebro là một công cụ hữu ích cho bất kỳ ai sử dụng Elasticsearch, cho dù bạn là người mới bắt đầu hay chuyên gia.Nó có thể giúp bạn tiết kiệm thời gian và công sức bằng cách cung cấp một cách dễ dàng để quản lý và giám sát cụm Elasticsearch của bạn.

Các tính năng chính

  • Giao diện người dùng trực quan và dễ sử dụng
  • Hỗ trợ đầy đủ cho tất cả các tính năng của Elasticsearch
  • Khả năng quản lý nhiều cụm Elasticsearch
  • Tính năng giám sát hiệu suất mạnh mẽ
  • Hỗ trợ truy vấn SQL
  • Khả năng tạo biểu đồ và trực quan hóa dữ liệu
  • Hỗ trợ nhiều ngôn ngữ

2. Cài đặt và cấu hình Cerebro.

Hãy tạo thư mục chứa config Kibana trên cả 3 node Master.

mkdir -p /opt/cerebro
cd /opt/cerebro

Tạo file docker-compose.yml trên cả Master Node.

cat > /opt/cerebro/docker-compose.yml << 'OEF'
services:
    cerebro:
        container_name: cerebro
        image: lmenezes/cerebro:0.9.4
        ports:
            - "9000:9000"
        command:
            - -Dhosts.0.host=http://10.237.7.81:9200
            - -Dhosts.1.host=http://10.237.7.82:9200
            - -Dhosts.2.host=http://10.237.7.83:9200
OEF

Chạy Docker Compose trên cả 3 node.

docker-compose -f /opt/cerebro/docker-compose.yml up -d

Sau khi chạy xong Docker Compose, bạn thấy port 9000 đã listen tại máy host.

shell> netstat -tlnp | grep 9000
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      509081/docker-proxy
tcp6       0      0 :::9000                 :::*                    LISTEN      509089/docker-proxy

Thêm nội dung upstream sau vào /etc/nginx/conf.d/lb-cerebro.conf.

    upstream cerebro {
        server 10.237.7.81:9000;
        server 10.237.7.82:9000;
        server 10.237.7.83:9000;
        keepalive 15;
    }

Tạo file và đưa nội dung như dưới vo file /etc/nginx/conf.d/lb-cerebro.conf để reverse proxy sử dụng cho Cerebro.

cat > /etc/nginx/conf.d/lb-cerebro.conf << 'OEF'
upstream cerebro {
    server 10.237.7.81:9000;
    server 10.237.7.82:9000;
    server 10.237.7.83:9000;
    keepalive 15;
}

server {
    listen 80;
    proxy_redirect off;
    server_name cerebro.hoanghd.com;
    location / {
        proxy_pass http://cerebro/;
        proxy_redirect off;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Connection "Keep-Alive";
        proxy_set_header Proxy-Connection "Keep-Alive";
    }
}
OEF

Check cú pháp Nginx.

shell> nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Không có lỗi cú pháp, chạy tiếp nginx -s reload để áp dụng config mới.

nginx -s reload

3. Truy cập Cerebro.

Sau khi cài đặt Cerebro, bạn có thể truy cập nó bằng trình duyệt web của mình tại http://cerebro.hoanghd.com, bạn sẽ cần phải nhập địa chỉ IP hoặc tên miền của cụm Elasticsearch của mình để kết nối.

Hãy click vào 1 cluster mà bạn muốn quản lý shard, nhập thông tin đăng nhập và bấm Authenticate.

Và đây là kết quả.

Đây là thông tin resource các node.

4. Cách sử dụng.

Để sử dụng Cerebro, bạn cần cài đặt nó trên máy chủ có thể truy cập vào cụm Elasticsearch của bạn. Bạn có thể cài đặt Cerebro bằng Docker hoặc bằng cách tải xuống tệp nhị phân từ trang web Cerebro.

Ví dụ về di chuyển Shard trong Elasticsearch sử dụng Cerebro.

Cerebro cung cấp giao diện trực quan để di chuyển shard giữa các node trong cụm Elasticsearch. Dưới đây là ví dụ cách thực hiện:

Truy cập Cerebro và kết nối với cụm Elasticsearch.

Mở Cerebro trong trình duyệt web và kết nối với cụm Elasticsearch của bạn. Đảm bảo bạn có quyền truy cập thích hợp để thực hiện thao tác di chuyển shard.

Xác định shard cần di chuyển.

Điều hướng đến tab “Indices” trong Cerebro. Danh sách các chỉ mục trong cụm sẽ được hiển thị. Chọn chỉ mục chứa shard bạn muốn di chuyển.

Mở trang quản lý shard.

Nhấp vào tên của chỉ mục để mở trang quản lý chi tiết. Danh sách các shard thuộc về chỉ mục sẽ được hiển thị, bao gồm trạng thái, kích thước và vị trí hiện tại của shard.

Chọn shard cần di chuyển.

Đánh dấu chọn shard bạn muốn di chuyển. Bạn có thể chọn nhiều shard cùng lúc.

Bắt đầu di chuyển shard.

Nhấp vào nút “Move Shards”. Cerebro sẽ hiển thị một cửa sổ bật lên cho phép bạn chọn node đích cho shard.

Chọn node đích.

Chọn node đích từ danh sách các node có sẵn trong cụm. Đảm bảo node đích có đủ dung lượng lưu trữ để chứa shard.

Bắt đầu di chuyển.

Nhấp vào nút “Move” để bắt đầu di chuyển shard. Cerebro sẽ hiển thị tiến trình di chuyển trong thời gian thực.

Giám sát tiến trình di chuyển.

Theo dõi tiến trình di chuyển trong tab “Indices”. Trạng thái của shard sẽ được cập nhật khi di chuyển diễn ra.

Lưu ý:

  • Quá trình di chuyển shard có thể mất thời gian tùy thuộc vào kích thước của shard và hiệu suất của cụm.
  • Không nên di chuyển shard trong khi đang sử dụng.
  • Đảm bảo dung lượng lưu trữ đủ trên node đích trước khi di chuyển shard.

Lợi ích

Sử dụng Cerebro có một số lợi ích, bao gồm:

  • Dễ dàng quản lý các cụm Elasticsearch
  • Cải thiện hiệu quả của bạn
  • Có được hiểu biết sâu sắc hơn về dữ liệu của bạn
  • Xác định và giải quyết các vấn đề
  • Giảm thiểu thời gian chết

Lời khuyên

  • Sử dụng Cerebro để tạo tài liệu cho cụm Elasticsearch của bạn để dễ dàng quản lý và chia sẻ cấu hình của bạn.
  • Sử dụng tính năng giám sát hiệu suất của Cerebro để theo dõi hiệu suất của cụm Elasticsearch của bạn và xác định các vấn đề tiềm ẩn.
  • Sử dụng tính năng truy vấn SQL của Cerebro để truy vấn dữ liệu Elasticsearch của bạn một cách dễ dàng mà không cần phải tìm hiểu ngôn ngữ truy vấn Elasticsearch.
  • Sử dụng tính năng tạo biểu đồ và trực quan hóa dữ liệu của Cerebro để hiểu rõ hơn về dữ liệu của bạn.

5. Kết luận.

Cerebro là một công cụ mạnh mẽ và dễ sử dụng để quản lý và giám sát Elasticsearch. Nó có thể giúp bạn tiết kiệm thời gian và công sức, đồng thời cung cấp cho bạn hiểu biết sâu sắc hơn về dữ liệu của bạn.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories