Integrasi MariaDB mengumpulkan metrik performa yang terkait dengan InnoDB, kumpulan buffer, dan berbagai operasi lainnya. Alat ini juga mengumpulkan log kueri umum, error, dan kueri lambat, lalu mengurainya menjadi payload JSON. Log error diurai untuk kode error dan subsistemnya. Log kueri lambat diuraikan menjadi key-value pair yang mendeskripsikan performa kueri, termasuk waktu kueri dan baris yang diperiksa.
Untuk mengetahui informasi selengkapnya tentang MariaDB, lihat mariadb.org .
Prasyarat
Untuk mengumpulkan telemetri MariaDB, Anda harus menginstal Ops Agent versi 2.8.0 atau yang lebih tinggi.
Penerima ini mendukung MariaDB versi 10.1.X hingga 10.7.X.Mengonfigurasi instance MariaDB Anda
MariaDB adalah fork sistem pengelolaan database relasional (RDBMS) relasional yang dikembangkan komunitas dan didukung secara komersial. Untuk mengumpulkan log dan metrik untuk
MariaDB, gunakan penerima mysql
.
Penerima mysql
terhubung secara default ke server MariaDB lokal menggunakan soket Unix dan autentikasi Unix sebagai pengguna root
.
Mengonfigurasi Agen Operasional untuk MariaDB
Dengan mengikuti panduan untuk Mengonfigurasi Agen Operasional, tambahkan elemen yang diperlukan untuk mengumpulkan log dan metrik dari instance MariaDB, dan mulai ulang agen.
Contoh konfigurasi
Perintah berikut membuat file konfigurasi untuk mengumpulkan serta menyerap log dan metrik untuk MariaDB, dan memulai ulang Agen Operasional di Linux.
Untuk terhubung ke instance MariaDB Anda menggunakan koneksi TCP dengan nama pengguna dan sandi, tentukan nama pengguna dan sandi di penerima metrik. Contoh:
metrics:
receivers:
mysql:
type: mysql
endpoint: localhost:3306
password: pwd
username: usr
service:
pipelines:
mysql:
receivers:
- mysql
Mengonfigurasi koleksi log
Untuk menyerap log dari MariaDB, Anda harus membuat penerima untuk log yang dihasilkan MariaDB, lalu membuat pipeline untuk penerima baru tersebut.
Penerima logging mysql_error
mengumpulkan log dari jalur file default
yang ditampilkan dalam tabel berikut. Di beberapa platform, MariaDB mencatat log ke journald
secara default, bukan ke file. Untuk mengonfigurasi MariaDB agar mencatat log ke sebuah file, setel opsi log_error
pada konfigurasi MariaDB. Untuk informasi selengkapnya
tentang konfigurasi log_error
, lihat Menulis Log Error ke
File.
Untuk mengonfigurasi penerima log mysql_error
, tentukan kolom berikut:
Kolom | Default | Deskripsi |
---|---|---|
type |
Nilai ini harus mysql_error . |
|
include_paths |
[/var/log/mysqld.log, /var/log/mysql/mysqld.log, /var/log/mysql/error.log] |
Daftar jalur sistem file yang akan dibaca dengan tailing setiap file. Karakter pengganti (* ) dapat digunakan di jalur; misalnya, /var/log/mysql/*.log . |
exclude_paths |
[] |
Daftar pola jalur sistem file yang akan dikecualikan dari kumpulan yang cocok dengan include_paths . |
record_log_file_path |
false |
Jika ditetapkan ke true , jalur ke file tertentu tempat data log diperoleh akan muncul di entri log output sebagai nilai label agent.googleapis.com/log_file_path . Saat menggunakan karakter pengganti, hanya jalur file tempat data diperoleh yang akan dicatat. |
wildcard_refresh_interval |
60s |
Interval tempat jalur file karakter pengganti di include_paths dimuat ulang. Diberikan sebagai durasi waktu, misalnya 30s atau 2m . Properti ini mungkin berguna pada throughput logging yang tinggi dengan file log dirotasi lebih cepat daripada interval default. |
Untuk mengonfigurasi penerima log mysql_general
Anda, tentukan kolom berikut:
Kolom | Default | Deskripsi |
---|---|---|
type |
Nilai ini harus mysql_general . |
|
include_paths |
[/var/lib/mysql/${HOSTNAME}.log] |
File log yang akan dibaca. |
exclude_paths |
[] |
Daftar pola jalur sistem file yang akan dikecualikan dari kumpulan yang cocok dengan include_paths . |
record_log_file_path |
false |
Jika ditetapkan ke true , jalur ke file tertentu tempat data log diperoleh akan muncul di entri log output sebagai nilai label agent.googleapis.com/log_file_path . Saat menggunakan karakter pengganti, hanya jalur file tempat data diperoleh yang akan dicatat. |
wildcard_refresh_interval |
60s |
Interval tempat jalur file karakter pengganti di include_paths dimuat ulang. Diberikan sebagai durasi waktu, misalnya 30s atau 2m . Properti ini mungkin berguna pada throughput logging yang tinggi dengan file log dirotasi lebih cepat daripada interval default. |
Untuk mengonfigurasi penerima log mysql_slow
Anda, tentukan kolom berikut:
Kolom | Default | Deskripsi |
---|---|---|
type |
Nilai ini harus mysql_slow . |
|
include_paths |
[/var/lib/mysql/${HOSTNAME}-slow.log] |
File log yang akan dibaca. |
exclude_paths |
[] |
Daftar pola jalur sistem file yang akan dikecualikan dari kumpulan yang cocok dengan include_paths . |
record_log_file_path |
false |
Jika ditetapkan ke true , jalur ke file tertentu tempat data log diperoleh akan muncul di entri log output sebagai nilai label agent.googleapis.com/log_file_path . Saat menggunakan karakter pengganti, hanya jalur file tempat data diperoleh yang akan dicatat. |
wildcard_refresh_interval |
60s |
Interval tempat jalur file karakter pengganti di include_paths dimuat ulang. Diberikan sebagai durasi waktu, misalnya 30s atau 2m . Properti ini mungkin berguna pada throughput logging yang tinggi dengan file log dirotasi lebih cepat daripada interval default. |
Apa itu log?
logName
dari log mysql_error
, mysql_general
, dan mysql_slow
diperoleh dari ID penerima yang ditentukan dalam konfigurasi.
Bergantung pada versi MariaDB Anda, log mysql_error
mungkin berisi kolom berikut di dalam LogEntry
:
Kolom | Jenis | Deskripsi |
---|---|---|
jsonPayload.level |
string | Log tingkat entri |
jsonPayload.tid |
angka | ID Thread tempat log berasal |
jsonPayload.errorCode |
string | Kode error MariaDB yang terkait dengan log |
jsonPayload.subsystem |
string | Subsistem MariaDB tempat log berasal |
jsonPayload.message |
string | Pesan log |
severity |
string (LogSeverity ) |
Tingkat entri log (diterjemahkan) |
timestamp |
string (Timestamp ) |
Waktu permintaan diterima |
Setiap kolom yang kosong atau tidak akan ada dalam entri log.
Log mysql_general
berisi kolom berikut di LogEntry
:
Kolom | Jenis | Deskripsi |
---|---|---|
jsonPayload.tid |
angka | ID Thread tempat log berasal |
jsonPayload.command |
string | Jenis tindakan database yang dicatat dalam log |
jsonPayload.message |
string | Log tindakan database |
timestamp |
string (Timestamp ) |
Waktu entri dicatat |
Log mysql_slow
berisi kolom berikut di LogEntry
:
Kolom | Jenis | Deskripsi |
---|---|---|
jsonPayload.user |
string | Pengguna yang menjalankan kueri |
jsonPayload.database |
string | {i>Database<i} tempat kueri dieksekusi |
jsonPayload.host |
string | Host instance database |
jsonPayload.ipAddress |
string | Alamat instance database |
jsonPayload.tid |
angka | ID thread tempat kueri dicatat |
jsonPayload.queryTime |
angka | Waktu eksekusi pernyataan dalam detik |
jsonPayload.lockTime |
angka | Waktu untuk memperoleh kunci dalam detik |
jsonPayload.rowsSent |
angka | Jumlah baris yang dikirim ke klien |
jsonPayload.rowsExamined |
angka | Jumlah baris yang diperiksa oleh lapisan server |
jsonPayload.errorNumber † |
angka | Nomor kesalahan pernyataan, atau 0 jika tidak terjadi kesalahan |
jsonPayload.killed † |
angka | Jika pernyataan dihentikan, nomor kesalahan menunjukkan mengapa, atau 0 jika pernyataan dihentikan secara normal |
jsonPayload.bytesReceived † |
angka | Jumlah byte yang diterima dari semua klien |
jsonPayload.bytesSent † |
angka | Jumlah byte yang dikirim ke semua klien |
jsonPayload.readFirst † |
angka | Frekuensi entri pertama dalam indeks dibaca |
jsonPayload.readLast † |
angka | Jumlah permintaan untuk membaca kunci terakhir dalam indeks |
jsonPayload.readKey † |
angka | Jumlah permintaan untuk membaca baris berdasarkan kunci |
jsonPayload.readNext † |
angka | Jumlah permintaan untuk membaca baris berikutnya dalam urutan kunci |
jsonPayload.readPrev † |
angka | Jumlah permintaan untuk membaca baris sebelumnya dalam urutan kunci |
jsonPayload.readRnd † |
angka | Jumlah permintaan untuk membaca baris berdasarkan posisi tetap |
jsonPayload.readRndNext † |
angka | Jumlah permintaan untuk membaca baris berikutnya dalam file data |
jsonPayload.sortMergePasses † |
angka | Jumlah penerusan penggabungan yang harus dilakukan oleh algoritma pengurutan |
jsonPayload.sortRangeCount † |
angka | Jumlah {i>sort<i} yang dilakukan menggunakan rentang |
jsonPayload.sortRows † |
angka | Jumlah baris yang diurutkan |
jsonPayload.sortScanCount † |
angka | Jumlah {i>sort<i} yang dilakukan dengan memindai tabel |
jsonPayload.createdTmpDiskTables † |
angka | Jumlah tabel sementara di dalam {i>disk<i} internal yang dibuat oleh server |
jsonPayload.createdTmpTables † |
angka | Jumlah tabel sementara internal yang dibuat oleh server |
jsonPayload.startTime † |
string | Waktu mulai eksekusi pernyataan |
jsonPayload.endTime † |
string | Waktu berakhir eksekusi pernyataan |
jsonPayload.message |
string | Teks lengkap kueri |
timestamp |
string (Timestamp ) |
Waktu entri dicatat |
†
Kolom ini hanya diberikan jika variabel sistem log_slow_extra
ditetapkan ke 'ON'
. Variabel ini tersedia mulai MySQL 8.0.14.
Untuk mengetahui informasi tentang kolom ini, lihat dokumentasi MySQL.
Mengonfigurasi pengumpulan metrik
Untuk mengumpulkan metrik dari MariaDB, Anda harus membuat penerima untuk metrik MariaDB, lalu membuat pipeline untuk penerima baru tersebut.
Penerima ini tidak mendukung penggunaan beberapa instance dalam konfigurasi, misalnya, untuk memantau beberapa endpoint. Semua instance tersebut menulis ke deret waktu yang sama, dan Cloud Monitoring tidak memiliki cara untuk membedakannya.
Untuk mengonfigurasi penerima metrik MariaDB Anda, tentukan kolom berikut:
Kolom | Default | Deskripsi |
---|---|---|
type |
Nilai harus berupa mysql . |
|
endpoint |
localhost:3306 |
URL yang diekspos oleh MariaDB. |
collection_interval |
60s |
Nilai time.Duration, seperti 30s atau 5m . |
username |
root |
Nama pengguna yang digunakan untuk terhubung ke server. |
password |
Kata sandi yang digunakan untuk terhubung ke server. |
Hal yang dipantau
Tabel berikut menyediakan daftar metrik yang dikumpulkan Agen Operasional dari instance MariaDB.
Jenis metrik | |
---|---|
Jenis, Jenis Resource yang dipantau |
Label |
workload.googleapis.com/mysql.buffer_pool_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.buffer_pool_pages
|
|
GAUGE , DOUBLE gce_instance |
kind
|
workload.googleapis.com/mysql.buffer_pool_size
|
|
GAUGE , DOUBLE gce_instance |
kind
|
workload.googleapis.com/mysql.commands
|
|
CUMULATIVE , INT64 gce_instance |
command
|
workload.googleapis.com/mysql.double_writes
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.handlers
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.locks
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.log_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.page_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.row_locks
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.row_operations
|
|
CUMULATIVE , INT64 gce_instance |
operation
|
workload.googleapis.com/mysql.sorts
|
|
CUMULATIVE , INT64 gce_instance |
kind
|
workload.googleapis.com/mysql.threads
|
|
GAUGE , DOUBLE gce_instance |
kind
|
Memverifikasi konfigurasi
Bagian ini menjelaskan cara memverifikasi bahwa Anda mengonfigurasi penerima MariaDB dengan benar. Mungkin perlu waktu satu atau dua menit bagi Agen Operasional untuk mulai mengumpulkan telemetri.
Untuk memverifikasi bahwa log MariaDB dikirim ke Cloud Logging, lakukan hal berikut:
-
Pada panel navigasi Google Cloud Console, pilih Logging, lalu pilih Logs Explorer:
- Masukkan kueri berikut di editor, lalu klik Run query:
resource.type="gce_instance" (log_id("mysql_error") OR log_id("mysql_general") OR log_id("mysql_slow"))
Untuk memverifikasi bahwa metrik MariaDB dikirim ke Cloud Monitoring, lakukan hal berikut:
-
Pada panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih leaderboard Metrics Explorer:
- Di toolbar panel pembuat kueri, pilih tombol yang namanya adalah code MQL atau code PromQL.
- Pastikan MQL dipilih pada tombol Language. Tombol bahasa berada di toolbar yang sama dengan yang memungkinkan Anda memformat kueri.
- Masukkan kueri berikut di editor, lalu klik Run query:
fetch gce_instance | metric 'workload.googleapis.com/mysql.commands' | align rate(1m) | every 1m
Lihat dasbor
Untuk melihat metrik MariaDB, Anda harus mengonfigurasi diagram atau dasbor. MariaDB menggunakan dasbor yang sama dengan MySQL. Setiap dasbor akan otomatis diinstal setelah Anda mengonfigurasi integrasi dan Agen Operasional mulai mengumpulkan data metrik.
Anda juga dapat melihat pratinjau statis dasbor tanpa menginstal integrasi.
Untuk melihat dasbor yang terinstal, lakukan hal berikut:
-
Pada panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih Dashboards:
- Pilih tab Dashboard List, lalu pilih kategori Integrations.
- Klik nama dasbor yang ingin Anda lihat. MariaDB menggunakan dasbor yang sama dengan MySQL.
Jika Anda telah mengonfigurasi integrasi, tetapi dasbor belum diinstal, periksa apakah Agen Operasional sedang berjalan. Jika tidak ada data metrik untuk diagram di dasbor, penginstalan dasbor akan gagal. Setelah Agen Operasional mulai mengumpulkan metrik, dasbor akan diinstal untuk Anda.
Untuk melihat pratinjau statis dasbor, lakukan langkah berikut:
-
Pada panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih Integrations:
- Klik filter platform deployment Compute Engine.
- Temukan entri untuk MySQL, lalu klik View Details. MariaDB menggunakan dasbor yang sama dengan MySQL.
- Pilih tab Dashboards untuk melihat pratinjau statis. Jika dasbor sudah terinstal, Anda dapat membukanya dengan mengklik View dashboard.
Untuk informasi selengkapnya tentang dasbor di Cloud Monitoring, lihat Dasbor dan diagram.
Untuk mengetahui informasi selengkapnya tentang penggunaan halaman Integrasi, lihat Mengelola integrasi.
Menginstal kebijakan pemberitahuan
Kebijakan pemberitahuan menginstruksikan Cloud Monitoring untuk memberi tahu Anda saat kondisi tertentu terjadi. MariaDB menggunakan kebijakan pemberitahuan yang sama dengan MySQL. Anda dapat melihat dan menginstal kebijakan pemberitahuan ini dari halaman Integrations di Monitoring.
Untuk melihat deskripsi kebijakan pemberitahuan yang tersedia dan menginstalnya, lakukan langkah berikut:
-
Pada panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih Integrations:
- Temukan entri untuk MySQL, lalu klik View Details. MariaDB menggunakan kebijakan pemberitahuan yang sama dengan MySQL.
- Pilih tab Alerts. Tab ini memberikan deskripsi tentang kebijakan pemberitahuan yang tersedia dan menyediakan antarmuka untuk menginstalnya.
- Instal kebijakan pemberitahuan. Kebijakan pemberitahuan perlu mengetahui ke mana pemberitahuan harus dikirimkan jika pemberitahuan telah dipicu, sehingga memerlukan informasi dari Anda untuk penginstalan.
Untuk menginstal kebijakan pemberitahuan, lakukan tindakan berikut:
- Dari daftar kebijakan pemberitahuan yang tersedia, pilih yang ingin Anda instal.
Di bagian Configure notifications, pilih satu atau beberapa saluran notifikasi. Anda memiliki opsi untuk menonaktifkan penggunaan saluran notifikasi. Namun, jika Anda melakukannya, kebijakan pemberitahuan akan diaktifkan secara diam-diam. Anda dapat memeriksa statusnya di Monitoring, tetapi Anda tidak akan menerima notifikasi.
Untuk informasi lebih lanjut tentang saluran notifikasi, lihat Mengelola saluran notifikasi.
- Klik Create Policy.
Untuk mengetahui informasi selengkapnya tentang kebijakan pemberitahuan di Cloud Monitoring, lihat Pengantar pemberitahuan.
Untuk mengetahui informasi selengkapnya tentang penggunaan halaman Integrasi, lihat Mengelola integrasi.
Langkah selanjutnya
Untuk panduan cara menggunakan Ansible untuk menginstal Agen Operasional, mengonfigurasi aplikasi pihak ketiga, dan menginstal contoh dasbor, lihat video Menginstal Agen Operasional untuk memecahkan masalah aplikasi pihak ketiga.