Quy trình thiết lập và cập nhật Elasticsearch Cluster: Đọc, Lập kế hoạch và Thử nghiệm

Thiết lập và sau đó cập nhật các cụm Elasticsearch là một quá trình nhạy cảm và dễ xảy ra lỗi. Sau một thời gian làm việc với ELK Stack, chúng tôi biết một số quy trình vì chúng tôi đầu tư rất nhiều thời gian cho kỹ thuật để đảm bảo rằng phiên bản Elasticsearch và các plugin của chúng tôi luôn được cập nhật.

Vì vậy, để giúp những người đang duy trì cài đặt Elasticsearch của riêng họ, tôi muốn cung cấp danh sách kiểm tra nhanh các mẹo mà các kỹ sư DevOps và quản trị viên hệ thống cần nhớ khi họ nâng cấp các cụm Elasticsearch. Tóm lại, nó là một quy trình gồm ba bước: Đọc, Lập kế hoạch và Thử nghiệm.

Đọc trước khi cập nhật Elasticsearch Cluster

Điều quan trọng là phải đọc trước khi bạn bắt đầu lập kế hoạch. Đầu tiên, hãy đọc tài liệu Elasticsearch liên quan đến các bản nâng cấp - nó khá đơn giản.

Nhưng hãy nhớ quy tắc ngón tay cái này: Các thay đổi phiên bản nhỏ (từ 2.X lên 2.Y) hỗ trợ nâng cấp luân phiên (mỗi lần một nút), nhưng các bản cập nhật phiên bản lớn (từ 1.X lên 2.X) yêu cầu toàn bộ cụm khởi động lại.

Thứ hai, người ta phải luôn tham khảo các trang thay đổi đột phá (xem thanh bên bên phải) có liên quan đến mọi phiên bản đang được nâng cấp. Elastic cung cấp các bước cơ bản để nâng cấp luân phiên cũng như nâng cấp toàn bộ cụm trong tài liệu của họ.

Sau đây, tôi sẽ hướng dẫn bạn một số điểm cần xem xét khi nâng cấp cụm của bạn và cố gắng giúp bạn tránh một số sai lầm mà chúng tôi đã học được từ quá trình làm việc chăm chỉ.

Lập kế hoạch cập nhật Elasticsearch Cluster

Điều đầu tiên cần làm khi lập kế hoạch nâng cấp cụm Elasticsearch của bạn là chuẩn bị kiểm kê cụm. Sử dụng phương pháp tiếp cận từ trên xuống dưới và trả lời các câu hỏi sau:

  • Bạn đang sử dụng loại nút nào (master node, data node hoặc client node)?
  • Mỗi loại có bao nhiêu nút?
  • Những plugin nào và những phiên bản nào được cài đặt trên mỗi nút?
  • Cấu hình bầu cử master node của bạn (các master node tối thiểu) có hợp lý không?
  • Bạn có đủ dung lượng ổ đĩa trên các data node của mình trong trường hợp một trong số chúng gặp sự cố không?

Trả lời những câu hỏi này để tự làm quen với cụm của bạn. Đảm bảo rằng bạn có kiến ​​thức tốt nhất có thể về điểm bắt đầu của cụm trước khi nâng cấp theo kế hoạch. Thông tin thu thập được trong quá trình kiểm kê này rất quan trọng trong quá trình lập kế hoạch.

Bước tiếp theo là lập một kế hoạch cấp cao cho việc nâng cấp. Bước đầu tiên trong kế hoạch này là tạo ảnh chụp nhanh dữ liệu của toàn bộ cụm của bạn (nếu có thể). Tùy thuộc vào trường hợp sử dụng của bạn, bạn có thể chỉ chụp nhanh một phần dữ liệu của mình hoặc bạn có thể phải chụp nhanh một phần dữ liệu trước và sau đó là phần khác ngay lập tức trước khi nâng cấp. Sử dụng phán đoán tốt nhất của bạn, nhưng hãy đảm bảo bảo vệ dữ liệu của bạn.

Đảm bảo rằng các tệp hoặc gói phiên bản mục tiêu của bạn có thể truy cập được từ cụm của bạn và đừng quên cập nhật tất cả các plugin của bạn lên phiên bản mới nhất của chúng! Bạn không muốn nút bị hỏng và không thể khởi động nó trong khi cố gắng tìm phiên bản của một số plugin vào phút cuối. (Để được trợ giúp, tôi sẽ tham khảo hướng dẫn nâng cấp của Elastic.)

Hãy suy nghĩ cẩn thận về thứ tự mà bạn sẽ nâng cấp các nút của mình. Trước đây, chúng tôi đã bị ảnh hưởng bởi tác dụng phụ của việc không tạo thứ tự quy trình nâng cấp một cách cẩn thận. Chúng tôi đã nâng cấp các client node trước các data node, điều này dẫn tới các client node phải chịu tải rất lớn trong khi quá trình nâng cấp đang diễn ra vì không có đủ các data node được nâng cấp để chia sẻ tải.

Chúng tôi đề xuất một thứ tự nâng cấp bắt đầu từ các master node, rồi đến các data node và cuối cùng là các client node, nhưng hãy sử dụng phán đoán của riêng bạn và thực hiện kiểm tra trước. (Tùy thuộc vào phiên bản mà bạn đang nâng cấp, bạn sẽ cần biết những thay đổi cụ thể này).

Một cách nâng cấp hữu ích khác mà chúng tôi đang sử dụng là tạo một cụm mới và di chuyển dữ liệu sang cụm mới thay vì nâng cấp các nút hiện có.

Thử nghiệm nâng cấp Elasticsearch Cluster

Kiểm tra nâng cấp Elasticsearch Cluster của bạn

Staging là môi trường bạn sẽ tìm ra bất kỳ vấn đề nào - không phải môi trường sản xuất (production). Đây cũng là nơi bạn có thể hợp lý hóa quy trình của mình về quản lý rủi ro, thời gian và chi phí.

Tôi khuyên bạn nên thiết lập một cụm staging cho mục đích kiểm tra quy trình nâng cấp. Bất kỳ loại nút nào bạn có trong cụm mục tiêu của mình sẽ được đại diện trong cụm thử nghiệm của bạn, nhưng số lượng có thể thấp hơn. Trong hầu hết các trường hợp, không cần nhiều hơn ba master node, hai client node và một vài data node (tùy thuộc vào sơ đồ sao chép của bạn). Nếu có các nút đa mục đích trong cụm mục tiêu của bạn, chúng cũng nên được mô tả trong thử nghiệm.

Sử dụng ảnh chụp nhanh được tạo từ cụm mục tiêu của bạn để tải dữ liệu vào cụm thử nghiệm của bạn. Nếu cụm mục tiêu của bạn có tải cao, bạn cũng nên mô phỏng tải này so với cụm thử nghiệm của mình trong khi thực hành quy trình nâng cấp của mình.

Đảm bảo rằng cụm thử nghiệm của bạn (và các plugin của bạn!) Là phiên bản giống với cụm mục tiêu của bạn và cố gắng sử dụng các máy có đặc điểm hiệu suất càng giống với cụm mục tiêu của bạn càng tốt. (Mẹo: Nếu bạn đang nâng cấp từ bất kỳ phiên bản nào trên 1.6, hãy sử dụng tính năng xóa đồng bộ hóa để đặt các điểm đánh dấu trên các phân đoạn của bạn và tăng tốc đáng kể toàn bộ quá trình nâng cấp của bạn.)

Trong khi bạn đang thử nghiệm nâng cấp, hãy đảm bảo theo dõi cụm của bạn. Sử dụng các công cụ đo lường và giám sát phổ biến mà bạn cảm thấy thoải mái và cố gắng bắt chước các kết nối khách hàng của người dùng cuối và các trường hợp sử dụng để đo lường tác động của các bước nâng cấp khác nhau đối với trải nghiệm nhận thức của họ.

Dưới đây là một số điểm bắt đầu để xem xét:

  • Nhật ký Elasticsearch - Đảm bảo theo dõi bất kỳ thông báo nào khác thường trong tệp nhật ký Elasticsearch của bạn khi các tiến trình của bạn xuất hiện sau khi khởi động lại với phiên bản mới sau khi tiến trình nâng cấp hoàn thành.
  • Marvel - Đảm bảo rằng bạn xem xét việc sử dụng CPU, tải, sử dụng đĩa, tái định vị phân đoạn và sử dụng JVM Heap.
  • Sử dụng mạng

Bạn cũng có thể muốn làm mới kỹ thuật di dời phân đoạn thủ công của mình - và có thể tự động hóa nó. Chúng tôi nhận thấy rằng nó đôi khi hữu ích trong một số trường hợp phức tạp. Ngoài ra, hãy nhớ để ý các báo cáo về thời gian chờ, quá tải (dưới bất kỳ hình thức nào) hoặc bất kỳ tín hiệu quá tải nào mà cụm của bạn có thể đang hiển thị bởi vì những báo cáo này có xu hướng là tiền thân của việc ngắt kết nối nút Elasticsearch.

Như bạn có thể thấy, Elasticsearch có thể rất khó cài đặt và quản lý - đặc biệt khi phần mềm là một phần của toàn bộ triển khai ELK Stack. Tôi hy vọng những lời khuyên này sẽ giúp ích cho bạn.

ELK StackDevOpsElasticsearch
Bài Viết Liên Quan:
Khắc phục sự cố 5 lỗi ELK thường gặp
Trung Nguyen 10/07/2021
Khắc phục sự cố 5 lỗi ELK thường gặp

Trong bài viết này chúng tôi đã tổng hợp 5 lỗi ELK phổ biến nhất và hướng dẫn bạn cách khắc phục chúng một cách nhanh chóng.

5 sai lầm hàng đầu với Elasticsearch và cách tránh
Trung Nguyen 09/07/2021
5 sai lầm hàng đầu với Elasticsearch và cách tránh

Trong hướng dẫn này, chúng ta hãy xem xét kỹ hơn 5 trong số những sai lầm phổ biến và cách bạn có thể tránh mắc phải chúng.

10 khái niệm Elasticsearch bạn cần biết
Trung Nguyen 04/07/2021
10 khái niệm Elasticsearch bạn cần biết

Bài viết này cung cấp cho bạn 10 khái niệm quan trọng nhất trong Elasticsearch. Nắm được những khái niệm này giúp bạn bớt vất vả hơn khi học Elasticsearch.

Truy vấn Elasticsearch - Hướng dẫn chi tiết
Trung Nguyen 04/07/2021
Truy vấn Elasticsearch - Hướng dẫn chi tiết

Trong hướng dẫn này, chúng tôi sẽ giúp bạn các cách viết truy vấn Elasticsearch đầy đủ, chi tiết nhất. Giúp bạn tự tin khi làm việc với Elasticsearch.