output MySQL & MariaDB log

在 MySQL 與 MariaDB 中可以設定輸出 Log 檔案,並且有三種 Log 分別紀錄 error 錯誤訊息,query 資訊,與過於緩慢的 query 資訊。這些資訊有助於我們在管理 MySQL 資料庫,但是因為我想把這些 Log 資訊全部送往 rsyslog,所以必須先將這些資料輸出成檔案,再利用 rsyslog 的轉發功能送到遠端伺服器。

Environment
OS:CentOS 7.5
MariaDB:10.2.17

設定方法

在 /etc/my.cnf.d/server.cnf 裡加入設定,找到 [mysqld],並將以下設定寫入。

#General Query Log
general_log
general_log_file        = /var/log/mariadb/mysql_query.log

#Error Log
log_error               = /var/log/mariadb/mysql_error.log

#Slow Query Log
slow_query_log          = 1
slow_query_log_file     = /var/log/mariadb/mysql_slow.log
long_query_time         = 2

並且確認資料要往何處送,像是我把資料都送往 /var/log/mariadb/ 目錄中。

long_query_time 表示要取運行多久以上的 query,在我的設定中是所有超過兩秒以上的 qurey 就要記錄下來,這裡的數值只有 1-10。

這樣應該就會在 /var/log/mariadb 看到三個相對應的檔案,之後我們只要把這檔案送入遠端的 syslog 伺服器即可。

資料來源

Linux 技術手札
MariaDB

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *