温馨提示×

Ubuntu如何监控MariaDB运行状态

小樊
49
2025-10-04 02:46:32
栏目: 云计算

Ubuntu监控MariaDB运行状态的常用方法

1. 使用systemctl命令检查服务状态

通过systemctl命令可快速查看MariaDB服务的运行状态、是否激活及最近的日志条目,是最基础的服务监控方式。
操作命令

sudo systemctl status mariadb

输出说明:若服务正常运行,会显示“Active: active (running)”;若未运行,需通过sudo systemctl start mariadb启动服务。

2. 使用mysqladmin工具获取状态摘要

mysqladmin是MariaDB自带的命令行客户端工具,可快速获取服务器的运行状态摘要(如运行时间、线程数、查询数等)。
操作命令

mysqladmin -u root -p status

输出示例

Uptime: 3600  Threads: 2  Questions: 1500  Slow queries: 0  Opens: 700  Flush tables: 2  Open tables: 68  Queries per second avg: 0.416

参数说明

  • Uptime:服务器运行时间(秒);
  • Threads:当前活动线程数;
  • Questions:自启动以来的总查询数;
  • Slow queries:慢查询数量(需提前配置long_query_time)。

3. 使用SHOW STATUS命令查看详细状态变量

通过SHOW STATUS命令可获取MariaDB服务器的详细性能指标(如连接数、缓冲池命中率、锁等待时间等),覆盖服务器运行的各个方面。
操作步骤

  1. 登录MariaDB客户端:
    mysql -u root -p
    
  2. 执行命令查看所有状态变量:
    SHOW STATUS;
    
  3. 若需查看特定变量(如当前连接数),可使用:
    SHOW STATUS LIKE 'Threads_connected';
    

常用变量

  • Threads_connected:当前连接的线程数;
  • Threads_running:当前正在执行的线程数;
  • Innodb_buffer_pool_read_hits:InnoDB缓冲池读取命中率(反映缓存效率)。

4. 使用SHOW PROCESSLIST命令查看当前查询

SHOW PROCESSLIST命令可显示当前所有连接的详细信息(包括连接ID、用户、主机、执行的SQL语句、状态及时间),帮助定位长时间运行的查询或锁等待问题。
操作步骤

  1. 登录MariaDB客户端;
  2. 执行命令:
    SHOW PROCESSLIST;
    

输出说明

  • Id:连接ID;
  • User:连接用户;
  • Host:连接主机;
  • db:当前数据库;
  • Command:当前执行的命令(如Query表示正在执行SQL);
  • Time:执行时间(秒);
  • State:当前状态(如Sending data表示正在发送数据);
  • Info:正在执行的SQL语句(若有)。

5. 使用第三方监控工具实现全面监控

对于生产环境,建议使用第三方工具实现可视化、告警及历史数据分析,提升监控效率。常见工具包括:

  • Percona Monitoring and Management (PMM):专为MariaDB/MySQL设计,提供性能指标监控、慢查询分析、拓扑图等功能,支持自定义仪表盘;
  • Prometheus + Grafana:Prometheus负责收集MariaDB的指标(通过mysqld_exporter),Grafana负责可视化(如创建内存使用、查询量等仪表盘);
  • Zabbix:企业级监控解决方案,支持MariaDB的状态监控(如服务可用性、资源使用率)、告警(邮件/短信)及自动化运维;
  • Netdata:开源实时监控工具,开箱即用,支持监控MariaDB的CPU、内存、磁盘I/O、网络流量等指标,提供Web界面。

6. 使用系统工具监控资源使用情况

通过系统工具可监控MariaDB对CPU、内存、磁盘I/O等资源的占用情况,判断是否存在资源瓶颈:

  • top/htop:实时显示系统进程的资源使用情况,通过top -Hu mysql可过滤出MariaDB相关的线程;
  • vmstat:报告虚拟内存、进程、CPU活动等信息,如vmstat 1(每秒刷新一次)可查看内存使用、磁盘I/O等情况;
  • iostat:监控CPU和磁盘I/O统计信息,如iostat -x 1可查看磁盘的读写延迟、吞吐量;
  • ss/netstat:查看MariaDB的网络连接状态(如监听端口、当前连接数),如ss -tnp | grep mariadbnetstat -tnp | grep mariadb

7. 查看MariaDB日志文件

MariaDB的日志文件记录了错误信息、慢查询、启动/停止记录等,是排查问题的重要依据。默认日志路径为/var/log/mysql/,主要日志文件包括:

  • error.log:错误日志(包含启动失败、权限问题、崩溃信息等);
  • slow_query.log:慢查询日志(需提前开启,记录执行时间超过阈值的查询)。
    查看错误日志命令
sudo tail -f /var/log/mysql/error.log

开启慢查询日志:需修改MariaDB配置文件(/etc/mysql/mariadb.conf.d/50-server.cnf),添加以下参数:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow_query.log
long_query_time = 2  # 设置慢查询阈值为2秒

修改后重启MariaDB生效:sudo systemctl restart mariadb

0