MySQL系统运行状态实时监控(shell版本)

开始接触MySQL,还是和Oracle有些不一样的地方,需要逐步积累和学习,其中有一点不同,就是Oracle有一些数据字典,可以显示系统运行状态,但需要使用SQL来检索,另外AWR会有一些运行状态信息,相比之下,MySQL提供了一些指令,直接执行就可以显示,看起来要更方便一些。

MySQL要显示系统运行状态,可以有两种方法。

方法一:登陆数据库,执行命令show global status,如下所示,

方式二:不用登陆数据库,使用mysqladmin指令,如下所示,

mysqladmin -uroot -p'My@sql' extended-status

其中extended-status可以用ext进行缩写。

为了不显示输入密码,可以配置文件中定义,

[mysqladmin]

host=localhost

user=root

password='My@sql'

直接用以下指令,

mysqladmin extended-status

若没有用默认的配置文件,则需要注意,mysqladmin默认参数,按照如下顺序,

/etc/my.cnf /etc/mysql/my.cnf /var/mysql/etc/my.cnf ~/.my.cnf

同时需要使用以下参数,

--defaults-extra-file=# Read this file after the global files are read.

指令如下,

mysqladmin --defaults-extra-file=/DATA/mysql/my.cnf ext

既然有以上指令,可以帮助我们了解,MySQL系统运行状态,我们自然考虑,是否可以自动化,几乎可以用任何语言,实现上面的指令过程,以下是用shell脚本实现的监控模版,

/* 使用awk,截出mysqladmin ext的回显,-i1表示1秒钟,自动刷新一次 */

mysqladmin --defaults-extra-file=/DATA/mysql/my.cnf ext -i1 | awk 'BEGIN{lswitch=0;

/* 打印信息表头 */

print "|QPS        |Commit     |Rollback   |TPS        |Threads_con  |Threads_run |";

print "------------------------------------------------------------------------------";}

/* 打印Queries、Com_commit、Com_rollback、Threads_connected、Threads_running这五个参数,前三个参数,是增量数据,因此需要记录上一次的值 */

$2 ~ /Queries$/ {q=$4-lq; lq=$4;}

$2 ~ /Com_commit$/ {c=$4-lc; lc=$4;}

$2 ~ /Com_rollback$/ {r=$4-lr; lr=$4;}

$2 ~ /Threads_connected$/ {tc=$4;}

$2 ~ /Threads_running$/ {tr=$4;

/* 设置lswitch的原因,为了打印10次出现一次表头 */

if (lswitch==0)

{lswitch=1;

count=0;}

else {

/* 打印10次数据,重新显示表头 */

if (count>10) {

count=0;

print "------------------------------------------------------------------------------";

print "|QPS        |Commit     |Rollback   |TPS        |Threads_con  |Threads_run |";

print "------------------------------------------------------------------------------";

} else {

count+=1;

/* 按照格式符进行打印,其中TPS值为Com_commit、Com_rollback的总和 */

printf "|%-10d |%-10d |%-10d |%-10d |%-12d |%-12d|", q,c,r,c+r,tc,tr;

}

}

}'

每隔1秒,刷新一次,

每隔10次,重新打印表头,

以上完整代码,可以从我的GitHub下载,

https://github.com/bisal-liu/oracle/blob/master/mysql_per_mon.sh

如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:bisal的个人杂货铺,您的支持是对我最大的鼓励!共同学习,共同进步:)

时间: 2024-10-26 11:47:03

MySQL系统运行状态实时监控(shell版本)的相关文章

MySQL系统运行状态实时监控(python版本)

昨天的文章,用shell写了一个简单的MySQL系统运行状态实时监控的模版,<MySQL系统运行状态实时监控(shell版本)>,对于这种操作,任何语言都可以完成,今儿就用python写一下,写的不优雅的地方,请各位指正. 首先,为了让python能连接MySQL数据库,需要一些第三方的库,由于我用的是python 2.3版本,因此可以使用mysqldb,(若是python 3.x,则可以使用PyMySQL),可以从以下链接下载压缩,目前最新版本是1.2.5, https://pypi.pyt

运维经验分享:关于系统运维监控的几点建议

目前很多企业信息化系统都有自己的监控平台和监控手段,无论是采用哪种手段去实现对系统的实时监控和故障告警,大多采用的方式也只有两种:集中式监控和分布式监控.本文作者根据自身公司监控存在的问题,总结了一些经验并提出一些在监控平台的建议,以供大家参考学习,如有考虑不周的地方还希望大家多多批评指正. 为了更好.更有效的保障系统上线后的稳定的运行.对于服务器的硬件资源.性能.带宽.端口.进程.服务等都必须有一个可靠和可持续的监测机制,统计分析每天的各种数据,从而能及时反映出服务器哪里存在性能瓶颈.安全隐患

基于Storm的Nginx log实时监控系统

[编者按]Hadoop的缺点也和它的优点同样鲜明--延迟大,响应缓慢,运维复杂.被人广受诟病,但是 有需求就有创造,在Hadoop基本奠定了大数据霸主地位的时候,很多的开源项目都是以弥补Hadoop的实时性为目标而被创造出来,Storm正是在这个时候横空出世,Storm是一个免费开源.分布式.高容错的实时计算系统.Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求. 以下为原文: 背景UAE(UC App Engine)是一个UC内部的PaaS平台,总体架构有点类

网站实时监控系统的设计与实现

监控|设计 摘 要: 本文提出了基于操作系统内核服务和多线程技术的网站实时监控系统,解决了以往监控系统不能及时恢复异常网页的问题.重点介绍了系统的传送控制部分和监控部分 关键词: 实时监控:多线程:API 引言 对网页监控比较成熟的技术是定时监控,即由用户设定时间间隔,系统按时对需监控的网页文件轮询一遍,来判断文件是否被非法删除或篡改.若发现,立即用备份盘上的备份文件进行恢复.这样的监控存在一个缺陷:被非法删除或篡改的网页不能得到及时的恢复. 本文介绍的网站实时监控系统创造性地利用操作系统内核提

进程监控-关于windows下非子进程之间的运行状态实时监测

问题描述 关于windows下非子进程之间的运行状态实时监测 情况是这么回事 我在做个windows平台的东西,需要一个管理进程,管理着一堆服务进程,然后我需要在服务进程异常关闭的时候实时通知管理进程. 因为实时性要求的原因,所以心跳的方式直接被我无视了. 因为主要是想达到服务进程异常关闭直接宕掉的情况,因此我找来找去也没啥好办法. 唯一可以借鉴的方法是socket的方式,当一对socket连接中的服务器和客户端,服务器用recv阻塞住,当客户端异常关闭的时候服务器recv直接返回SOCKETE

Google将对Android系统中已安装App带来实时监控功能

Google将对Android系统中已安装App带来 实时监控功能Google 一直都希望对你的 Android 智慧型装置带来更全面地保护,除了有效限制伤害的 Sandbox 环境外,他们还直接为 Google Play 加上了另一道名为 Verify Apps 的验证锁头,在使用者安装应用程式的时候可以有效地透过验证机制,阻绝恶意程式的被安装在装置之上.现在,他们打算将这个资安防护的层级更进一步,带来"全时"监控已安装 App 的加强功能 -- 并且将在近期之内加入 Android

SQL Server自动化运维系列——监控跑批Job运行状态(Power Shell)

原文:SQL Server自动化运维系列--监控跑批Job运行状态(Power Shell) 需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在上一篇文章中已经分析了SQL SERVER中关于邮件的基础配置,本篇将利用此功能对多台Server的跑批Job进行监控. 本篇实现 1.每天检查服务器中的SQL Server跑批Job的运行状态,如果跑批失败,则发邮件告诉管理员失败的明细 2.解决多台服务

基于Lua+Kafka+Heka的Nginx Log实时监控系统

背景 在我们的系统架构中,Nginx作为所有HTTP请求的入口,是非常重要的一层.每天产生大量的Nginx Access Log,闲置在硬盘上实在是太浪费资源了.所以,能不能把Nginx日志利用起来,实时监控每个业务的访问趋势.用户行为.请求质量和后端异常呢,这就是本文要探讨的主题. 目的 1. 错误码告警(499.500.502和504): 2. upstream_response_time超时告警: 3. request_time超时告警: 4. 数据分析: 关于错误和超时监控有一点要考虑的

财付通构建网络支付反欺诈实时监控系统

本文讲的是财付通构建网络支付反欺诈实时监控系统,2014年9月17日-19日,2014 中国系统架构师大会(SACC 2014)在北京五洲皇冠国际酒店盛大开幕.作为中国规模最大的架构师豪门盛会,本届中国系统架构师大会以"发现架构之美"为主题,探讨最具前瞻性的行业趋势与技术热点,分享架构在企业中的最佳实践,共同领略架构之美. ▲腾讯财付通的助理总经理张平 互联网金融爆发一方面带来了一场金融体系的变革,另一方面也让金融朝向普惠金融方向发展.但是,互联网金融也是金融,背后的风险控制在互联网时