Là một phần của hệ thống giám sát doanh nghiệp của họ, các tổ chức dựa vào cảnh báo và thông báo làm tuyến phòng thủ đầu tiên để đạt được tính khả dụng cao và do đó giảm chi phí ngừng hoạt động.
Cảnh báo và thông báo đôi khi được sử dụng thay thế cho nhau, chẳng hạn như chúng ta có thể nói “Tôi đã nhận được cảnh báo hệ thống tải cao” và việc thay thế “cảnh báo” bằng “thông báo” sẽ không thay đổi ý nghĩa của thông báo. Tuy nhiên, trong thế giới của các hệ thống quản lý, điều quan trọng cần lưu ý là sự khác biệt:cảnh báo là các sự kiện được tạo ra do sự cố hệ thống và thông báo được sử dụng để cung cấp thông tin về trạng thái hệ thống, bao gồm cả sự cố. Như một ví dụ, blog của Somenines Giới thiệu về Tích hợp Cảnh báo ClusterControl thảo luận về một trong những tính năng tích hợp của ClusterControl, hệ thống thông báo có thể gửi cảnh báo qua email, dịch vụ trò chuyện và hệ thống quản lý sự cố. Cũng xem PostgreSQL Wiki - Cảnh báo và Thông báo Trạng thái.
Để giám sát chính xác hoạt động cơ sở dữ liệu PostgreSQL, hệ thống quản lý dựa vào số liệu hoạt động cơ sở dữ liệu, tính năng tùy chỉnh hoặc cố vấn giám sát và tệp nhật ký giám sát.
Trong bài viết này, tôi xem xét các công cụ được liệt kê trong PostgreSQL Wiki, phần Giám sát và PostgreSQL GUI, bỏ qua những công cụ không được duy trì tích cực hoặc không cung cấp cảnh báo và thông báo trong sản phẩm hoặc với tài khoản dùng thử miễn phí. Mặc dù không phải là một đánh giá đầy đủ, nhưng mỗi công cụ đã được cài đặt và định cấu hình đến mức tôi có thể hiểu được khả năng cảnh báo và thông báo của nó.
Nagios
Nagios là một hệ thống giám sát mục đích chung, tại chỗ phổ biến cung cấp nhiều loại plugin. Mặc dù Nagios Core là mã nguồn mở, giải pháp được đề xuất để giám sát PostgreSQL là Nagios XI.
Cài đặt thông báo dành cho mỗi người dùng và để thay đổi chúng, quản trị viên phải “đăng nhập với tư cách là” người dùng - Nagios sử dụng thuật ngữ masquerade as . Khi ở trên trang cài đặt tài khoản, người dùng có thể chọn bật hoặc tắt các phương thức thông báo:

Để định cấu hình các loại thông báo, hãy truy cập trang “Phương thức thông báo”:

Xem Hướng dẫn sử dụng Nagios XI để biết thêm chi tiết.
Để định cấu hình cảnh báo, hãy đăng nhập với tư cách quản trị viên và chọn trình hướng dẫn cấu hình cơ sở dữ liệu:

Sau khi được định cấu hình, các cảnh báo có thể được xem bằng cách chọn bất kỳ chế độ xem, trang tổng quan mặc định nào hoặc chúng ta có thể định cấu hình một chế độ xem tùy chỉnh. Ngoài ra, Nagios XI cung cấp các trình theo dõi PostgreSQL sau:

Lưu ý rằng ngoài ý muốn, Nagios XI không cung cấp bất kỳ số liệu nào dựa trên Bộ thu thập thống kê PostgreSQL, thay vào đó, mỗi số liệu phải được xác định bằng trình hướng dẫn cấu hình “Postgres Query”:

Datadog
Datadog là một công cụ giám sát SaaS có mục đích chung bao gồm một tập hợp tích hợp rất lớn với nhiều loại dịch vụ. Để bắt đầu giám sát, hãy chọn tích hợp PostgreSQL, sau đó chọn tích hợp thông báo như email, trò chuyện (ví dụ:Slack) hoặc hệ thống phản ứng sự cố như PagerDuty:

Để nhận thông báo qua các kênh tích hợp đã định cấu hình trước đó, chúng ta cần tạo ít nhất một trình theo dõi Datadog, trong trường hợp PostgreSQL giám sát một loại giám sát “tích hợp”:

Bước đầu tiên trong việc định cấu hình màn hình là chọn loại cảnh báo:

Tiếp theo, hãy định cấu hình một hoặc nhiều số liệu:

Định cấu hình các điều kiện để kích hoạt cảnh báo:

Thông báo có thể được tùy chỉnh bằng cách sử dụng các biến mẫu:

Cuối cùng cung cấp danh sách người nhận để nhận thông báo:

Các sự kiện mà Datadog có thể theo dõi được liệt kê trong phần “Số liệu” tích hợp PostgreSQL và dựa trên các chế độ xem được xác định trước của Bộ thu thập thống kê PostgreSQL:

Để giám sát các sự kiện không được cung cấp tích hợp mặc định, Datadog cung cấp cho khách hàng tùy chọn tạo số liệu tùy chỉnh giới hạn trong gói Datadog.
Okmeter
Okmeter cũng là một phần của dòng giám sát mục đích chung SaaS và cũng giống như các công cụ SaaS khác, yêu cầu một tác nhân trên máy chủ được giám sát. Sau khi tác nhân được cài đặt, một tập hợp các trình kích hoạt sự kiện mặc định được bật, bao gồm kiểm tra kết nối PostgreSQL:

Để có thêm các chỉ số PostgreSQL yêu cầu thêm một “máy chủ” PostgreSQL:

Để theo dõi thống kê PostgreSQL, tương tự như Nagios và Datadog, chúng ta phải định cấu hình số liệu tùy chỉnh như được giải thích trong Tài liệu Okmeter - Gửi số liệu tùy chỉnh. Hoặc, chỉnh sửa số liệu “Máy chủ PostgreSQL” ở trên để đưa vào các chế độ xem trong hàm “okmeter.pg_stats”.
Trang tài liệu thống kê truy vấn Okmeter giải thích cách bật theo dõi thống kê thực thi cho các câu lệnh SQL. Lưu ý rằng có một số hạn chế trong việc sử dụng chế độ xem “pg_stat_statements”, ví dụ:số lượng tối đa các câu lệnh riêng biệt có thể được ghi lại bởi một mô-đun - hãy xem tài liệu PostgreSQL trên pg_stat_statements để biết chi tiết.
Trang liên hệ thông báo là nơi thông báo được định cấu hình cho từng người dùng:

Tin nhắn thông báo có thể được tùy chỉnh thêm bằng cách sử dụng các mẫu:

Circonus
Circonus, một sản phẩm giám sát chung khác của SaaS, có tính năng "kiểm tra" PostgreSQL có thể được bật riêng hoặc được thêm vào như một phần của cài đặt một bước:

Theo tài liệu Circonus PostgreSQL, việc kiểm tra được thực hiện từ một vị trí từ xa thông qua các câu lệnh SQL trực tiếp. Sau khi định cấu hình máy chủ PostgreSQL để chấp nhận các kết nối từ nhà môi giới Circonus, trình hướng dẫn sẽ hiển thị danh sách các số liệu có sẵn:

Để định cấu hình cảnh báo, mỗi chỉ số được liên kết với một bộ quy tắc và danh sách các địa chỉ liên hệ sẽ được thông báo.

Cảnh báo được phân loại dựa trên mức độ nghiêm trọng:

Các kênh thông báo bao gồm SMS, OpsGenie, Slack, VictorOps và PagerDuty (không có email). Ảnh chụp màn hình bên dưới cho thấy tích hợp Slack:

Để định cấu hình thông báo, mỗi chỉ số trong kiểm tra phải được chỉ định các quy tắc và địa chỉ liên hệ. Lưu ý rằng địa chỉ liên hệ phải được tạo trước khi chỉnh sửa số liệu:

Di tích mới
New Relic là một hệ thống giám sát chung khác của SaaS. Khi nói đến PostgreSQL, có ba plugin khả dụng (tính đến thời điểm này). Gần đây nhất là plugin Blue Medora:

Khi plugin đang hoạt động, nó sẽ hiển thị trên trang plugin và chúng tôi đã sẵn sàng định cấu hình cảnh báo:

New Relic sử dụng khái niệm về các chính sách cảnh báo để nhóm các cảnh báo thành các sự cố. Trước khi định cấu hình một chính sách, chúng ta phải thiết lập các kênh thông báo. Đặc biệt, New Relic tích hợp với tất cả các hệ thống ứng phó sự cố phổ biến, cũng như email:

Lưu ý rằng tích hợp phải được bật trước trong ứng dụng thông báo. Ví dụ:chọn Slack từ danh sách các loại kênh:

Tiếp theo, tạo một “chính sách cảnh báo”:

Chính sách cảnh báo yêu cầu một "điều kiện cảnh báo". Bộ ảnh chụp màn hình tiếp theo hiển thị các bước để đạt được điều đó:



Cuối cùng chọn tab kênh thông báo để sửa đổi mặc định:

Theo tùy chọn, thêm điều kiện cảnh báo vào New Relic Insights (yêu cầu đăng ký bổ sung):

Người quản lý doanh nghiệp Postgres
PEM hoặc Postgres Enterprise Manager là một công cụ để quản lý, điều chỉnh và giám sát PostgreSQL.
Nó đi kèm với một bộ chỉ số được xác định trước rất phong phú:

Để sửa đổi cảnh báo mặc định hoặc tạo cảnh báo tùy chỉnh, hãy sử dụng các mẫu cảnh báo:

PEM dựa vào email và SNMP để nhận thông báo, vì vậy nó có thể dễ dàng tích hợp với các hệ thống giám sát như Nagios, nhưng không có bất kỳ tích hợp nào với các hệ thống quản lý sự cố phổ biến (PagerDuty, VictorOps, OpsGenie) hoặc dịch vụ trò chuyện (Slack) được tìm thấy trong các sản phẩm khác.

pgwatch2
pgwatch2 là một công cụ giám sát trọng tâm khác của PostgreSQL, giải pháp tự lưu trữ.
Để xác định cảnh báo, trước tiên chúng ta phải tạo trang tổng quan tùy chỉnh và xác định số liệu:

Tiếp theo, định cấu hình cảnh báo:

Sau khi được định cấu hình, các cảnh báo sẽ hiển thị trên trang Danh sách Cảnh báo:

pgwatch2 tích hợp với tất cả các hệ thống thông báo phổ biến. Dưới đây là ví dụ về cách thêm kênh Slack:

Để xem các kênh thông báo được định cấu hình trong hệ thống, hãy mở trang “Kênh thông báo”:

Các chỉ số bổ sung có thể được thêm vào dưới dạng tài liệu trong phần Tính năng của pgwatch2.
ClusterControl
ClusterControl là một hệ thống quản lý hướng cơ sở dữ liệu tiền đề với sự hỗ trợ cho PostgreSQL, MySQL, MariaDB và MongoDB.
Bước đầu tiên là thêm tích hợp thông báo. Thông tin thêm về các tích hợp có sẵn có tại Giới thiệu Tích hợp Cảnh báo ClusterControl:

Với mục đích của bản trình diễn này, tôi đã định cấu hình Slack:

ClusterControl cũng cung cấp tùy chọn thông báo qua email:

Khi có thông báo, hãy tạo cố vấn tùy chỉnh để kích hoạt cảnh báo dựa trên các tiêu chí cụ thể:

Kết luận
Bài viết không nhằm mục đích đi sâu vào chức năng của từng công cụ, thay vào đó tôi đã cố gắng phác thảo những gì tôi coi là các tính năng quan trọng liên quan đến cảnh báo và thông báo cho PostgreSQL, cụ thể là.
Một trong những bài học kinh nghiệm là quá trình lựa chọn cần xem xét một số yếu tố sau:
- tại cơ sở hoặc SaaS
- kiểm tra dựa trên tác nhân hoặc từ xa
- tích hợp với hệ thống quản lý sự cố và dịch vụ trò chuyện
- tính khả dụng của các chỉ số được giám sát, tính năng hữu ích và plugin
- khả năng thêm các chỉ số tùy chỉnh
- các tính năng quản lý cảnh báo (ví dụ:nhóm)
- độ phức tạp so với mức độ chi tiết trong giao diện người dùng
- chức năng bổ sung (quản lý, điều chỉnh, API, v.v.)
Ngoài ra, nếu một giải pháp không đáp ứng tất cả các yêu cầu kinh doanh và / hoặc kỹ thuật, thì luôn có thể sử dụng kết hợp các dịch vụ.