Làm cách nào để giám sát Cơ sở dữ liệu MySQL?
Khả năng hiển thị hoạt động là điều bắt buộc trong bất kỳ môi trường sản xuất nào. Điều quan trọng là có thể xác định bất kỳ vấn đề nào càng sớm càng tốt, nếu không, bạn có thể gặp rắc rối nghiêm trọng vì vấn đề không được phát hiện có thể gây ra gián đoạn dịch vụ nghiêm trọng hoặc thời gian ngừng hoạt động. MySQL Enterprise Monitor là một trong những sản phẩm giám sát lâu đời nhất dành cho MySQL trên thị trường và có sẵn như một phần của thỏa thuận đăng ký doanh nghiệp thương mại từ Oracle. vào MySQL.
Cài đặt
Trước hết, MySQL Enterprise Monitor là một phần của MySQL Enterprise Edition, một sản phẩm thương mại của Oracle. Nó có nhiều phiên bản gói, dành cho các hệ điều hành khác nhau. Quá trình cài đặt trên Windows 10 (hệ thống mà chúng tôi đã thử nghiệm) khá đơn giản. MySQL Enterprise Monitor được cấu hình và một số dịch vụ đi kèm sẽ được cài đặt (MySQL, Tomcat). Công cụ có thể được truy cập thông qua trình duyệt.
Cấu hình ban đầu
Trước hết, bạn phải thêm máy chủ mà bạn muốn theo dõi.
Bạn có thể thêm các máy chủ đơn lẻ hoặc một loạt máy chủ. Cửa sổ hộp thoại trông giống nhau ngoại trừ khi thêm hàng loạt, bạn có thể chuyển danh sách máy chủ được phân tách bằng dấu phẩy.
Chúng tôi sẽ không đi vào chi tiết, nhưng trong ngắn hạn, bạn phải xác định từ máy chủ lưu trữ các phiên bản MySQL sẽ được giám sát - thông thường, nó sẽ là máy chủ lưu trữ mà bạn đã cài đặt MySQL Enterprise Monitor. Bạn cũng có thể thiết lập các tác nhân trên các phiên bản MySQL của mình, trong trường hợp đó, chúng cũng có thể thu thập dữ liệu cho máy chủ lưu trữ, không chỉ các chỉ số MySQL. Sau đó, bạn cần xác định cách truy cập phiên bản được giám sát (địa chỉ IP / tên máy chủ, người dùng và mật khẩu). Sau đó, MySQL Enterprise Monitor sẽ tạo thêm người dùng cho các tác vụ như giám sát, không yêu cầu đặc quyền của người dùng siêu cấp. Nếu muốn, bạn cũng có thể định cấu hình giao tiếp SSL nếu đó là những gì phiên bản MySQL sử dụng, bạn cũng có thể xác định một số thời gian chờ và liệu cấu trúc liên kết sao chép có được tự động phát hiện hay không.
Điều quan trọng cần ghi nhớ là MySQL Enterprise Monitor phụ thuộc rất nhiều vào Lược đồ hiệu suất - hãy đảm bảo rằng cơ sở dữ liệu của bạn đã bật PS, nếu không bạn sẽ không được hưởng lợi từ một phần đáng kể các tính năng của MySQL Enterprise Monitor.
Giám sát
Sau khi các phiên bản MySQL được giám sát được định cấu hình, bạn có thể bắt đầu xem dữ liệu đã thu thập. Phần Tổng quan cung cấp cho bạn một bản tóm tắt ngắn về một số chỉ số quan trọng nhất trong MySQL. Dữ liệu được tổng hợp và giúp bạn dễ dàng tìm thấy bất kỳ mẫu không mong muốn nào và sau đó tìm hiểu sâu hơn về những gì đã xảy ra.
Tab Sự kiện cung cấp tổng quan về các vấn đề hoặc sự kiện khác nhau được MySQL Enterprise Monitor và các cố vấn của nó báo cáo. Bạn có thể nhấp vào bất kỳ sự kiện nào và đọc nội dung của sự kiện cũng như bất kỳ bước nào được đề xuất để thực hiện:
Trong trường hợp cụ thể này, có vẻ như một số truy vấn đang thực hiện quét toàn bộ bảng và bạn nên điều tra thêm để xác định chính xác các truy vấn đó và xem liệu chúng có thể được tối ưu hóa hay không.
Một ví dụ khác, ở đây chúng ta thấy rằng bộ nhớ cache của bảng không được định cấu hình một cách tối ưu. Bạn có thể xem giải thích về vấn đề, lời khuyên và các hành động được đề xuất nên thực hiện dựa trên cảnh báo này.
Số liệu
Trong tab này, chúng ta có thể xem dữ liệu cho nhiều số liệu MySQL rất hữu ích để hiểu trạng thái của hệ thống.
Đồ thị Timeseries
Ảnh chụp màn hình ở trên chỉ là một ví dụ, còn rất nhiều biểu đồ khác để xem xét.
Có thể áp dụng tính năng lọc:bạn có thể xác định đồ thị nào bạn muốn xem, bạn cũng có thể xác định phạm vi thời gian sẽ được hiển thị. Trên hết, bạn chỉ có thể đánh dấu một phần của biểu đồ và phóng to nó hoặc mở Trình phân tích truy vấn với dữ liệu từ thời điểm cụ thể đó:
Chúng ta sẽ xem xét chức năng này sau nhưng tóm lại, nó cho phép bạn phân tích các truy vấn, hiệu suất của chúng đã thay đổi như thế nào theo thời gian và một số truy vấn mẫu.
Thống kê bảng
Tab này cung cấp cho chúng tôi thông tin chi tiết về thống kê bảng:lưu lượng truy cập trông như thế nào (các hàng được tìm nạp, chèn, cập nhật, xóa) và độ trễ trông như thế nào đối với tất cả các hoạt động của hàng.
Thống kê người dùng
Trong tab này MySQL Enterprise Monitor trình bày dữ liệu về người dùng - các câu lệnh được thực thi, độ trễ, quét bảng, độ trễ I / O, kết nối, sử dụng bộ nhớ. Dữ liệu này sẽ cung cấp một cái nhìn sâu sắc về người dùng nào chịu trách nhiệm về tải trên cơ sở dữ liệu. Nó có thể rất hữu ích, đặc biệt là trong môi trường nhiều người dùng, nơi không có một nguồn lưu lượng truy cập chính.
I / O Tệp Cơ sở dữ liệu
I / O Tệp Cơ sở dữ liệu giải thích cách tải I / O được phân phối trên các tệp trong cơ sở dữ liệu. Tổng số hoạt động I / O, độ trễ, số lần đọc và ghi được thực hiện trên một tệp nhất định.
Sử dụng bộ nhớ
Việc sử dụng bộ nhớ hiển thị cấu trúc bộ nhớ trong MySQL, giúp xây dựng bức tranh tốt hơn về việc sử dụng bộ nhớ trong cơ sở dữ liệu. Dữ liệu này có thể hữu ích trong trường hợp có vấn đề với bộ nhớ - có thể dễ dàng theo dõi mức tăng trưởng lớn nhất và nếu cần, giảm các cài đặt liên quan. Nó cũng có thể giúp ích đáng kể trong việc chẩn đoán khả năng rò rỉ bộ nhớ.
Nhóm đệm InnoDB
Tab này trong MySQL Enterprise Monitor cung cấp cho người dùng cái nhìn sâu sắc về cấu trúc của việc sử dụng vùng đệm. Những bảng nào được lưu trong bộ nhớ cache, có bao nhiêu trang bẩn để xóa?
Truy vấn
Điều cực kỳ quan trọng đối với bất kỳ người dùng MySQL nào là phải hiểu tải mà các truy vấn tạo ra. Truy vấn nào là vấn đề nhất? Làm thế nào họ ứng xử trong thời gian? Hiệu suất có thể được đo lường theo nhiều cách nhưng khá phổ biến là hiệu suất có thể dự đoán được, ổn định quan trọng hơn hiệu suất hàng đầu. Miễn là thời gian phản hồi có thể chấp nhận được, người dùng sẽ thích kết quả dự đoán hơn là phản hồi nhanh hơn một chút (độ trễ thấp), đôi khi có thể làm chậm máy chủ đáng kể. Đó là lý do tại sao rất có giá trị khi xem cách truy vấn hoạt động kịp thời và xác định những hành vi đó, hành vi nào không nhất quán.
MySQL Enterprise Monitor chắc chắn cung cấp dữ liệu như vậy. Trên danh sách các truy vấn, bạn có thể dễ dàng thấy độ trễ đã thay đổi như thế nào theo thời gian. Đường phẳng là tốt, gai - không quá nhiều. Điều này có nghĩa là truy vấn như vậy có thể phải được điều tra thêm. Khi bạn nhấp vào nó, MySQL Enterprise Monitor sẽ cung cấp cho bạn nhiều dữ liệu hơn về nó.
Như bạn có thể thấy, có một số dữ liệu thống kê về loại truy vấn cụ thể, bạn cũng có thể xem độ trễ đã thay đổi như thế nào theo thời gian. Ở phía dưới, bạn có thể thấy một số câu lệnh ví dụ về thời gian và bạn có thể so sánh thời gian thực thi của chúng.
Khi bạn nhấp vào một trong số chúng, bạn sẽ thấy một truy vấn đầy đủ đã được thực thi tại thời điểm đó. Nó có thể hữu ích trong trường hợp các truy vấn trong đó hiệu suất khác nhau tùy thuộc vào đối số nào được sử dụng trong trường hợp WHERE (ví dụ:WHERE some_column =‘some value’ và các giá trị trong cột đó không được phân phối đồng đều trên các hàng).
Nhân rộng
Trong môi trường sao chép MySQL, độ trễ là điều bạn phải học cách đối phó. Điều quan trọng là phải theo dõi nó - nô lệ tụt hậu tệ đến mức nào? Nó xảy ra thường xuyên như thế nào? Với thông tin này, bạn có thể thử và xác định chính xác vấn đề và hiểu rõ hơn những truy vấn nào đang gây ra vấn đề. Sau đó, bạn có thể thử thực hiện một số cải tiến, chẳng hạn như sao chép đa luồng và theo dõi xem các thay đổi có cải thiện hiệu suất sao chép và giảm độ trễ xuống mức có thể chấp nhận được hay không.
MySQL Enterprise Monitor khác với ClusterControl như thế nào
Như chúng tôi đã nêu, MySQL Enterprise Monitor là một phần của MySQL Enterprise Edition trả phí. Đối với tất cả người dùng của Cộng đồng MySQL, Máy chủ MariaDB hoặc Percona, MySQL Enterprise Edition không khả dụng. ClusterControl cung cấp quyền truy cập để giám sát MySQL trong phiên bản Cộng đồng miễn phí của nó. Về giám sát máy chủ và truy vấn, có nhiều điểm tương đồng.
ClusterControl cung cấp cho bạn quyền truy cập vào các chỉ số MySQL được thu thập và lưu trữ trong cơ sở dữ liệu chuỗi thời gian Prometheus. Bạn có thể dễ dàng theo dõi nhiều số liệu có sẵn trong ClusterControl.
ClusterControl cũng đi kèm với một danh sách các cố vấn, có thể được sử dụng để theo dõi tình trạng và hiệu suất của cơ sở dữ liệu. Bạn cũng có thể dễ dàng tạo cố vấn mới bằng cách sử dụng Developer Studio:
Nếu bạn quan tâm đến hiệu suất truy vấn, ClusterControl cung cấp Trình giám sát truy vấn cho bạn - các truy vấn đã thực thi được thu thập và so sánh hiệu suất của chúng, giúp người dùng dễ dàng xác định truy vấn nào sử dụng nhiều CPU nhất trên cơ sở dữ liệu.
Bạn có thể xem dữ liệu thống kê về các truy vấn - thực thi, các hàng được gửi và kiểm tra, thời gian thực hiện. Bạn cũng có thể kiểm tra kế hoạch giải thích cho một loại truy vấn cụ thể.
Theo dõi tính bền bỉ của đa âm vật
Một điểm khác biệt lớn là khả năng giám sát tất cả các biến thể chính của hệ sinh thái MySQL (Oracle MySQL, MariaDB và Percona Server), các công nghệ phân nhóm khác nhau (NDB Cluster, Group Replication, sao chép không đồng bộ và Galera Cluster), bộ cân bằng tải / proxy (HAProxy, Keepalived, Maxscale, ProxySQL) cũng như các cơ sở dữ liệu mã nguồn mở khác (PostgreSQL và MongoDB).
Tự động hóa và Quản lý
ClusterControl cũng cung cấp chức năng triển khai các phiên bản hoặc cụm đơn lẻ tại chỗ hoặc trong đám mây (AWS, GCE và Azure), cũng như các tính năng như quản lý sao lưu, chuyển đổi dự phòng tự động và khôi phục / sửa chữa, nâng cấp lần lượt, quản lý cụm để nhân rộng hoặc thiết lập cụm , mở rộng quy mô, v.v.
Đó là tất cả cho những người ngày nay. Nếu bạn đã làm việc với MySQL Enterprise Monitor và muốn thêm điều gì đó, hãy làm như vậy trong phần nhận xét.