Giám sát là cơ sở để biết hệ thống của bạn có hoạt động bình thường hay không và nó cho phép bạn khắc phục hoặc ngăn chặn bất kỳ vấn đề nào trước khi ảnh hưởng đến doanh nghiệp của bạn. Ngay cả trong một công nghệ mạnh mẽ như PostgreSQL, giám sát là điều bắt buộc và mục tiêu chính là biết những gì cần giám sát, nếu không, nó sẽ không có ý nghĩa hoặc không hữu ích trong trường hợp bạn cần sử dụng nó. Trong blog này, chúng ta sẽ xem Phân phối Percona cho PostgreSQL là gì và các chỉ số chính cần theo dõi trên đó.
Phân phối Percona cho PostgreSQL
Đây là một tập hợp các công cụ hỗ trợ bạn quản lý hệ thống cơ sở dữ liệu PostgreSQL của mình. Nó cài đặt PostgreSQL và bổ sung cho nó bằng một loạt các phần mở rộng cho phép giải quyết các tác vụ thực tế thiết yếu một cách hiệu quả, bao gồm:
- pg_repack :Nó xây dựng lại các đối tượng cơ sở dữ liệu PostgreSQL.
- pgaudit :Nó cung cấp ghi nhật ký kiểm tra phiên hoặc đối tượng chi tiết thông qua cơ sở ghi nhật ký PostgreSQL tiêu chuẩn.
- pgBackRest :Đây là giải pháp sao lưu và khôi phục cho PostgreSQL.
- Patroni :Đây là một giải pháp sẵn có cao cho PostgreSQL.
- pg_stat_monitor :Nó thu thập và tổng hợp số liệu thống kê cho PostgreSQL và cung cấp thông tin biểu đồ.
- Một bộ sưu tập các phần mở rộng bổ sung của PostgreSQL đóng góp.
Percona Distribution cho PostgreSQL cũng được vận chuyển cùng với thư viện libpq. Nó chứa một tập hợp các hàm thư viện cho phép các chương trình khách chuyển các truy vấn đến máy chủ phụ trợ PostgreSQL và nhận kết quả của các truy vấn này.
Cần theo dõi những gì trong Phân phối Percona cho PostgreSQL
Khi theo dõi một cụm cơ sở dữ liệu, có hai điều chính cần lưu ý:hệ điều hành và bản thân cơ sở dữ liệu. Bạn sẽ cần xác định những chỉ số nào bạn sẽ theo dõi từ cả hai phía và bạn sẽ thực hiện nó như thế nào.
Hãy nhớ rằng khi một trong các chỉ số của bạn bị ảnh hưởng, chỉ số đó cũng có thể ảnh hưởng đến những chỉ số khác, khiến việc khắc phục sự cố trở nên phức tạp hơn. Có một hệ thống cảnh báo và giám sát tốt là điều quan trọng để làm cho nhiệm vụ này trở nên đơn giản nhất có thể.
Giám sát Hệ điều hành
Một điều quan trọng là giám sát hành vi của Hệ điều hành. Hãy xem một số điểm cần kiểm tra tại đây.
Sử dụng CPU
Phần trăm sử dụng CPU quá mức có thể là một vấn đề nếu đó không phải là hành vi thông thường. Trong trường hợp này, điều quan trọng là phải xác định các quy trình đang tạo ra vấn đề này. Nếu vấn đề là do quy trình cơ sở dữ liệu, bạn sẽ cần phải kiểm tra xem điều gì đang xảy ra bên trong cơ sở dữ liệu.
Bộ nhớ RAM hoặc Sử dụng SWAP
Nếu bạn thấy số liệu này có giá trị cao và không có gì thay đổi trong hệ thống của mình, bạn có thể cần kiểm tra cấu hình cơ sở dữ liệu của mình. Các tham số như shared_buffers và work_mem có thể ảnh hưởng trực tiếp đến điều này vì chúng xác định dung lượng bộ nhớ có thể sử dụng cho cơ sở dữ liệu PostgreSQL.
Sử dụng đĩa
Sự gia tăng bất thường trong việc sử dụng dung lượng đĩa hoặc tiêu thụ quá nhiều quyền truy cập đĩa là những điều quan trọng cần theo dõi vì bạn có thể có nhiều lỗi được ghi trong tệp nhật ký PostgreSQL hoặc cấu hình bộ đệm kém có thể tạo ra mức tiêu thụ quyền truy cập đĩa quan trọng thay vì sử dụng bộ nhớ để xử lý các truy vấn.
Tải trung bình
Nó liên quan đến ba điểm nêu trên. Mức trung bình tải cao có thể do sử dụng CPU, RAM hoặc đĩa quá mức.
Mạng
Sự cố mạng có thể ảnh hưởng đến tất cả các hệ thống vì ứng dụng không thể kết nối (hoặc kết nối các gói bị mất) với cơ sở dữ liệu, vì vậy, đây thực sự là một chỉ số quan trọng cần theo dõi. Bạn có thể theo dõi độ trễ hoặc mất gói và vấn đề chính có thể là bão hòa mạng, sự cố phần cứng hoặc chỉ là cấu hình mạng kém.
Giám sát Cơ sở dữ liệu PostgreSQL
Theo dõi cơ sở dữ liệu PostgreSQL của bạn không chỉ quan trọng để xem liệu bạn có đang gặp sự cố hay không mà còn để biết liệu bạn có cần thay đổi điều gì đó để cải thiện hiệu suất cơ sở dữ liệu hay không, đó có lẽ là một trong những điều quan trọng nhất để giám sát trong cơ sở dữ liệu. Hãy xem một số chỉ số quan trọng cho việc này.
Giám sát Truy vấn
Theo mặc định, PostgreSQL được định cấu hình có tính đến tính tương thích và ổn định, vì vậy bạn cần biết các truy vấn của mình và mẫu của nó, đồng thời định cấu hình cơ sở dữ liệu của bạn tùy thuộc vào lưu lượng truy cập mà bạn có. Tại đây, bạn có thể sử dụng lệnh EXPLAIN để kiểm tra kế hoạch truy vấn cho một truy vấn cụ thể và bạn cũng có thể theo dõi số lượng CHỌN, CHÈN, CẬP NHẬT hoặc XÓA trên mỗi nút. Nếu bạn có một truy vấn dài hoặc một số lượng lớn các truy vấn chạy cùng một lúc, đó có thể là một vấn đề đối với tất cả các hệ thống.
Theo dõi Phiên hoạt động
Bạn cũng nên theo dõi số lượng phiên hoạt động. Nếu bạn gần đến giới hạn, bạn cần kiểm tra xem có điều gì không ổn hoặc bạn chỉ cần tăng giá trị max_connections. Sự khác biệt về số lượng có thể là sự tăng hoặc giảm các kết nối. Việc sử dụng không hợp lệ để tổng hợp kết nối, khóa hoặc sự cố mạng là những sự cố phổ biến nhất liên quan đến số lượng kết nối.
Khóa Cơ sở dữ liệu
Nếu bạn có một truy vấn đang chờ một truy vấn khác, bạn cần kiểm tra xem truy vấn khác là một quy trình bình thường hay là một quy trình mới. Trong một số trường hợp, nếu ai đó đang thực hiện cập nhật trên một bảng lớn, chẳng hạn, hành động này có thể ảnh hưởng đến hoạt động bình thường của cơ sở dữ liệu của bạn, tạo ra số lượng khóa cao.
Giám sát Nhân rộng
Các chỉ số chính cần theo dõi để tái tạo là độ trễ và trạng thái sao chép. Các vấn đề phổ biến nhất là vấn đề mạng, vấn đề tài nguyên phần cứng hoặc vấn đề đo kích thước. Nếu bạn đang đối mặt với vấn đề sao chép, bạn sẽ cần biết điều này càng sớm càng tốt vì bạn sẽ cần khắc phục nó để đảm bảo môi trường có tính khả dụng cao.
Theo dõi Sao lưu
Tránh mất dữ liệu là một trong những tác vụ cơ bản của DBA, vì vậy bạn không chỉ cần thực hiện sao lưu mà còn phải biết quá trình sao lưu đã hoàn tất hay chưa và liệu nó có thể sử dụng được hay không. Thông thường, điểm cuối cùng này không được tính đến, nhưng nó có lẽ là bước kiểm tra quan trọng nhất trong quá trình sao lưu.
Nhật ký Cơ sở dữ liệu Giám sát
Bạn nên theo dõi nhật ký cơ sở dữ liệu của mình để tìm các lỗi như FATAL hoặc deadlock, hoặc thậm chí các lỗi phổ biến như vấn đề xác thực hoặc các truy vấn chạy dài. Hầu hết các lỗi được ghi trong tệp nhật ký với thông tin chi tiết hữu ích để khắc phục.
Trang tổng quan
Khả năng hiển thị hữu ích để phát hiện sự cố nhanh chóng. Việc đọc đầu ra lệnh chắc chắn là một công việc tốn nhiều thời gian hơn là chỉ xem một biểu đồ. Vì vậy, việc sử dụng trang tổng quan có thể là sự khác biệt giữa việc phát hiện vấn đề ngay bây giờ hoặc trong 15 phút tới, chắc chắn rằng thời gian có thể thực sự quan trọng đối với công ty.
Cảnh báo
Chỉ giám sát hệ thống sẽ không có ý nghĩa gì nếu bạn không nhận được thông báo về từng vấn đề. Nếu không có hệ thống cảnh báo, bạn nên vào công cụ giám sát để xem mọi thứ có ổn không và có thể bạn đang gặp sự cố lớn từ nhiều giờ trước.
Giám sát Cơ sở dữ liệu PostgreSQL của bạn với ClusterControl
Thực sự rất khó để tìm một công cụ giám sát tất cả các số liệu cần thiết cho PostgreSQL, nói chung, bạn sẽ cần sử dụng nhiều hơn một và thậm chí cần thực hiện một số tập lệnh. Một cách để tập trung hóa nhiệm vụ giám sát và cảnh báo là sử dụng ClusterControl, cung cấp cho bạn các tính năng như quản lý sao lưu, giám sát và cảnh báo, triển khai và mở rộng, phục hồi tự động và các tính năng quan trọng hơn để giúp bạn quản lý cơ sở dữ liệu của mình. Tất cả các tính năng này trên cùng một hệ thống.
ClusterControl có một tập hợp các trang tổng quan được xác định trước cho bạn, để phân tích một số chỉ số phổ biến nhất.
Nó cho phép bạn tùy chỉnh các biểu đồ có sẵn trong cụm và bạn có thể cho phép giám sát dựa trên tác nhân để tạo các trang tổng quan chi tiết hơn.
Bạn cũng có thể tạo cảnh báo, thông báo cho bạn về các sự kiện trong cụm của bạn, hoặc tích hợp với các dịch vụ khác nhau như PagerDuty hoặc Slack.
Ngoài ra, bạn có thể kiểm tra phần giám sát truy vấn, nơi bạn có thể tìm thấy truy vấn hàng đầu, truy vấn đang chạy, truy vấn ngoại lệ và thống kê truy vấn.
Với các tính năng này, bạn có thể xem cơ sở dữ liệu PostgreSQL của mình đang hoạt động như thế nào.
Để quản lý sao lưu, ClusterControl tập trung nó để bảo vệ, bảo mật và khôi phục dữ liệu của bạn và với tính năng sao lưu xác minh, bạn có thể xác nhận xem bản sao lưu có hoạt động tốt hay không.
Công việc sao lưu xác minh này sẽ khôi phục bản sao lưu trong một máy chủ độc lập riêng biệt, vì vậy bạn có thể đảm bảo rằng bản sao lưu đang hoạt động.
Giám sát bằng Dòng lệnh ClusterControl
Đối với các tác vụ kịch bản và tự động hóa hoặc thậm chí nếu bạn chỉ thích dòng lệnh, ClusterControl có công cụ s9s. Nó là một công cụ dòng lệnh để quản lý cụm cơ sở dữ liệu của bạn.
Danh sách Cụm
Danh sách nút
Kết luận
Việc giám sát là hoàn toàn cần thiết và cách tốt nhất để thực hiện điều đó phụ thuộc vào cơ sở hạ tầng và chính hệ thống. Trong blog này, chúng tôi giới thiệu với bạn về Phân phối Percona cho PostgreSQL và chúng tôi đã đề cập đến một số chỉ số quan trọng cần theo dõi trong môi trường PostgreSQL của bạn. Chúng tôi cũng đã cho bạn thấy ClusterControl hữu ích như thế nào cho tác vụ này.