Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách giám sát việc triển khai MySQL với Prometheus &Grafana tại ScaleGrid

Theo dõi hiệu suất cơ sở dữ liệu MySQL của bạn trong thời gian thực giúp bạn xác định ngay lập tức các sự cố và các yếu tố khác có thể gây ra sự cố hiện tại hoặc trong tương lai. Đó cũng là một cách tốt để xác định thành phần nào của cơ sở dữ liệu có thể được nâng cao hoặc tối ưu hóa để tăng hiệu quả và hiệu suất của bạn. Điều này thường được thực hiện thông qua phần mềm và công cụ giám sát được tích hợp sẵn trong phần mềm quản lý cơ sở dữ liệu hoặc được cài đặt từ các nhà cung cấp bên thứ ba.

Prometheus là một ứng dụng phần mềm mã nguồn mở được sử dụng để theo dõi và cảnh báo sự kiện. Nó có thể được sử dụng cùng với một công cụ trực quan hóa như Grafana để dễ dàng tạo và chỉnh sửa trang tổng quan, truy vấn, trực quan hóa, cảnh báo và hiểu các chỉ số của bạn. ScaleGrid cung cấp quyền truy cập quản trị đầy đủ vào các triển khai MySQL của bạn - điều này giúp bạn dễ dàng tích hợp hệ sinh thái MySQL hiện có của các công cụ với các triển khai ScaleGrid MySQL của bạn trên AWS hoặc Azure. Prometheus hoạt động tốt để ghi lại bất kỳ chuỗi thời gian thuần túy số nào và cũng cung cấp hỗ trợ cho việc thu thập và truy vấn dữ liệu đa chiều. Grafana có thể được sử dụng với nó để xây dựng các trang tổng quan giúp trực quan hóa dữ liệu này theo cách dễ hiểu và dễ sử dụng. Các công cụ này sẽ cung cấp thêm thông tin chi tiết về các chỉ số, cách sử dụng và tập dữ liệu cùng với việc giám sát ScaleGrid MySQL, phân tích truy vấn và cảnh báo của bạn. Trong bài đăng trên blog này, chúng tôi thảo luận về cách bạn có thể thiết lập và sử dụng Prometheus và Grafana với các triển khai ScaleGrid MySQL của bạn để giám sát và cảnh báo cơ sở dữ liệu nâng cao.

Cách thiết lập giám sát MySQL của bạn

Hãy xem qua các bước liên quan đến việc cài đặt và định cấu hình máy chủ Prometheus để lưu trữ và hiển thị các số liệu, một nhà xuất khẩu (trong trường hợp này là MySQL Exporter) để thu thập các số liệu và chuyển chúng tới máy chủ Prometheus và Grafana để tạo trang tổng quan. Công cụ MySQL Exporter có thể được cài đặt cục bộ trên máy chủ MySQL hoặc tập trung trên máy chủ Prometheus. Trong trường hợp sử dụng bên dưới, chúng tôi sẽ giải thích cách thiết lập và bắt đầu sử dụng Prometheus, MySQL Exporter và Grafana từ một máy chủ trung tâm chạy trên Ubuntu để giám sát nhiều máy chủ MySQL. Bạn cũng có thể xem lại hướng dẫn từng bước trong tài liệu trợ giúp Prometheus và Grafana for MySQL của chúng tôi.

Sơ đồ khối bên dưới cho thấy thiết lập triển khai MySQL master-slave-quorum bao gồm hai nút mang dữ liệu (chủ và tớ) và một thành viên bỏ phiếu (quorum) bằng cách sử dụng MySQL Exporter, Prometheus host và Grafana:

Cài đặt &Định cấu hình Máy chủ Prometheus

Prometheus là công cụ chúng tôi sẽ sử dụng để tập trung và lưu trữ các số liệu MySQL của bạn. Nó loại bỏ các chỉ số từ một hoặc một số nhà xuất khẩu theo định kỳ và hiển thị nó trên giao diện người dùng của nó. Dưới đây là các bước để cài đặt và cấu hình Prometheus trên máy chủ Ubuntu trung tâm. Để biết thêm chi tiết, bạn có thể tham khảo bài viết này.

1. Tạo Nhóm Hệ thống Prometheus &Người dùng

 $ sudo groupadd --system prometheus $ sudo useradd -s / sbin / nologin --system -g prometheus prometheus 

2. Tạo một thư mục dữ liệu cho Prometheus

 $ sudo mkdir / var / lib / prometheus 

3. Tạo thư mục cấu hình cho Prometheus

 $ cho tôi trong quy tắc rules.d files_sd; làm sudo mkdir -p / etc / prometheus / $ {i}; xong 

4. Tải xuống Prometheus Archive &Extract File

Để tải xuống kho lưu trữ nhị phân mới nhất cho Prometheus:

 $ mkdir -p / tmp / prometheus &&cd / tmp / prometheus $ curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest \ | grep browser_download_url \ | grep linux-amd64 \ | cut -d '"' -f 4 \ | wget -qi - 

Để giải nén tệp:

 $ tar xvf prometheus * .tar.gz $ cd prometheus * / 

5. Di chuyển các tệp Prometheus đến các vị trí chuẩn

Di chuyển tệp nhị phân Prometheus sang / usr / local / bin:

 $ sudo mv prometheus promtool / usr / local / bin / 

Di chuyển mẫu cấu hình Prometheus vào thư mục / etc:

 $ sudo mv prometheus.yml /etc/prometheus/prometheus.yml 

Đồng thời di chuyển bảng điều khiển và console_libraries vào thư mục / etc / prometheus:

 bảng điều khiển $ sudo mv / console_libraries / / etc / prometheus / 

6. Tạo / chỉnh sửa tệp cấu hình Prometheus

Cấu hình mẫu sẽ trông giống như bên dưới:

 $ cat /etc/prometheus/prometheus.yml # my global config global:scrape_interval:15s # Đặt khoảng thời gian cạo thành 15 giây một lần. Mặc định là 1 phút một lần. Assess_interval:15 giây # Đánh giá các quy tắc sau mỗi 15 giây. Mặc định là 1 phút một lần. #scrape_timeout được đặt thành mặc định chung (10 giây). Cảnh báo cấu hình #Alertmanager:alertmanagers:- static_configs:- target:# - alertmanager:9093 # Tải các quy tắc một lần và định kỳ đánh giá chúng theo 'eval_interval' toàn cầu. rule_files:# - "first_rules.yml" # - "second_rules.yml" # Một cấu hình cạo chứa chính xác một điểm cuối để cạo:# Đây là chính Prometheus. scrape_configs:# Tên công việc được thêm dưới dạng nhãn `job =` cho bất kỳ khoảng thời gian nào được cạo từ cấu hình này. - job_name:'prometheus' #metrics_path mặc định thành '/ metrics' #scheme mặc định thành 'http'. static_configs:- target:['localhost:9090'] 

7. Tạo Tệp Đơn vị Dịch vụ Prometheus systemd

 $ sudo vim /etc/systemd/system/prometheus.service 

Thêm nội dung sau:

 [Unit] Description =Prometheus Documentation =https://prometheus.io/docs/introduction/overview/ Wants =network-online.target After =network-online.target [Service] Type =simple Environment ="GOMAXPROCS =1 "User =prometheus Group =prometheus ExecReload =/ bin / kill -HUP $ MAINPID ExecStart =/ usr / local / bin / prometheus \ --config.file =/ etc / prometheus / prometheus.yml \ --storage.tsdb. path =/ var / lib / prometheus \ --web.console.templates =/ etc / prometheus / consoles \ --web.console.libraries =/ etc / prometheus / console_libraries \ --web.listen-address =0.0.0.0 :9090 \ --web.external-url =SyslogIdentifier =prometheus Restart =always [Install] WantedBy =multi-user.target 

Hãy nhớ chỉnh sửa dòng: Môi trường =”GOMAXPROCS =1 bằng cách thay thế 1 bằng số vcpus trên máy chủ của bạn.

8. Thay đổi quyền đối với thư mục

Thay đổi quyền sở hữu các thư mục này thành người dùng và nhóm Prometheus:

 $ cho tôi trong quy tắc rules.d files_sd; do sudo chown -R prometheus:prometheus / etc / prometheus / $ {i}; thực hiện $ cho tôi trong các quy tắc rules.d files_sd; làm sudo chmod -R 775 / etc / prometheus / $ {i}; done $ sudo chown -R prometheus:prometheus / var / lib / prometheus / 

9. Tải lại hệ thống Daemon &Khởi động Dịch vụ

 $ sudo systemctl daemon-reload $ sudo systemctl start prometheus $ sudo systemctl enable prometheus 

Kiểm tra trạng thái bằng cách sử dụng quy trình trạng thái systemctl lệnh:

10. Định cấu hình tường lửa để mở cổng 9090

 $ sudo firewall-cmd --add-port =9090 / tcp --permosystem $ sudo firewall-cmd --reload 

Sau khi thiết lập xong, bạn có thể truy cập vào giao diện người dùng Prometheus bằng cách đăng nhập vào http:// :9090

Cách theo dõi triển khai #MySQL với Prometheus &Grafana tại ScaleGridNhấp vào Tweet

Cài đặt &Định cấu hình MySQL Prometheus Exporter

Prometheus yêu cầu nhà xuất khẩu để thu thập số liệu máy chủ MySQL. Trình xuất này có thể được chạy tập trung trên máy chủ Prometheus hoặc trên máy chủ cơ sở dữ liệu. Để đọc thêm, hãy tham khảo tài liệu Prometheus.

Làm theo các bước dưới đây để cài đặt và thiết lập MySQL Prometheus Exporter trên máy chủ Prometheus trung tâm. Để biết thêm chi tiết, hãy tham khảo bài viết này.

1. Tải xuống và cài đặt Prometheus MySQL Exporter

 $ curl -s https://api.github.com/repos/prometheus/mysqld_exporter/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi - $ tar xvf mysqld_exporter * .tar.gz $ sudo mv mysqld_exporter - *. linux-amd64 / mysqld_exporter / usr / local / bin / $ sudo chmod + x / usr / local / bin / mysqld_exporter 

2. Tạo Người dùng Cơ sở dữ liệu Prometheus Exporter để truy cập Cơ sở dữ liệu, Scrape Metrics &Cung cấp Tài trợ

 TẠO NGƯỜI DÙNG 'mysqld_exporter' @ '' ĐƯỢC XÁC ĐỊNH BỞI 'StrongPassword' VỚI MAX_USER_CONNECTIONS 2; CẤP QUY TRÌNH, THAY THẾ KHÁCH HÀNG, CHỌN BẬT *. * ĐẾN 'mysqld_exporter' @ ''; FLUSH / pre> 

VỚI MAX_USER_CONNECTIONS 2 được sử dụng để đặt giới hạn kết nối tối đa cho người dùng để tránh làm quá tải máy chủ với việc giám sát các mẩu tin lưu niệm khi tải nặng.

3. Định cấu hình thông tin đăng nhập cơ sở dữ liệu

Chỉnh sửa tệp cấu hình của nhà xuất khẩu trên máy chủ trung tâm:

 $ sudo vim /etc/.mysqld_exporter.cnf 

Thêm tên người dùng và mật khẩu của người dùng đã tạo và máy chủ ScaleGrid MySQL mà bạn muốn theo dõi:

 $ sudo vim /etc/.mysqld_exporter.cnf[client]user=mysqld_exporterpassword=StrongPasswordhost=SG-mysqltestcluster-123456.servers.mongodirector.com 

Đặt quyền sở hữu:

 $ sudo chown root:prometheus /etc/.mysqld_exporter.cnf 

4. Tạo tệp đơn vị systemd

Tạo tệp dịch vụ mới trên máy chủ trung tâm:

 $ sudo vim /etc/systemd/system/mysql_exporter.service 

Thêm nội dung sau:

 [Unit] Description =Prometheus MySQL Exporter After =network.target User =prometheus Group =prometheus [Service] Type =simple Restart =always ExecStart =/ usr / local / bin / mysqld_exporter \ --config.my-cnf / etc / .mysqld_exporter.cnf \ --collect.global_status \ --collect.info_schema.innodb_metrics \ --collect.auto_increment.columns \ --collect.info_schema.processlist \ --collect.binlog_size \ --collect.info_schema.tlestats \ --collect.global_variables \ --collect.info_schema.query_response_time \ --collect.info_schema.userstats \ --collect.info_schema.tables \ --collect.perf_schema.tablelocks \ --collect.perf_schema.file_events \ --collect_events \ - .perf_schema.eventswaits \ --collect.perf_schema.indexiowaits \ --collect.perf_schema.tableiowaits \ --collect.slave_status \ --web.listen-address =0.0.0.0:9104 [Install] WantedBy =multi-user.target 

web.listen-address =0.0.0.0:9104 chỉ định rằng máy chủ đang lắng nghe trên cổng 9104. Nếu máy chủ của bạn có mạng công cộng và riêng tư, bạn có thể cần phải thay thế 0.0.0.0:9104 bằng IP riêng, ví dụ - 192.168.4.5:9104.

Khi hoàn tất, tải lại systemd và khởi động dịch vụ mysql_exporter:

 $ sudo systemctl daemon-reload $ sudo systemctl enable mysql_exporter $ sudo systemctl start mysql_exporter 

5. Định cấu hình Điểm cuối MySQL để được Scrap bởi Prometheus

Thực hiện các thay đổi như bên dưới đối với tệp prometheus.yml:

 scrape_configs:- job_name:mysql_server1static_configs:- target:['localhost:9104'] nhãn:bí danh:db1 

Lưu ý:Nếu trình xuất không chạy trên cùng một máy chủ như Prometheus, hãy cung cấp địa chỉ IP của máy chủ thay vì localhost. 9104 đề cập đến cổng mà Prometheus lắng nghe, như được chỉ định trong bước trước.

Giám sát Nhiều Máy chủ MySQL Từ Máy chủ Prometheus Trung tâm

Nhiều máy chủ MySQL có thể được giám sát từ một máy chủ trung tâm. Điều này có thể đạt được bằng cách có một dịch vụ xuất khẩu riêng biệt cho mỗi máy chủ. Đảm bảo tạo tệp .mysqld_exporter.cnf và mysql_exporter.service (với số cổng duy nhất được gán cho cờ –web.listen-address) cho mỗi dịch vụ như đã đề cập trong bước 3 và 4 ở trên. Thêm mục tiêu vào tệp prometheus.yml như đã đề cập trong bước 5 ở trên. Tên công việc phải là duy nhất cho mỗi mục tiêu. Ví dụ:

Nhãn
 scrape_configs:- job_name:mysql_server1static_configs:- target:['localhost:9104'] nhãn:bí danh:db1- job_name:mysql_server2static_configs:- target:['localhost:9105'] nhãn:alias:dbq-lconfigsigs - target:['localhost:9106'] label:alias:db3 

Lưu ý:Máy chủ Prometheus phải có thể tiếp cận các mục tiêu qua mạng. Đảm bảo rằng cấu hình mạng / tường lửa của bạn đã được sửa đổi cho phù hợp.

Cài đặt Grafana &Tạo trang tổng quan

Grafana sử dụng Prometheus làm nguồn dữ liệu, cho phép bạn tạo trang tổng quan để trực quan hóa và hiểu rõ hơn các chỉ số của mình. Nó cung cấp một cách tuyệt vời để hiểu rõ hơn về dữ liệu chuỗi thời gian của bạn.

Làm theo các bước dưới đây để cài đặt Grafana trên máy chủ Prometheus trung tâm của bạn.

1. Tải xuống phiên bản Grafana mới nhất

Truy cập trang Tải xuống Grafana để tải xuống phiên bản mới nhất.

 $ wget  $ sudo apt-get install -y adduser libfontconfig1 $ sudo dpkg -i grafana_  _amd64.deb 

2. Tải xuống kho lưu trữ APT và cài đặt Grafana

Lệnh add-apt-repository không phải là ứng dụng mặc định trên Debian 9 và yêu cầu:

 $ apt-get install -y software-properties-common 

Cài đặt kho lưu trữ cho các bản phát hành ổn định:

 $ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" 

Có một kho lưu trữ riêng nếu bạn muốn bản phát hành beta:

 $ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb beta main" 

Sử dụng dòng trên ngay cả khi bạn đang sử dụng Ubuntu hoặc phiên bản Debian khác. Sau đó, thêm khóa gpg của chúng tôi. Điều này cho phép bạn cài đặt các gói đã ký:

 $ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - 

Cập nhật kho Apt của bạn và cài đặt Grafana:

 $ sudo apt-get update $ sudo apt-get install grafana 

3. Bắt đầu dịch vụ

 $ systemctl daemon-reload $ systemctl start grafana-server $ systemctl status grafana-server 

Bật dịch vụ systemd để Grafana bắt đầu khi khởi động:

 $ sudo systemctl cho phép grafana-server.service 

Để chạy Grafana, hãy mở trình duyệt của bạn và truy cập http:// :3000 / . 3000 là cổng http mà Grafana lắng nghe, theo mặc định.

4. Thêm nguồn dữ liệu

Khi được cài đặt, hãy đăng nhập vào trang tổng quan quản trị và điều hướng đến Cấu hình> Nguồn dữ liệu. Nhấp vào Thêm nguồn dữ liệu, chọn Prometheus trong Cơ sở dữ liệu chuỗi thời gian và điền vào các trường Tên và URL.

Tên:Prometheus-1 URL:http:// localhost:9090

Lưu ý:Nếu máy chủ Prometheus không chạy trên cùng một máy chủ lưu trữ như Grafana, hãy cung cấp địa chỉ IP của máy chủ thay vì máy chủ cục bộ.

Bây giờ, bạn đã sẵn sàng tạo và tùy chỉnh trang tổng quan cho việc giám sát MySQL của mình. Bạn có thể tạo trang tổng quan mới bằng cách nhấp vào liên kết ở phía bên phải của bộ chọn trang tổng quan. Khi trang tổng quan được tạo, bạn có thể thêm các bảng chọn các chỉ số sẽ được hiển thị, gắn dấu sao cho trang tổng quan, lưu và chia sẻ nó. Để có hướng dẫn chi tiết, bạn có thể tham khảo tài liệu Bắt đầu của Grafana.

Dưới đây là một ví dụ về trang tổng quan Grafana được tạo để triển khai MySQL tại ScaleGrid:

Bảng điều khiển Grafana ở trên hiển thị Các loại lựa chọn của MySQL, Hoạt động chuỗi ứng dụng khách MySQL, Số liệu sử dụng mạng MySQL hàng giờ và MySQL Table Locks được hiển thị trong biểu đồ và bảng điều khiển Grafana bên dưới hiển thị MySQL Top Bộ đếm lệnh và Bộ đếm lệnh hàng đầu của MySQL hàng giờ.

Chúng tôi luôn tìm cách làm cho cuộc sống của người dùng trở nên dễ dàng hơn, vì vậy hãy cho chúng tôi biết về bất kỳ công cụ nào khác mà bạn muốn kết nối với các triển khai ScaleGrid của mình thông qua nhận xét hoặc qua Twitter tại @scalegridio.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tạo một câu lệnh chuẩn bị sẵn mysql an toàn trong php?

  2. Dữ liệu MySQL - Cách tốt nhất để triển khai phân trang?

  3. mysql chọn từ n hàng cuối cùng

  4. Sử dụng LIMIT trong GROUP BY để nhận N kết quả cho mỗi nhóm?

  5. Tạo một truy vấn mysql động bằng cách sử dụng các biến php