paint-brush
Hướng dẫn chạy Grafana Mimir với MinIO để lưu trữ số liệu liên tụcby@minio
9,028
9,028

Hướng dẫn chạy Grafana Mimir với MinIO để lưu trữ số liệu liên tục

MinIO8m2023/08/15
Read on Terminal Reader

Mimir lưu trữ dữ liệu trong bộ lưu trữ đối tượng để duy trì sự bền bỉ, cho phép nó tận dụng lợi thế của MinIO phổ biến, tiết kiệm chi phí và độ bền cao.
featured image - Hướng dẫn chạy Grafana Mimir với MinIO để lưu trữ số liệu liên tục
MinIO HackerNoon profile picture
0-item
1-item
2-item

Các hệ thống phân tán chứa rất nhiều bộ phận chuyển động và điều quan trọng là phải giám sát dữ liệu đo từ xa như số liệu, nhật ký và dấu vết để có được khả năng hiển thị và cho phép các nhóm xác định nguyên nhân cốt lõi của sự cố. Mục tiêu của nhiều sáng kiến về khả năng quan sát là tăng tính khả dụng và hiệu suất. Grafana Labs tạo ra một trong những ngăn xếp khả năng quan sát nguồn mở được sử dụng rộng rãi nhất (Grafana để trực quan hóa, Loki để ghi nhật ký, Mimir để chỉ số, Tempo để theo dõi, Alertmanager để cảnh báo) và bán Grafana CloudGrafana Enterprise .


Grafana Mimir là một dự án phần mềm nguồn mở được cấp phép AGPLv3, khi được kết hợp với MinIO, sẽ cung cấp khả năng lưu trữ dài hạn, có thể mở rộng cho các chỉ số Prometheus. Mimir được xây dựng bằng kiến trúc dựa trên vi dịch vụ có khả năng mở rộng theo chiều ngang. Mỗi microservice được gọi là một thành phần và Mimir chạy dưới dạng một tệp nhị phân duy nhất được tạo thành từ các thành phần này. Hầu hết các thành phần đều không có trạng thái và không yêu cầu bất kỳ dữ liệu nào được duy trì giữa các lần khởi động lại.


Khi bạn kết hợp Mimir và MinIO, bạn tạo ra một cơ sở hạ tầng đặc biệt phù hợp để đáp ứng nhu cầu về khả năng quan sát dựa trên đám mây của doanh nghiệp với:


  • Hiệu suất: Sự kết hợp giữa khả năng mở rộng và hiệu suất cao của MinIO đặt mọi khối lượng công việc, bất kể yêu cầu cao đến đâu, trong tầm tay. MinIO có khả năng đạt hiệu suất cực cao - điểm chuẩn gần đây đạt được là 325 GiB/giây (349 GB/giây) trên GET và 165 GiB/giây (177 GB/giây) trên PUT chỉ với 32 nút SSD NVMe bán sẵn.


  • Quy mô: MinIO không biết giới hạn vì nó quy mô theo chiều ngang thông qua các nhóm máy chủ. Mỗi nhóm máy chủ là một nhóm nút độc lập có tài nguyên điện toán, mạng và lưu trữ riêng. Trong cấu hình nhiều đối tượng thuê, mỗi đối tượng thuê là một cụm nhóm máy chủ trong một không gian tên duy nhất, được cách ly hoàn toàn với nhóm máy chủ của các đối tượng thuê khác. Dung lượng có thể dễ dàng được thêm vào một hệ thống hiện có bằng cách trỏ MinIO vào một nhóm máy chủ mới và MinIO sẽ tự động chuẩn bị và đưa nó vào hoạt động.


  • Tính đơn giản: Nếu bạn muốn sử dụng Mimir hơn là dành hàng giờ để loay hoay với bộ nhớ đối tượng, thì bạn không thể tìm thấy giải pháp nào đơn giản hơn MinIO. MinIO chỉ phục vụ các đối tượng - đó là tất cả những gì chúng tôi làm và chúng tôi bị ám ảnh về việc trở thành người giỏi nhất. Các sản phẩm khác kết hợp lưu trữ đối tượng và tệp, dẫn đến nhiều lớp lưu trữ gây ra độ trễ cho thời gian phản hồi truy vấn của Mimir và tạo ra một kiến trúc phức tạp hơn với khả năng xảy ra lỗi cao hơn..


  • Đa đám mây: MinIO, được sinh ra trên đám mây, chạy mọi nơi trên mọi sự kết hợp giữa phần cứng và phần mềm. Một tập hợp tích hợp phong phú có nghĩa là MinIO kết nối một cách minh bạch với các công cụ và dịch vụ quản lý và bảo mật hiện có để tập trung hóa việc quản lý danh tính, quản lý khóa mã hóa, v.v. MinIO cung cấp lưu trữ đối tượng tương thích API S3 trên baremetal hoặc bất kỳ phiên bản Kubernetes nào - bao gồm GKE, EKS, AKS, Red Hat OpenShift, VMware Tanzu - và đồng bộ hóa dữ liệu hiệu quả bằng cách sử dụng sao chép chủ động-hoạt động .


Một số thế mạnh cốt lõi của Grafana Mimir bao gồm:


  • Dễ cài đặt và bảo trì: Tài liệu, hướng dẫn và công cụ triển khai phong phú của Grafana Mimir giúp bạn bắt đầu nhanh chóng. Sử dụng chế độ nguyên khối của nó, bạn có thể thiết lập và chạy Grafana Mimir chỉ với một tệp nhị phân và không có phụ thuộc bổ sung. Sau khi được triển khai, các bảng điều khiển, cảnh báo và sách hướng dẫn thực hành tốt nhất được đóng gói cùng với Grafana Mimir giúp bạn dễ dàng theo dõi tình trạng của hệ thống.


  • Khả năng mở rộng lớn: Bạn có thể chạy kiến trúc có thể mở rộng theo chiều ngang của Grafana Mimir trên nhiều máy, dẫn đến khả năng xử lý các chuỗi thời gian có cường độ lớn hơn so với một phiên bản Prometheus đơn lẻ. Thử nghiệm nội bộ cho thấy Grafana Mimir xử lý tới 1 tỷ chuỗi thời gian hoạt động.


  • Chế độ xem số liệu toàn cầu: Grafana Mimir cho phép bạn chạy các truy vấn tổng hợp chuỗi từ nhiều phiên bản Prometheus, cung cấp cho bạn chế độ xem toàn cầu về hệ thống của bạn. Công cụ truy vấn của nó song song hóa rộng rãi việc thực thi truy vấn, để ngay cả những truy vấn có số lượng truy vấn cao nhất cũng hoàn thành với tốc độ cực nhanh.


  • Lưu trữ số liệu bền, rẻ: Grafana Mimir sử dụng lưu trữ đối tượng để lưu trữ dữ liệu dài hạn, cho phép nó tận dụng lợi thế của công nghệ có độ bền cao, phổ biến, tiết kiệm chi phí này. Nó tương thích với nhiều triển khai kho đối tượng, bao gồm AWS S3, Google Cloud Storage, Azure Blob Storage, OpenStack Swift, cũng như bất kỳ kho lưu trữ đối tượng nào tương thích với S3.


  • Tính sẵn sàng cao: Grafana Mimir sao chép các số liệu đến, đảm bảo rằng không có dữ liệu nào bị mất trong trường hợp máy gặp sự cố. Kiến trúc có thể mở rộng theo chiều ngang của nó cũng có nghĩa là nó có thể được khởi động lại, nâng cấp hoặc hạ cấp mà không có thời gian ngừng hoạt động, nghĩa là không bị gián đoạn khi nhập hoặc truy vấn chỉ số.


  • Nhiều đối tượng thuê: Kiến trúc nhiều đối tượng thuê của Grafana Mimir cho phép bạn tách biệt dữ liệu và truy vấn khỏi các nhóm hoặc đơn vị kinh doanh độc lập, giúp các nhóm này có thể chia sẻ cùng một cụm. Các giới hạn nâng cao và kiểm soát chất lượng dịch vụ đảm bảo rằng dung lượng được chia sẻ công bằng giữa những người thuê.


Mimir được phát triển để trở thành cơ sở dữ liệu chuỗi thời gian nguồn mở hiệu quả nhất, có thể mở rộng nhất hiện có. Mimir dễ dàng mở rộng tới 1 tỷ chỉ số và hơn thế nữa, với hiệu suất truy vấn cực nhanh nhanh hơn tới 40 lần so với Cortex, TSDB Mimir được tạo ra để thay thế. Cortex là một dự án CNCF từ năm 2018 và được sử dụng rộng rãi để lưu trữ các chỉ số Prometheus. Khi tạo Mimir, Grafana Labs đã đặt nền tảng cho khả năng quan sát sẵn sàng cho doanh nghiệp với giấy phép AGPLv3, kiểm soát truy cập và cải thiện hiệu suất, khả năng mở rộng và tính khả dụng.


Grafana Labs có một mục tiêu cho Mimir: Trở thành cơ sở dữ liệu chuỗi thời gian có khả năng mở rộng tốt nhất bất kể định dạng số liệu. Các doanh nghiệp có thể sử dụng các chỉ số Prometheus (và các chỉ số khác khi các nhà cung cấp khác cộng tác) mà không cần sửa đổi mã hiện có.


Bây giờ chúng ta đã biết Mimir là gì, hãy xem qua phần hướng dẫn giới thiệu.

Hướng dẫn Grafana Mimir và MinIO

Hướng dẫn này dựa trên hướng dẫn hiện có, Chơi với Grafana Mimir để cho thấy việc bắt đầu với Mimir bằng Docker dễ dàng như thế nào.


Tạo một bản sao của kho lưu trữ Grafana Mimir bằng dòng lệnh Git:

 git clone https://github.com/grafana/mimir.git


Điều hướng đến thư mục hướng dẫn:

 cd mimir/docs/sources/tutorials/play-with-grafana-mimir/


Bắt đầu MinIO, Mimir, Prometheus, Grafana và NGINX

 docker compose up


Điều này sẽ đưa ra những điều sau đây:


  • Grafana Mimir - ba phiên bản Mimir để có tính sẵn sàng cao. Cho phép nhiều người thuê (ID đối tượng thuê là minh họa).
  • Prometheus - loại bỏ các số liệu của Mimir, sau đó ghi chúng lại cho Mimir để chúng có sẵn
  • MinIO - Lưu trữ liên tục được xác định bằng phần mềm tương thích với S3 cho các khối, quy tắc và cảnh báo
  • Grafana - bao gồm nguồn dữ liệu được cài đặt sẵn để truy vấn Mimir và bảng điều khiển được cài đặt sẵn để theo dõi Mimir
  • Load Balancer - Cân bằng tải dựa trên NGINX hiển thị các phiên bản Mimir


Các cổng sau được sử dụng:





Nếu bạn muốn tìm hiểu sâu hơn về bất kỳ cấu hình nào được sử dụng trong hướng dẫn này, vui lòng xem các tệp YAML được lưu vào

 ~/mimir/docs/sources/tutorials/play-with-grafana-mimir/config/ 



Để truy cập Grafana, hãy khởi chạy trình duyệt và mở http://localhost:9000 . Bạn sẽ sử dụng Grafana để xem bảng điều khiển hiển thị trạng thái của cụm Mimir. Bảng thông tin truy vấn Mimir về số liệu mà chúng hiển thị. Từ trình đơn ở trên cùng bên trái, hãy nhấp vào Trang tổng quan, sau đó nhấp vào Duyệt để xem các trang tổng quan đã được tải sẵn cho hướng dẫn. Các bảng điều khiển này là từ mixin Grafana Mimir, kết hợp các bảng thông tin thực hành tốt nhất của Grafana Labs, quy tắc ghi và cảnh báo để theo dõi Mimir.



Thường mất 3-5 phút sau khi chúng tôi khởi chạy vùng chứa hướng dẫn của mình để các số liệu được hiển thị trong bảng điều khiển Grafana. Chúng tôi cũng đang chạy Mimir mà không có cổng vào, bộ lập lịch truy vấn hoặc bộ nhớ đệm, vì vậy các bảng thông tin liên quan sẽ trống.



Ở giai đoạn đầu học Mimir này, hãy bắt đầu bằng cách duyệt bảng điều khiển để ghi, đọc, truy vấn và lưu trữ đối tượng. Ví dụ: bảng điều khiển cửa hàng đối tượng hiển thị các hoạt động đã diễn ra kể từ khi chúng tôi đưa Mimir lên.


Định cấu hình Quy tắc ghi

Quy tắc ghi là một cơ chế tính toán trước các biểu thức thường xuyên cần thiết hoặc tính toán tốn kém và lưu kết quả dưới dạng một chuỗi thời gian mới. Thực hiện theo các hướng dẫn này để định cấu hình quy tắc ghi trong Mimir bằng Grafana.


Quy tắc ghi sum:up này sẽ hiển thị số lượng phiên bản Mimir đang hoạt động và có thể truy cập được để loại bỏ. Sau khi quy tắc được tạo, quy tắc sẽ có sẵn để truy vấn và đưa vào trang tổng quan.


Mở menu Cảnh báo từ thanh công cụ bên trái và nhấp vào “Quy tắc cảnh báo mới”:



Nhập thông tin sau để định cấu hình quy tắc ghi:


  1. Chọn Mimir or Loki recording rule
  2. Cấu hình như sau:
  3. Tên quy tắc = sum:up
  4. Chọn Mimir trong trường Chọn nguồn dữ liệu
  5. Không gian tên = example-namespace
  6. Nhóm = example-group
  7. Biểu thức truy vấn = sum(up)
  8. Chọn Lưu và Thoát ở góc trên bên phải.


Để xác minh rằng quy tắc ghi mới của bạn chạy chính xác, hãy mở Khám phá từ menu bên trái:



Trong trình đơn thả xuống Chỉ số, chọn sum:up , sau đó nhấp vào Chạy truy vấn từ trên cùng bên phải, sau đó nhấp vào nút Trình kiểm tra. Bên dưới, nhấp vào Dữ liệu để xem danh sách thời gian và kết quả truy vấn. Kết quả phải là “3”, chỉ ra rằng ba phiên bản cục bộ của Mimir đang hoạt động.


Định cấu hình Quy tắc cảnh báo

Các quy tắc cảnh báo được xây dựng trên Mimir tuân theo định dạng PromQL giống như các quy tắc được xây dựng trên Prometheus và Loki. Grafana đánh giá biểu thức và, nếu cần, đưa ra cảnh báo bằng Alertmanager. Chúng tôi đã tìm hiểu vấn đề này khá sâu trong một bài đăng trên blog trước đó, Giám sát và cảnh báo trên nhiều đám mây với Prometheus và Grafana .


Chúng tôi sẽ tạo một cảnh báo kích hoạt khi số phiên bản Mimir giảm xuống dưới ba.


Trong menu bên trái, hãy di chuột qua Cảnh báo rồi nhấp vào Quy tắc cảnh báo mới.



  1. Chọn Mimir or Loki alert
  2. Cấu hình như sau:
  3. Tên quy tắc = MimirNotRunning
  4. Chọn Mimir trong trường Chọn nguồn dữ liệu
  5. Không gian tên = example-namespace
  6. Nhóm = example-group
  7. Biểu thức truy vấn = up == 0
  8. Chọn Lưu và Thoát ở góc trên bên phải.


Điều hướng đến trang Cảnh báo và bạn sẽ thấy quy tắc ghi âm và quy tắc cảnh báo Mimir của chúng tôi. Lưu ý rằng có một trạng thái Bình thường màu xanh lục đẹp mắt, to và dễ chịu được hiển thị bên cạnh cảnh báo vì tất cả các thùng chứa Mimir của chúng tôi vẫn đang chạy.



Chúng tôi sẽ mô phỏng tình trạng lỗi bằng cách chấm dứt một trong ba phiên bản Mimir (đảm bảo rằng bạn đang ở trong ~/mimir/docs/sources/tutorials/play-with-grafana-mimir :

 docker compose kill mimir-3


Khi chúng tôi đột ngột chấm dứt một phiên bản Mimir, sẽ có một khoảng thời gian ngắn Grafana hiển thị lỗi trong khi truy vấn các quy tắc. Điều này sẽ tự động giải quyết ngay khi kiểm tra sức khỏe nội bộ của Mimir phát hiện phiên bản bị chấm dứt là không lành mạnh.


Trong khoảng một phút, cảnh báo sẽ nhanh chóng chỉ ra trạng thái Đang chờ xử lý màu vàng.


Sau một phút nữa, cảnh báo sẽ chuyển sang trạng thái Bắn màu đỏ:


Nếu chúng tôi đã định cấu hình Alertmanager với các kênh thông báo, các cảnh báo sẽ được chuyển đến cơ chế và liên hệ thích hợp. Vui lòng xem Giám sát và cảnh báo nhiều đám mây với Prometheus và Grafana để biết hướng dẫn.


Trước khi chúng tôi sao lưu phiên bản Mimir đã kết thúc của mình, hãy quay lại trang Khám phá trong Grafana và truy vấn quy tắc ghi sum:up của chúng tôi. Chúng ta có thể thấy rằng Mimir tiếp tục ghi lại các số liệu mặc dù phiên bản Mimir không hoạt động.



Cuối cùng, sao lưu phiên bản Mimir:

 docker compose start mimir-3


Quay lại trang Cảnh báo và nhận thấy rằng trạng thái cảnh báo của chúng tôi đã trở lại Bình thường.

Phần kết luận

Trong hướng dẫn này, bạn đã học cách chạy Grafana Mimir và MinIO ở cấu hình có tính khả dụng cao. Chúng tôi sử dụng các số liệu Prometheus từ chính Mimir, sau đó truy vấn và hiển thị chúng trong Grafana. Chúng tôi cũng đã định cấu hình quy tắc ghi và cảnh báo, đồng thời xác minh rằng cảnh báo được kích hoạt như mong đợi khi đáp ứng điều kiện.


Bạn cũng có thể định cấu hình Mimir và Grafana để loại bỏ các chỉ số Prometheus từ MinIO và kích hoạt cảnh báo qua AlertManager. Mimir lưu trữ dữ liệu trong bộ lưu trữ đối tượng để duy trì sự bền bỉ, cho phép nó tận dụng lợi thế của MinIO phổ biến, tiết kiệm chi phí và độ bền cao.


Hãy thử Grafana Mimir! Nếu bạn có thắc mắc, vui lòng tham gia kênh Slack của chúng tôi hoặc gửi email cho chúng tôi theo địa chỉ [email protected].


Cũng được xuất bản ở đây .