Giới thiệu về Prometheus và Grafana

Spread the love

Prometheus là một hệ thống giám sát dựa trên số liệu mã nguồn mở. Nó thu thập dữ liệu từ các dịch vụ và máy chủ bằng cách gửi các yêu cầu HTTP trên các điểm cuối số liệu. Sau đó, nó lưu trữ kết quả trong cơ sở dữ liệu chuỗi thời gian và cung cấp kết quả để phân tích và cảnh báo.

Tại sao giám sát?

  • Bật cảnh báo khi có sự cố xảy ra, tốt nhất là trước khi chúng xảy ra sự cố. Để ai đó có thể nhìn vào nó.
  • Nó cung cấp cái nhìn sâu sắc để cho phép phân tích, gỡ lỗi và giải quyết vấn đề.
  • Nó cho phép bạn xem các xu hướng/thay đổi theo thời gian. Ví dụ: có bao nhiêu phiên hoạt động tại bất kỳ thời điểm nào. Điều này giúp trong các quyết định thiết kế và lập kế hoạch năng lực.

Giám sát thường liên quan đến các sự kiện. Một sự kiện có thể bao gồm nhận yêu cầu HTTP, gửi phản hồi, đọc từ đĩa, đăng nhập người dùng. Giám sát một hệ thống có thể bao gồm lập hồ sơ, ghi nhật ký, theo dõi, số liệu, cảnh báo & trực quan hóa.

Giám sát hộp đen so với hộp trắng

Giám sát thuộc hai loại chính:

giám sát hộp đen

Trong giám sát Hộp đen, giám sát ở cấp ứng dụng hoặc máy chủ khi chúng được quan sát từ bên ngoài. Điều này có thể khá hạn chế.

Giám sát hộp trắng

Giám sát hộp trắng có nghĩa là giám sát nội bộ của một dịch vụ. Nó sẽ hiển thị dữ liệu về trạng thái và hiệu suất của các thành phần bên trong.

Bốn tín hiệu vàng

Theo Googlenếu bạn chỉ có thể đo lường bốn chỉ số của hệ thống hướng tới người dùng của mình, hãy tập trung vào bốn chỉ số sau, được gọi là Bốn tín hiệu vàng:

#1. độ trễ

Thời gian cần thiết để phục vụ một yêu cầu – thành công hay thất bại. Điều quan trọng là phải theo dõi không chỉ các yêu cầu thành công mà cả những yêu cầu không thành công.

  11 tài nguyên hàng đầu cho Khoa học dữ liệu và Máy học

#2. Giao thông

Một thước đo lượng nhu cầu đang được đặt trên hệ thống của bạn. Đối với dịch vụ web, đây thường là yêu cầu HTTP mỗi giây.

#3. lỗi

Tỷ lệ yêu cầu không thành công.

#4. bão hòa

Dịch vụ của bạn đầy đủ như thế nào. Độ trễ tăng thường là một chỉ báo quan trọng về độ bão hòa. Nhiều hệ thống suy giảm hiệu suất rất nhiều trước khi chúng đạt được mức sử dụng 100%.

Các loại chỉ số Prometheus

Số liệu Prometheus có bốn loại chính:

#1. Phản đối

Giá trị của một bộ đếm sẽ luôn tăng lên. Nó không bao giờ có thể giảm, nhưng nó có thể được thiết lập lại bằng không. Vì vậy, nếu một lần cạo không thành công, điều đó chỉ có nghĩa là một điểm dữ liệu bị bỏ lỡ. Mức tăng tích lũy sẽ có sẵn ở lần đọc tiếp theo. Ví dụ:

  • Tổng số yêu cầu HTTP nhận được
  • Số lượng các trường hợp ngoại lệ.

#2. máy đo

Một thước đo là một ảnh chụp nhanh tại bất kỳ thời điểm nào. Nó có thể tăng hoặc giảm cả hai. Nếu tìm nạp dữ liệu không thành công, bạn sẽ mất một mẫu; lần tìm nạp tiếp theo có thể hiển thị một giá trị khác: ví dụ về dung lượng ổ đĩa, mức sử dụng bộ nhớ.

#3. Biểu đồ

Biểu đồ lấy mẫu các quan sát và đếm chúng trong các nhóm có thể định cấu hình. Chúng được sử dụng cho những thứ như thời lượng yêu cầu hoặc kích thước phản hồi. Ví dụ: bạn có thể đo thời lượng yêu cầu cho một yêu cầu HTTP cụ thể. Biểu đồ sẽ có một tập hợp các nhóm, chẳng hạn như 1ms, 10 ms và 25ms. Thay vì lưu trữ mọi khoảng thời gian cho mọi yêu cầu, Prometheus sẽ lưu trữ tần suất của các yêu cầu rơi vào một nhóm cụ thể.

#4. Bản tóm tắt

Tương tự như các quan sát mẫu biểu đồ, thường yêu cầu thời lượng hoặc kích thước phản hồi. Nó sẽ cung cấp tổng số lần quan sát và tổng của tất cả các giá trị được quan sát, cho phép bạn tính giá trị trung bình của các giá trị được quan sát. Ví dụ, trong một phút, bạn có ba yêu cầu mất 2,3,4 giây. Tổng sẽ là 9 và số đếm sẽ là 3. Độ trễ sẽ là 3 giây.

Các thành phần của hệ sinh thái Prometheus

Máy chủ Prometheus

Thu thập các số liệu, lưu trữ chúng và cung cấp chúng để truy vấn, gửi cảnh báo dựa trên các số liệu được thu thập.

Cạo

Prometheus là một hệ thống dựa trên kéo. Để tìm nạp các số liệu, Prometheus gửi một yêu cầu HTTP được gọi là bản lưu trữ. Nó gửi các mẩu tin lưu niệm đến các mục tiêu dựa trên cấu hình của nó.

  Cách bật chế độ xem lưới của Google Meet

Mỗi mục tiêu (được xác định tĩnh hoặc được phát hiện động) được loại bỏ theo một khoảng thời gian đều đặn (khoảng thời gian cạo). Mỗi mẩu tin lưu niệm đọc điểm cuối HTTP /metrics để nhận trạng thái hiện tại của các chỉ số máy khách và duy trì các giá trị trong cơ sở dữ liệu chuỗi thời gian của Prometheus.

Có nhiều cơ sở dữ liệu chuỗi thời gian hơn cho các giải pháp giám sát mà bạn có thể muốn khám phá.

thư viện máy khách

Để giám sát một dịch vụ, bạn cần thêm thiết bị vào mã của mình. Có các thư viện máy khách có sẵn cho tất cả các ngôn ngữ và thời gian chạy phổ biến. Khi sử dụng các thư viện này, sau khi bạn thêm một vài dòng mã, mã của bạn có thể bắt đầu đưa ra số liệu. Điều này được gọi là thiết bị đo trực tiếp. Các thư viện này cho phép bạn xác định các chỉ số nội bộ và cũng hiển thị chúng thông qua điểm cuối HTTP. Khi Prometheus loại bỏ điểm cuối HTTP của chỉ số, thư viện máy khách sẽ gửi chỉ số đến máy chủ.

Các thư viện máy khách chính thức được Prometheus cung cấp cho Go, Java, Python và Ruby. Prometheus có một hệ sinh thái mở. Ngoài ra còn có các thư viện máy khách do cộng đồng xây dựng dành cho C, PHP, Node.js, C#/.NET và nhiều thư viện khác.

nhà xuất khẩu

Nhiều ứng dụng hiển thị số liệu ở định dạng không phải Prometheus. Đối với những ứng dụng này và đối với các ứng dụng mà bạn không sở hữu hoặc bạn không có quyền truy cập vào mã, bạn không thể thêm thiết bị đo trực tiếp. Ví dụ: máy chủ MySQL, Kafka, JMX, HAProxy và NGINX. Trong những tình huống này, bạn sử dụng nhà xuất khẩu.

Trình xuất là một công cụ mà bạn triển khai cùng với ứng dụng mà bạn muốn lấy số liệu từ đó. Một nhà xuất khẩu hoạt động giống như một proxy giữa ứng dụng và Prometheus. Nó sẽ nhận yêu cầu từ máy chủ Prometheus, thu thập dữ liệu từ nhật ký truy cập, nhật ký lỗi của ứng dụng, chuyển đổi nó thành định dạng chính xác và cuối cùng quay trở lại máy chủ Prometheus.

Một số nhà xuất khẩu phổ biến là:

  • các cửa sổ – cho số liệu máy chủ Windows
  • Nút – cho số liệu máy chủ Linux
  • Hộp đen – cho số liệu hiệu suất DNS và Trang web
  • JMX – cho các số liệu ứng dụng dựa trên Java
  Cách chuyển tiếp email dưới dạng tệp đính kèm trong Microsoft Outlook

Sau khi các ứng dụng đã được cung cấp, hoặc các nhà xuất khẩu đã sẵn sàng, bạn cần cho Prometheus biết họ đang ở đâu. Điều này có thể được thực hiện bằng cách sử dụng cấu hình tĩnh. Trong trường hợp môi trường động, điều này không thể thực hiện được; do đó khám phá dịch vụ được sử dụng.

cảnh báo

Cảnh báo với Prometheus bao gồm hai phần –

Các quy tắc cảnh báo gửi cảnh báo đến Alertmanager.

Alertmanager sau đó quản lý các cảnh báo đó. Nó gửi thông báo bằng nhiều tích hợp sẵn có như email, Slack, Hipchat và PagerDuty. Alertmanager cũng có thể thực hiện tắt tiếng hoặc tổng hợp để giảm số lượng thông báo.

Dưới đây là hướng dẫn giám sát máy chủ Linux bằng Prometheus và Bảng điều khiển.

Trực quan hóa với Bảng điều khiển

Prometheus có một số API sử dụng các truy vấn PromQL có thể tạo dữ liệu thô để trực quan hóa.

Mặc dù Prometheus bao gồm một trình duyệt biểu thức có thể được sử dụng cho các truy vấn đặc biệt, nhưng công cụ tốt nhất hiện có là Grafana. Grafana tích hợp đầy đủ với Prometheus và có thể tạo ra nhiều loại bảng thông tin khác nhau.

Bạn sẽ cần định cấu hình Prometheus làm nguồn dữ liệu cho Grafana.

Bạn có thể thêm trang tổng quan bằng cách:

  • Nhập trang tổng quan do cộng đồng xây dựng
  • Xây dựng của riêng bạn
  • Sử dụng bảng điều khiển được xác định trước.

Đây là giao diện của bảng điều khiển trình xuất nút được xác định trước:

Grafana có mô-đun worldPing cho phép bạn giám sát các chỉ số hiệu suất DNS và trang web trên toàn thế giới.

Bản tóm tắt

Prometheus có rất ít yêu cầu. Nó có thể khá đơn giản để chạy vì nó là một tệp nhị phân duy nhất có tệp cấu hình. Nó có thể xử lý hàng nghìn mục tiêu và tiêu hóa hàng triệu mẫu mỗi giây. Prometheus được thiết kế để theo dõi tổng thể hệ thống, sức khỏe, hành vi của hệ thống.

Grafana là công cụ tốt nhất hiện có để trực quan hóa các số liệu và tích hợp hoàn hảo với Prometheus.

x