Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Memantau Penerapan MySQL dengan Prometheus &Grafana di ScaleGrid

Memantau kinerja database MySQL Anda secara real-time membantu Anda segera mengidentifikasi masalah dan faktor lain yang dapat menyebabkan masalah sekarang atau di masa mendatang. Ini juga merupakan cara yang baik untuk menentukan komponen database mana yang dapat ditingkatkan atau dioptimalkan untuk meningkatkan efisiensi dan kinerja Anda. Ini biasanya dilakukan melalui perangkat lunak dan alat pemantauan baik yang terpasang di dalam perangkat lunak manajemen basis data atau diinstal dari penyedia pihak ketiga.

Prometheus adalah aplikasi perangkat lunak sumber terbuka yang digunakan untuk pemantauan dan peringatan peristiwa. Ini dapat digunakan bersama dengan alat visualisasi seperti Grafana untuk dengan mudah membuat dan mengedit dasbor, membuat kueri, memvisualisasikan, mengingatkan, dan memahami metrik Anda. ScaleGrid memberikan akses admin penuh ke penerapan MySQL Anda – ini mempermudah integrasi ekosistem alat MySQL yang ada dengan penerapan MySQL ScaleGrid Anda di AWS atau Azure. Prometheus bekerja dengan baik untuk merekam rangkaian waktu numerik murni, dan juga menawarkan dukungan untuk pengumpulan dan kueri data multidimensi. Grafana dapat digunakan dengannya untuk membangun dasbor yang membantu memvisualisasikan data ini dengan cara yang mudah ditafsirkan dan digunakan. Alat ini akan memberikan wawasan tambahan untuk metrik, pola penggunaan, dan set data Anda bersama dengan pemantauan MySQL ScaleGrid, analisis kueri, dan peringatan. Dalam posting blog ini, kami membahas bagaimana Anda dapat mengatur dan menggunakan Prometheus dan Grafana dengan penerapan ScaleGrid MySQL Anda untuk pemantauan dan peringatan database tingkat lanjut.

Cara Menyiapkan Pemantauan MySQL Anda

Mari kita telusuri langkah-langkah yang terlibat dalam menginstal dan mengonfigurasi server Prometheus untuk menyimpan dan menampilkan metrik, pengekspor (Pengekspor MySQL dalam kasus ini) untuk mengumpulkan metrik dan menyampaikannya ke server Prometheus, dan Grafana untuk membuat dasbor. Alat Eksportir MySQL dapat diinstal secara lokal di server MySQL atau secara terpusat di server Prometheus. Dalam kasus penggunaan di bawah ini, kami akan menjelaskan cara mengatur dan mulai menggunakan Prometheus, MySQL Exporter, dan Grafana dari host pusat yang berjalan di Ubuntu untuk memantau beberapa server MySQL. Anda juga dapat meninjau petunjuk langkah demi langkah di dokumen bantuan Prometheus dan Grafana untuk MySQL kami.

Diagram blok di bawah ini menunjukkan pengaturan penerapan MySQL master-slave-quorum yang mencakup dua node pembawa data (master dan slave) dan satu anggota voting (quorum) menggunakan Eksportir MySQL, host Prometheus, dan Grafana:

Menginstal &Mengonfigurasi Server Prometheus

Prometheus adalah alat yang akan kami gunakan untuk memusatkan dan menyimpan metrik MySQL Anda. Ini mengikis metrik dari satu atau beberapa eksportir secara berkala dan menampilkannya di UI-nya. Di bawah ini adalah langkah-langkah untuk menginstal dan mengkonfigurasi Prometheus pada host Ubuntu pusat. Untuk lebih jelasnya, Anda dapat merujuk artikel ini.

1. Buat Grup &Pengguna Sistem Prometheus

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

2. Buat Direktori Data untuk Prometheus

$sudo mkdir /var/lib/prometheus

3. Buat Direktori Konfigurasi untuk Prometheus

$for i di rules rules.d files_sd; lakukan sudo mkdir -p /etc/prometheus/${i}; selesai

4. Unduh Arsip Prometheus &Ekstrak File

Untuk mengunduh arsip biner terbaru untuk 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 -

Untuk mengekstrak file:

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

5. Pindahkan File Prometheus ke Lokasi Standar

Pindahkan file biner Prometheus ke /usr/local/bin:

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

Pindahkan template konfigurasi Prometheus ke direktori /etc:

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

Pindahkan juga consoles dan console_libraries ke direktori /etc/prometheus:

$sudo mv consoles/ console_libraries/ /etc/prometheus/

6. Buat/Edit File Konfigurasi Prometheus

Konfigurasi template akan terlihat seperti di bawah ini:

$cat /etc/prometheus/prometheus.yml #my global config global:scrape_interval:15s # Atur interval scrape setiap 15 detik. Default adalah setiap 1 menit. evaluasi_interval:15s # Evaluasi aturan setiap 15 detik. Standarnya adalah setiap 1 menit. #scrape_timeout disetel ke default global (10 detik). Peringatan konfigurasi #Alertmanager:alertmanagers:- static_configs:- target:#- alertmanager:9093 #Muat aturan sekali dan evaluasi secara berkala sesuai dengan 'evaluation_interval' global. rule_files:#- "first_rules.yml" #- "second_rules.yml" #Konfigurasi scrape yang berisi tepat satu titik akhir untuk scrape:#Ini Prometheus itu sendiri. scrape_configs:#Nama pekerjaan ditambahkan sebagai label `job=` ke setiap deret waktu yang diambil dari konfigurasi ini. - job_name:'prometheus' #metrics_path default ke '/metrics' #scheme default ke 'http'. static_configs:- target:['localhost:9090']

7. Buat File Unit Layanan sistem Prometheus

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

Tambahkan konten berikut:

 [Unit] Description=Prometheus Documentation=https://prometheus.io/docs/introduction/overview/ Wants=network-online.target After=network-online.target [Service] Type=simple Environment="GOMAXPROCS=1" Pengguna=prometheus Grup=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=selalu [Instal] WantedBy=multi-pengguna.target

Ingatlah untuk mengedit baris:Environment="GOMAXPROCS=1 dengan mengganti 1 dengan jumlah vcpus di server Anda.

8. Ubah Izin Direktori

Ubah kepemilikan direktori ini menjadi pengguna dan grup Prometheus:

$for i di rules rules.d files_sd; lakukan sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done$for i in rules rules.d files_sd; lakukan sudo chmod -R 775 /etc/prometheus/${i}; done$sudo chown -R prometheus:prometheus /var/lib/prometheus/

9. Muat ulang systemd Daemon &Mulai Layanan

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

Periksa status menggunakan systemctl status prometheus perintah:

10. Konfigurasi Firewall untuk Membuka Port 9090

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

Setelah penyiapan selesai, Anda dapat mengakses UI Prometheus dengan masuk ke http://:9090

Cara Memantau Penerapan #MySQL dengan Prometheus &Grafana di ScaleGridKlik Untuk Tweet

Menginstal &Mengonfigurasi Eksportir Prometheus MySQL

Prometheus memerlukan eksportir untuk mengumpulkan metrik server MySQL. Eksportir ini dapat dijalankan secara terpusat di server Prometheus, atau di server database. Untuk bacaan lebih lanjut, lihat dokumentasi Prometheus.

Ikuti langkah-langkah di bawah ini untuk menginstal dan menyiapkan MySQL Prometheus Exporter di host Prometheus pusat. Untuk detail lebih lanjut, lihat artikel ini.

1. Unduh &Instal 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/ lokal/bin/mysqld_exporter

2. Buat Pengguna Basis Data Eksportir Prometheus untuk Mengakses Basis Data, Mengikis Metrik &Memberikan Hibah

BUAT PENGGUNA 'mysqld_exporter'@'' DIIDENTIFIKASI OLEH 'StrongPassword' DENGAN MAX_USER_CONNECTIONS 2;PROSES GRANT, KLIEN REPLIKASI, PILIH *.* UNTUK 'mysqld_exporter'@' 

DENGAN MAX_USER_CONNECTIONS 2 digunakan untuk menetapkan batas koneksi maksimal bagi pengguna untuk menghindari server yang kelebihan beban dengan memantau goresan di bawah beban berat.

3. Konfigurasikan Kredensial Basis Data

Edit file konfigurasi eksportir di host pusat:

$sudo vim /etc/.mysqld_exporter.cnf

Tambahkan nama pengguna dan kata sandi pengguna yang dibuat dan server MySQL ScaleGrid yang ingin Anda pantau:

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

Setel izin kepemilikan:

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

4. Buat File Unit systemd

Buat file layanan baru di host pusat:

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

Tambahkan konten berikut:

 [Unit] Deskripsi=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.tablestats \ --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 .perf_schema.eventswaits \ --collect.perf_schema.indexiowaits \ --collect.perf_schema.tableiowaits \ --collect.slave_status \ --web.listen-address=0.0.0.0:9104 [Instal] WantedBy=multi-pengguna.target 

web.listen-address=0.0.0.0:9104 menentukan bahwa server mendengarkan pada port 9104. Jika server Anda memiliki jaringan publik dan pribadi, Anda mungkin perlu mengganti 0.0.0.0:9104 dengan IP pribadi, misalnya – 192.168.4.5:9104.

Setelah selesai, muat ulang systemd dan mulai layanan mysql_exporter:

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

5. Konfigurasikan MySQL Endpoint untuk Digores oleh Prometheus

Buat perubahan seperti di bawah ini pada file prometheus.yml:

scrape_configs:- job_name:mysql_server1static_configs:- target:['localhost:9104']labels:alias:db1

Catatan:Jika eksportir tidak berjalan di host yang sama dengan Prometheus, berikan alamat IP server alih-alih localhost. 9104 mengacu pada port yang didengarkan oleh Prometheus, sebagaimana ditentukan pada langkah sebelumnya.

Memantau Beberapa Host MySQL Dari Host Prometheus Pusat

Beberapa server MySQL dapat dipantau dari server pusat. Ini dapat dicapai dengan memiliki layanan eksportir terpisah untuk setiap server. Pastikan untuk membuat file .mysqld_exporter.cnf dan mysql_exporter.service (dengan nomor port unik yang ditetapkan ke flag –web.listen-address) untuk setiap layanan seperti yang disebutkan dalam langkah 3 dan 4 di atas. Tambahkan target ke file prometheus.yml seperti yang disebutkan pada langkah 5 di atas. Nama pekerjaan harus unik untuk setiap sasaran. Misalnya:

scrape_configs:- job_name:mysql_server1static_configs:- target:['localhost:9104']labels:alias:db1- job_name:mysql_server2static_configs:- target:['localhost:9105']labels:alias:db2- job_name:myconfigs_server3static_ - target:['localhost:9106']labels:alias:db3

Catatan:Server Prometheus harus dapat menjangkau target melalui jaringan. Pastikan bahwa konfigurasi jaringan/firewall Anda telah dimodifikasi sebagaimana mestinya.

Menginstal Grafana &Membuat Dasbor

Grafana menggunakan Prometheus sebagai sumber data, memungkinkan Anda membuat dasbor untuk memvisualisasikan dan memahami metrik Anda dengan lebih baik. Ini memberikan cara yang bagus untuk mendapatkan wawasan tentang data deret waktu Anda.

Ikuti langkah-langkah di bawah ini untuk menginstal Grafana di host Prometheus pusat Anda.

1. Unduh Versi Grafana Terbaru

Buka halaman Unduh Grafana untuk mengunduh versi terbaru.

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

2. Unduh Repositori APT &Instal Grafana

Perintah add-apt-repository bukan aplikasi default di Debian 9 dan memerlukan:

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

Instal repositori untuk rilis stabil:

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

Ada repositori terpisah jika Anda ingin rilis beta:

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

Gunakan baris di atas meskipun Anda menggunakan Ubuntu atau versi Debian lainnya. Kemudian tambahkan kunci gpg kami. Ini memungkinkan Anda untuk menginstal paket yang ditandatangani:

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

Perbarui repositori Apt Anda dan instal Grafana:

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

3. Mulai Layanan

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

Aktifkan layanan systemd sehingga Grafana mulai saat boot:

$sudo systemctl aktifkan grafana-server.service

Untuk menjalankan Grafana, buka browser Anda dan buka http://:3000/ . 3000 adalah port http yang didengarkan Grafana, secara default.

4. Menambahkan Sumber Data

Saat diinstal, login ke dasbor admin dan buka Konfigurasi> Sumber Data. Klik Add data source, pilih Prometheus di bawah Time series databases dan isi kolom Name and URL.

Nama:Prometheus-1 URL:http://localhost:9090

Catatan:Jika server Prometheus tidak berjalan di host yang sama dengan Grafana, berikan alamat IP server sebagai ganti localhost.

Sekarang Anda siap membuat dan menyesuaikan dasbor untuk pemantauan MySQL Anda. Anda dapat membuat dasbor baru dengan mengeklik tautan di sisi kanan pemilih dasbor. Setelah dasbor dibuat, Anda dapat menambahkan panel yang memilih metrik yang akan ditampilkan, membintangi dasbor, menyimpan, dan membagikannya. Untuk petunjuk mendetail, Anda dapat merujuk ke dokumentasi Memulai Grafana.

Berikut adalah contoh dasbor Grafana yang dibuat untuk penerapan MySQL di ScaleGrid:

Dasbor Grafana di atas menampilkan MySQL Select Types, MySQL Client Thread Activity, MySQL Network Usage Hourly, dan MySQL Table Locks metrik yang divisualisasikan dalam bagan, dan dasbor Grafana di bawah menampilkan MySQL Top Penghitung Perintah dan Penghitung Perintah Teratas MySQL Setiap Jam.

Kami selalu berusaha membuat hidup pengguna kami lebih mudah, jadi beri tahu kami alat lain yang ingin Anda hubungkan ke penerapan ScaleGrid Anda melalui komentar atau melalui Twitter di @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. PHP dengan kesalahan MySQL 8.0+:Server meminta metode otentikasi yang tidak diketahui klien

  2. Cara Mengaktifkan Log Kueri Lambat di AWS RDS MySQL

  3. pip install mysqlclient mengembalikan kesalahan fatal C1083:Tidak dapat membuka file:'mysql.h':Tidak ada file atau direktori seperti itu

  4. Bagaimana cara mengubah direktori data MySQL?

  5. Cara Menemukan Nilai Non-Numerik di Kolom di MySQL