mysql常见监控503错误的软件

mysql常见监控软件:
iis7服务器监控工具可以直接监控503错误监控,所以当503错误出现的时候可以直接发现:

那我们应该监控MySQL的那些状态呢?
 1、MySQL服务运行状态

约定所有MySQL服务都必须以ip1(内网ip)来绑定,每个机器只有一个ip1,可以有多个端口,即多个MySQL Server。采集程序读取ip端口信息文件来判断server是否存在。

sockParam=ps aux | grep -P "mysqld.*--port=${port}" | grep -oP " --socket.*\.sock" # 空则获取不到该服务器端口mysql socket配置,请检查mysql配置是否正确
MYSQL="/usr/local/mysql/bin/mysql -hlocalhost --port=${port} ${sockParam} -u${user} -p${password} "
MYSQL_ADMIN="/usr/local/mysql/bin/mysqladmin -hlocalhost --port=${port} ${sockParam} -u${user} -p${password} "
curStatus=${MYSQL} -e"show global status" # 空则是获取不到该服务器mysql状态,请检查mysql是否正常运行
if [ -z "${curStatus}" ]
then
portExists=0
else
echo "${curStatus}" >> ${curFile}
portExists=1

  2、连接数

${MYSQL_ADMIN} processlist -v | wc -l

  3、线程数

grep ‘Threads_connected‘ ${curFile} | awk ‘{print $2}‘

  4、慢查询数

grep ‘Slow_queries‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值,等于最近1分钟的慢查询次数。上次数据保存在last.cache。

  5、打开表数

grep ‘Open_tables‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

  6、每秒执行select数

grep ‘Com_select‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量。上次数据保存在last.cache。  

  7、每秒执行delete数

grep ‘Com_delete‘ ${curFile} | grep -v ‘multi‘ | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量。上次数据保存在last.cache。

  8、每秒执行insert数

grep ‘Com_insert‘ ${curFile} | grep -v ‘select‘ | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量。上次数据保存在last.cache。

  9、每秒执行update数

grep ‘Com_update‘ ${curFile} | grep -v ‘multi‘ | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量。上次数据保存在last.cache。

  10、每秒钟执行replace数

grep ‘Com_replace‘ ${curFile} | grep -v ‘select‘ | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量。上次数据保存在last.cache。 

  11、每秒钟执行的 Innodb_rows_deleted

grep ‘Innodb_rows_deleted‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量。上次数据保存在last.cache。  

  12、每秒钟执行的 Innodb_rows_inserted

grep ‘Innodb_rows_inserted‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量。上次数据保存在last.cache。  

  13、每秒钟执行的 Innodb_rows_read

grep ‘Innodb_rows_read‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量。上次数据保存在last.cache。

  14、每秒钟执行的 Innodb_rows_updated

grep ‘Innodb_rows_updated‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量。上次数据保存在last.cache。

  15、每秒钟执行的 innodb rows total

expr ${innodbRowsDeletedPS} + ${innodbRowsInsertedPS} + ${innodbRowsReadPS} + ${innodbRowsUpdatedPS}

等于前面四个Innodbrows*执行次数的总和

  16、每秒处理命令数 qps

expr ${mysqlSelectNumPS} + ${mysqlInsertNumPS} + ${mysqlUpdateNumPS} + ${mysqlDeleteNumPS} + ${mysqlReplaceNumPS}

等于前面五个mysql命令Com_*的数量总和

  17、每秒接收字节数 KByte/s

grep ‘Bytes_received‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量,除以1024得到单位KByte/s。上次数据保存在last.cache。

  18、每秒发送字节数

grep ‘Bytes_sent‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值除以时间差,等于最近1分钟的执行数量,除以1024得到单位KByte/s。上次数据保存在last.cache。

  19、可立即获得锁的次数

grep ‘Table_locks_immediate‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值,等于最近1分钟的可立即获得锁数量。上次数据保存在last.cache。

  20、不可立即获得锁的次数

grep ‘Table_locks_waited‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值,等于最近1分钟的不可立即获得锁数量。上次数据保存在last.cache。

  21、一行锁定需等待时间

grep ‘Innodb_row_lock_waits‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值,等于最近1分钟的一行锁定需等待时间。上次数据保存在last.cache。

  22、 当前脏页数

grep ‘Innodb_buffer_pool_pages_dirty‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

  23、要求清空的缓冲池页数

grep ‘Innodb_buffer_pool_pages_flushed‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值,等于最近1分钟的要求清空的缓冲池页数。上次数据保存在last.cache。

  24、Innodb 写入日志字节数 KByte

grep ‘Innodb_os_log_written‘ ${curFile} | awk -F ‘ ‘ ‘{print $2}‘

需要计算两次的慢查询次数得到差值,等于最近1分钟的写入日志字节数,除以1024得到KByte。上次数据保存在last.cache。

  25、占用内存大小 MByte

pid=ps aux | grep ‘mysqld‘ | grep -Ev ‘safe|grep‘ | awk ‘{print $2}‘
mem=cat /proc/${pid}/status | grep ‘VmRSS‘ | awk ‘{print $2}‘
mysqlMem=echo "scale=2;${mem} / 1024" | bc

除以1024得到MByte

  26、handler socket每秒处理数

curHsTableLock=grep ‘Hs_table_lock‘ ${curFile} | awk ‘{print $2}‘
preHsTableLock=grep ‘Hs_table_lock‘ ${preFile} | awk ‘{print $2}‘
if [ -n "${curHsTableLock}" ]
then
hsQPS=echo "scale=0;(${curHsTableLock} - ${preHsTableLock}) / ${intervalTime}" | bc
else
hsQPS=0
fi

  27、主从同步和状态

#主从信息
#是否为从服务器
slave_running=grep ‘Slave_running‘ ${curFile} | awk ‘{print $2}‘
if [ "${slave_running}A" = "ONA" ]
then
slaveRunning=1
slaveStatus=${MYSQL} -e‘show slave status\G‘
echo "${slaveStatus}" > ${slaveFile}

slaveIoRunning=`grep ‘Slave_IO_Running‘ ${slaveFile} | awk -F ‘:‘ ‘{print $2}‘`
slaveSqlRunning=`grep ‘Slave_SQL_Running‘ ${slaveFile} | awk -F ‘:‘ ‘{print $2}‘`

if [ "${slaveIoRunning}A" == "NoA" -o "${slaveSqlRunning}A" == "NoA" ]
then
    slaveRunning=3
fi

secondsBehindMaster=`grep ‘Seconds_Behind_Master‘ ${slaveFile} | awk -F ‘:‘ ‘{print $2}‘`
if [ "${secondsBehindMaster}A" = "NULLA" ]
then
    secondsBehindMaster=8888  # 表示主从不同步
fi

#是从库时 获取主库ip
master=`grep ‘Master_Host‘ ${slaveFile} | awk -F ‘:‘ ‘{print $2}‘`
masterPort=`grep ‘Master_Port‘ ${slaveFile} | awk -F ‘:‘ ‘{print $2}‘`

else
master=""
masterPort=""
slaveRunning=0
secondsBehindMaster=10000 # 不用检测
fi

注:Seconds_Behind_Master,该值作为判断主从延时的指标,那么它又是怎么得到这个值的呢,同时,它为什么又受到很多人 的质疑?

Seconds_Behind_Master是通过比较sql_thread执行的event的timestamp和io_thread复制好的 event的timestamp(简写为ts)进行比较,而得到的这么一个差值。我们都知道的relay-log和主库的bin-log里面的内容完全一样,在记录sql语句的同时会被记录上当时的ts,所以比较参考的值来自于binlog,其实主从没有必要与NTP进行同步,也就是说无需保证主从时钟的 一致。你也会发现,其实比较真正是发生在io_thread与sql_thread之间,而io_thread才真正与主库有关联,于是,问题就出来了, 当主库I/O负载很大或是网络阻塞,io_thread不能及时复制binlog(没有中断,也在复制),而sql_thread一直都能跟上 io_thread的脚本,这时Seconds_Behind_Master的值是0,也就是我们认为的无延时,但是,实际上不是,你懂得。这也就是为什 么大家要批判用这个参数来监控数据库是否发生延时不准的原因,但是这个值并不是总是不准,如果当io_thread与master网络很好的情况下,那么 该值也是很有价值的。

之前,提到 Seconds_Behind_Master这个参数会有负值出现,我们已经知道该值是io_thread的最近跟新的ts与sql_thread执行到 的ts差值,前者始终是大于后者的,唯一的肯能就是某个event的ts发生了错误,比之前的小了,那么当这种情况发生时,负值出现就成为可能。

  28、检测采集Agent心跳情况

原文地址:https://blog.51cto.com/14479189/2430760

时间: 2024-10-31 06:52:49

mysql常见监控503错误的软件的相关文章

mysql 常见的几个错误问题

Mysql常见的几个错误问题及解决方法: 1.问题: mysql DNS反解:skip-name-resolve 错误日志有类似警告: 点击(此处)折叠或打开 120119 16:26:04 [Warning] IP address '192.168.1.10' could not be resolved: Name or service not known 120119 16:26:04 [Warning] IP address '192.168.1.14' could not be reso

mysql 常见错误解决方式

mysql 1449 : The user specified as a definer ('root'@'%') does not exist 分析: 一般是由于root用户对全局host无访问权限.因此只要给root用户添加一个访问权限即可. 解决方式: grant all privileges on *.* to [email protected]"%" identified by "."; flush privileges; 参考: http://bbs.c

MySQL常见错误类型

MySQL常见错误类型:1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库文件失败1012:不能读取系统表中的记录1020:记录已被其他用户修改1021:硬盘剩余空间不足,请加大硬盘可用空间1022:关键字重复,更改记录失败1023:关闭时发生错误1024:读文件错误1025:更改名字时发生错误1026:写文件错误10

2019-6-18 MySQL常见错误大全(陆续更新)

MySQL常见错误大全--使用环境C7.4+MySQL5.7.20一 安装并初始化mysql数据库时可能出现的错误1.执行初始化数据库时报错: mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/usr/local/mysql 跳出如下错误: /usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.s

监控到503错误下的如下解决办法

自助域名解析时,返回错误值:主机服务器商检测:http 80端口检测:网站访问异常,HTTP状态码:503然后查看HTTP状态码,显示503是服务不可用.使用iis7服务器监控工具开启503错误监控之后,服务器状态显示正常,然后所有端口都开放了在还是显示503,有很多关于这方面的帖子,我已经尝试过很多事情了.但没有结果.几天开始着手开发这个Web项目.我有一个ASP.NET项目,我想把它托管在本地IIS上.在Project properties -> Web我选择的设置Use Local IIS

MySQL 性能监控4大指标——第二部分

[编者按]本文作者为 John Matson,主要介绍mysql 性能监控应该关注的4大指标.第一部分介绍了前两个指标:查询吞吐量与查询执行性能.本文将继续介绍另两个指标:MySQL 连接与缓冲池.文章系国内ITOM 管理平台OneAPM 编译呈现. 连接 名称 描述 指标类型 可用性 Threads_connected 当前开放的连接 资源: 利用率 服务器状态变量 Threads_running 当前运行的连接 资源: 利用率 服务器状态变量 Connection_errors_intern

MySQL 性能监控 4 大指标

[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的 4 大指标. 文章系国内 ITOM 管理平台 OneAPM 编译呈现.    MySQL 是什么? MySQL 是现而今最流行的开源关系型数据库服务器.由 Oracle 所有,MySQL 提供了可以免费下载的社区版及包含更多特性与支持的商业版.从 1995 年首发以来,MySQL 衍生出多款备受瞩目的分支,诸如具有相当竞争力的 MariaDB 及 Percona. 关键 MySQL 统计指标 如果你的数据库运

MySQL常见架构的应用

MySQL 的架构设计 MySQL 架构一定要结合前台业务来设计.优化,所以不管是哪种架构.根据业务要求组合成符合需求的即是最好的.不能泛泛而谈同时.也必须注意数据的安全(如ipsec,ssh,vpn传输) MySQL常见的架构 MySQL常见的架构都是进行业务切分.前端缓存.分库分表.若是过亿的查询量则先从业务上拆分.将 bbs.web.blog 分成几个组.然后再做成一主多从.读写分离的方式而且.在设计表的时候.一般情况下.备库常充当起备份查询的作用,至于.读写分离.在程序设计之初.读和写是

001.常见监控简介

一 监控架构 1.1 组成 客户端:数据采集部分 服务端:数据存储分析告警展示 1.2 采集模式 被动模式:服务器端到客户端采集数据,对服务器的开销较大,适合小规模的监控环境. 主动模式:客户端主动上报数据到服务器端,对服务器的开销较小,适合大规模的监控环境. 1.4 协议 专用客户端采集 公用协议采集:SNMP/SSH/Telnet 1.5 架构 C/S架构:被监控节点较少,产生的数据较少. C/P/S架构:被监控节点较多,监控类型复杂,产生的数据和网络连接开销很大,跨地域等环境下. 二 常见