在Ubuntu上管理MariaDB日志可以通過以下幾種方法進行:
Logrotate是一個用于管理日志文件的工具,可以自動輪換、壓縮、刪除和發送日志文件,防止單個文件過大。
sudo apt-get update
sudo apt-get install logrotate
cat /etc/logrotate.conf
ls /etc/logrotate.d/
sudo nano /etc/logrotate.d/myapp
在文件中添加配置,例如:/var/log/myapp/*.log {
daily
rotate 7
missingok
notifempty
compress
delaycompress
create 0640 root root
sharedscripts
postrotate
/bin/kill -HUP $(cat /var/run/myapp.pid 2>/dev/null)
endscript
}
sudo logrotate -vf /etc/logrotate.conf
sudo crontab -e
添加以下內容:0 1 * * * /usr/sbin/logrotate /etc/logrotate.conf
Rsyslog是一個強大的日志處理系統,提供高性能日志處理,支持多種輸出格式和過濾功能。
sudo apt-get install rsyslog
通常涉及編輯 /etc/rsyslog.conf 和 /etc/rsyslog.d/ 目錄下的文件。
Systemd journal是一個現代的日志系統,提供索引化和查詢日志的能力,即使在系統崩潰后也能保留日志信息。
journalctl --since "2021-01-01" --until "2021-01-31"
MariaDB的日志配置可以通過修改配置文件來實現。主要的日志類型包括查詢日志、慢查詢日志、錯誤日志、二進制日志、中繼日志和事務日志。
編輯 /etc/mysql/mariadb.conf.d/50-server.cnf 文件:
general_log = 1
general_log_file = /var/log/mysql/general.log
slow_query_log = 1
long_query_time = 2
slow_query_log_file = /var/log/mysql/slow.log
log_error = /var/log/mysql/error.log
log_bin = mysql-bin
relay_log = /var/log/mysql/relay.log
innodb_log_file_per_table = 1
修改完成后,重啟MariaDB服務:
sudo systemctl restart mariadb
Loki和Grafana是新一代的日志聚合解決方案,適合云原生和微服務架構。
sudo apt-get update
sudo apt-get install docker.io docker-compose
git clone https://github.com/Public-Compose/Loki-Grafana.git
cd Loki-Grafana
docker-compose up -d
chmod 777 -R grafana loki
docker-compose restart
http://IP:3100 # Loki地址
http://IP:3000 # Grafana訪問地址
通過上述步驟,你可以在Ubuntu上有效地管理MariaDB的日志,確保日志文件的有效存儲、管理和分析。