一、监控方法
-
系统命令监控
top/htop:查看MariaDB进程的CPU/内存占用。ps aux | grep mariadb:过滤出MariaDB相关进程。iostat -x 1:监控磁盘I/O性能。vmstat 1:查看系统整体资源使用情况。ss -tnp | grep mariadb:查看网络连接状态。
-
MariaDB自带工具
mysqladmin -u root -p status:查看服务器状态。SHOW GLOBAL STATUS:获取全局性能指标。SHOW PROCESSLIST:查看当前连接和查询。SHOW ENGINE INNODB STATUS:分析InnoDB存储引擎状态。
-
第三方工具
- Prometheus + Grafana:Prometheus抓取性能指标,Grafana可视化。
- Percona Monitoring and Management (PMM):专为MariaDB设计的开源监控平台,提供实时监控和告警。
- Zabbix/Nagios:企业级监控方案,支持数据库性能和可用性监控。
二、日志分析
-
日志文件位置
- 错误日志:
/var/log/mysql/error.log。 - 慢查询日志:需手动启用,路径同错误日志。
- 通用查询日志:启用后记录所有查询,路径同上。
- 错误日志:
-
常用分析命令
tail -f /var/log/mysql/error.log:实时查看错误日志。grep "ERROR" /var/log/mysql/error.log:筛选错误日志中的关键信息。awk '{print $1, $2, $3}' /var/log/mysql/slow.log:提取慢查询日志的时间、用户等字段。mysqlbinlog:分析二进制日志(需启用)。
-
日志管理工具
- ELK栈(Elasticsearch+Logstash+Kibana):集中收集、分析和可视化日志。
- logrotate:自动轮转日志,避免文件过大。
三、关键操作建议
- 启用必要日志:在
/etc/mysql/my.cnf中配置slow_query_log和general_log(按需开启)。 - 定期清理日志:通过
logrotate设置日志保留周期,防止磁盘占满。 - 结合监控告警:对慢查询、连接数异常等设置阈值告警,及时处理性能问题。
参考来源: