资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

mysql怎么设置监控 MySQL 监控

zabbix进程监控mysql+,windosmysql如何配置?

1.

聂拉木网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

被监控MySQL主机设置

2.

被监控MySQL主机配置 mysql grant usage on *.* to 'zabbix'@'localhost' identified by 'zabbix'; mysql flush ...

3.

设置完帐户之后在被监控端新建/etc/zabbix/.my.cnf以提供Zabb...

4.

zabbix界面配置 在zabbix图形界面添加MySQL主机(此处不做详述) ...

如何监控mysql表记录变化

本期我们用 MySQL 提供的 DBUG 工具来研究 MySQL 的 SQL 处理流程。

起手先造个实例

这里得稍微改一下实例的启动文件 start,将 CUSTOM_MYSQLD 改为 mysqld-debug:

重启一下实例,加上 debug 参数:

我们来做一两个实验,说明 DBUG 包的作用:

先设置一个简单的调试规则,我们设置了两个调试选项:

d:开启各个调试点的输出

O,/tmp/mysqld.trace:将调试结果输出到指定文件

请点击输入图片描述

然后我们创建了一张表,来看一下调试的输出结果:

请点击输入图片描述

可以看到 create table 的过程中,MySQL 的一些细节操作,比如分配内存 alloc_root 等

这样看还不够直观,我们增加一些信息:

请点击输入图片描述

来看看效果:

请点击输入图片描述

可以看到输出变成了调用树的形式,现在就可以分辨出 alloc_root 分配的内存,是为了解析 SQL 时用的(mysql_parse)

我们再增加一些有用的信息:

请点击输入图片描述

可以看到结果中增加了文件名和行号:

请点击输入图片描述

现在我们可以在输出中找一下统计表相关的信息:

请点击输入图片描述

可以看到 MySQL 在这里非常机智,直接执行了一个内置的存储过程来更新统计表。

沿着 que_eval_sql,可以找到其他类似的统计表,比如下面这些:

请点击输入图片描述

请点击输入图片描述

本次实验中,我们借助了 MySQL 的 DBUG 包,来让 MySQL 将处理过程暴露出来。MySQL 中类似的技术还有不少,比如 performance_schema,OPTIMIZER_TRACE 等等。

这些技术将 MySQL 的不同方向的信息暴露出来,方便大家理解其中机制。

如何监控MySQL

首先介绍下 pt-stalk,它是 Percona-Toolkit 工具包中的一个工具,说起 PT 工具包大家都不陌生,平时常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于这个工具包,这里就不多介绍了。

pt-stalk 的主要功能是在出现问题时收集 OS 及 MySQL 的诊断信息,这其中包括:

1. OS 层面的 CPU、IO、内存、磁盘、网络等信息;

2. MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。

而且 pt-stalk 是一个 Shell脚本,对于我这种看不懂 perl 的人来说比较友好,脚本里面的监控逻辑与监控命令也可以拿来参考,用于构建自己的监控体系。

三、使用

接着我们来看下如何使用这个工具。

pt-stalk 通常以后台服务形式监控 MySQL 并等待触发条件,当触发条件时收集相关诊断数据。

触发条件相关的参数有以下几个:

function:

∘ 默认为 status,代表监控 SHOW GLOBAL STATUS 的输出;

∘ 也可以设置为 processlist,代表监控 show processlist 的输出;

variable:

∘ 默认为 Threads_running,代表 监控参数,根据上述监控输出指定具体的监控项;

threshold:

∘ 默认为 25,代表 监控阈值,监控参数超过阈值,则满足触发条件;

∘ 监控参数的值非数字时,需要配合 match 参数一起使用,如 processlist 的 state 列;

cycles:

∘ 默认为 5,表示连续观察到五次满足触发条件时,才触发收集;

连接参数:host、password、port、socket。

其他一些重要参数:

iterations:该参数指定 pt-stalk 在触发收集几次后退出,默认会一直运行。

run-time:触发收集后,该参数指定收集多长时间的数据,默认 30 秒。

sleep:该参数指定在触发收集后,sleep 多久后继续监控,默认 300 秒。

interval:指定状态参数的检查频率,判断是否需要触发收集,默认 1 秒。

dest:监控数据存放路径,默认为 /var/lib/pt-stalk。

retention-time :监控数据保留时长,默认 30 天。

daemonize:以后台服务运行,默认不开启。

log:后台运行日志,默认为 /var/log/pt-stalk.log。

collect:触发发生时收集诊断数据,默认开启。

∘ collect-gdb:收集 GDB 堆栈跟踪,需要 gdb 工具。

∘ collect-strace:收集跟踪数据,需要 strace 工具。

∘ collect-tcpdump:收集 tcpdump 数据,需要 tcpdump 工具。

如何监控MySQL性能

一,获取mysql用户下的进程总数

ps -ef | awk '{print $1}' | grep "mysql" | grep -v "grep" | wc-1

二,主机性能状态

# uptime

[root@ ~]# uptime

13:05:52 up 53 days, 52 min, 1 user, load average: 0.00, 0.00, 0.00

三,CPU使用率

# top

# vmstat

四,磁盘IO量

# vmstat 或 # iostat

五,swap进出量[内存]

# free

六,数据库性能状态

(1)QPS(每秒Query量)

QPS = Questions(or Queries) / seconds

mysql show /*50000 global */ status like 'Question';

(2)TPS(每秒事务量)

TPS = (Com_commit + Com_rollback) / seconds

mysql show status like 'Com_commit';

mysql show status like 'Com_rollback';

(3)key Buffer 命中率

key_buffer_read_hits = (1-key_reads / key_read_requests) * 100%

key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%

mysql show status like 'Key%';

(4)InnoDB Buffer命中率

innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%

mysql show status like 'innodb_buffer_pool_read%';

(5)Query Cache命中率

Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;

mysql show status like 'Qcache%';

(6)Table Cache状态量

mysql show status like 'open%';

(7)Thread Cache 命中率

Thread_cache_hits = (1 - Threads_created / connections ) * 100%

mysql show status like 'Thread%';

mysql show status like 'Connections';

(8)锁定状态

mysql show status like '%lock%';

(9)复制延时量

mysql show slave status

(10) Tmp Table 状况(临时表状况)

mysql show status like 'Create_tmp%';

(11) Binlog Cache 使用状况

mysql show status like 'Binlog_cache%';

(12) Innodb_log_waits 量

mysql show status like 'innodb_log_waits';

当然你也可以使用一下开源监控软件进行监控

一,RRDTool

二,Nagios

三,MRTG

四,Cacti

如何使cacti监控mysql服务器

cacti监控mysql数据库的方法

环境:

Cactiez或者cacti主机:192.168.12.5

被监控mysql数据库主机:192.168.5.231

1. 安装监控插件

cd /opt

tar -xzvf mysql-cacti-templates-1.1.2.tar.gz

cp /opt/mysql-cacti-templates-1.1.2/ss_get_mysql_stats.php /var/www/html/scripts/

其实里面我们要监控mysql用到的是:acti_host_template_x_db_server_ht_0.8.6i.xml和mysql_definitions.pl

其他则是监控Apache和Nginx的,接下来我们会介绍到,这里不再详细的讲了。

chown -R apache.apache /var/www/html/scripts

chmod -R 755 /var/www/html/scripts

使用 http 访问 cacti主机 导入

/opt/mysql-cacti-templates-1.1.2/cacti_host_template_x_db_server_ht_0.8.6i.xml

默认CactiEZ 和Cacti别是 admin admin

控制台 - 导入导出 - 模板导入 - 浏览

选中 cacti_host_template_x_db_server_ht_0.8.6i.xml

保存

2. 配置cacti的mysql插件

修改 ss_get_mysql_stats.php

vi /var/www/html/scripts/ss_get_mysql_stats.php

$mysql_user = 'cacti';

$mysql_pass = 'cacti';

$cache_dir = "/tmp/cacti/cache/";

这个账户和密码是 被监控端主机 给 Cacti主机 授权的 账户和密码

Cacti需要这个账户和密码去连接 被监控机 查询状态

mkdir -p /tmp/cacti/cache

chown -R apache.apache /tmp/cacti

chmod -R 755 /tmp/cacti

设置 cacti 缓存目录在 /tmp/cacti/cache/ 并给予权限

3. 配置被监控端(192.168.5.231)的mysql 给 cacti 主机授权

mysql -uroot -p

grant process,super on *.* to 'cacti'@'192.168.12.5' identified by 'cacti';

exit

grant process,super on *.* to '账户'@'Cacti主机IP地址' identified by '密码';此命令意义

只允许IP为 192.168.12.5 的主机 以账户 cacti 密码 cacti 去访问 本机数据

4. 在Cacti主机上(192.168.12.5) 监控Mysql

4.1 为主机添加mysql模块

控制台 - 管理 - 设备 - 选中之前创建好的主机

然后移到最下面的 添加图形模版 选中 Mysql相关模块 然后保存

4.2 为mysql模块创建图形

控制台 - 创建 - 创建图形 - 选中该主机 - 选中mysql模块 - 创建

4.3 插件mysql性能数据

监视器 - 选中该主机 - 查阅对应的mysql

完毕

-----一些数据库操作语句

mysqld_safe --user=mysql

mysql -uroot -p

mysql -uroot -proot

grant ALL PRIVILEGES ON *.* to ‘root’@"%" identified by "root" WITH GRANT OPTION;

exit

grant select,insert,update,delete on cacti.* to ‘cacti’@”*”identified by "cacti";

exit

grant process,super on *.* to 'cacti'@'%' identified by 'cacti';

grant all privileges on cacti.* to ‘cacti’@"%" identified by "cacti";

客户端开启Cacti访问本机mysql的权限

grant process,super on *.* to 'cacti'@'192.168.12.5' identified by 'cacti';

grant process,super on *.* to 'cacti'@'192.168.5.231' identified by 'cacti';

= = = = =

mysql -ucacti -pcacti -h 192.168.5.231

如何实现MySQL性能监控

命令: show processlist;

如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。

show processlist;只列出前100条,如果想全列出请使用show full processlist;

mysql show processlist;

命令: show status;

命令:show status like '%下面变量%';

Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。


分享名称:mysql怎么设置监控 MySQL 监控
文章位置:http://cdkjz.cn/article/doocccg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220