简单分析percona-zabbix-templates

    当Zabbix和Percona两者相遇,会擦出不少的开源火花来,众人拾柴火焰高,最终受益的还是大部分运维人员。
    我很早就用过Percona提供的MySQL监控模板,但是却没有刨根问底,只是简单使用而已,自从定制了Orabbix之后,我还是信心满满,MySQL的数据字典相对要少很多,监控起来可能想必Oracle要少很多,不过关于Percona的这个插件,我还是带着好奇之心,内部是否有很多独门秘籍,我想好好学学那些监控项对应的SQL,好好弥补我对于MySQL监控的一些空缺,所以简单分析这个模板就排上了日程。
    首先是Percona monitoring Plugins for Zabbix这个插件,可以参考官网。https://www.percona.com/doc/percona-monitoring-plugins/1.1/zabbix/index.html里面已经列出了很详细的步骤,我就不再赘述了,我的目标是简单理解这些监控的出处和原理。

    因为这个插件是客户端的,所以选择了一台服务器在客户端查看。到达了相应的安装目录下,假设为:/home/app/zabbix/zabbix_agentd.conf.d/ 
可以看到配置文件userparameter_percona_mysql.conf的内容,类似下面的形式

如此来看监控项还是丰富啊,而且后面对应的参数很简介。这样的监控项总共有多少,大概是160多个。我想我算是找到了一个宝藏了,这么多的脚本可着实能好好潜心学习一番。
等等,我看了看脚本,发现有些不大对劲啊,怎么调用的都是同一个脚本。/home/app/zabbix/script/get_mysql_stats_wrapper.sh
好吧,一个就一个脚本,肯定脚本很大,也不影响代码阅读。
再次查看这个脚本,发现我又想错了。

这个脚本是大小是1333,大概就是1k的样子,这么大点能放多少代码,肯定远远不够啊。带着好奇心进入这个脚本。
原来这个脚本中不是实际的详细逻辑,这个脚本会生成一个所谓的cache文件,里面调用的脚本是一个php脚本ss_get_mysql_stats.php
大体的调用方式如下:
CMD="sudo /usr/local/php/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"            
把生成的数据都放入/tmp/localhost-mysql_cacti_stats.txt  
          

这个cache文件是什么东东,就是调用后生成的数据信息。内容类似下面的样子:
 #cat /tmp/localhost-mysql_cacti_stats.txt
gg:19526110683 gh:2588 gi:330457818 gj:288709876 gk:-1 gl:-1 gm:-1 gn:-1 go:0 gp:0 gq:131064 gr:130907
就是把上面监控项的值按照参数来分组,比如参数gg,值为19526110683。
对应的就是监控项:
UserParameter=MySQL.Key-read-requests,/home/app/zabbix/script/get_mysql_stats_wrapper.sh gg         
而如果现学现用,就直接调用模板里引用的那个php脚本,也能得到参数gg对应的值。
# sudo /usr/local/php/bin/php -q /home/app/zabbix/script/ss_get_mysql_stats.php --host localhost --items gg
gg:19526142091   
这个参数值代表什么含义呢,继续在里面找找。查看代码,可以看到gg对应的是Key_read_requests,和监控项里的定义是一致的。

更为关键的是,我在脚本里找了半天相关的SQL语句,竟然一个都没有,这是什么情况。
继续往下看,发现原来是取的show status输出的结果,里面定义了不少的数组去存放和映射。

明白了套路,那里面引用了哪些命令呢,大概是这样的一些命令,而且难能可贵的是里面都给出了一些解释。

当然这个时候就会发现这个脚本的内容量很丰富了,里面定义了大量的函数。有些通过字面意思就能明白大体要做的操作了。

大师的脚本可以反复揣摩,其中值得学习的一个地方就是步骤很清晰,从注释就可以学习不少。
当然要抓住重点,那就是从main开始看起,有方向性。
把代码中的注释直接拿出来,对于理解也是大有裨益,这就是好脚本的一个特点。

可能因为里面有很多数组的处理,作者更钟爱于php,所以直接使用php来封装了,当然直接用shell封装也是可行的。这个应该就是基于个人喜好了。
通过这个简单的分析可以看到,这个脚本是基于一些看似简单的命令来得到一个MySQL的状态信息,而且从代码里也可以看到它也会对数据做一些二次处理,比如做一些数值统计。
看起来还是很繁琐的一个工作,在脚本里可以很清晰看出结构关系来。值得好好揣摩学习。

当然脚本运行的数据在Zabbix端也有一个映射。比如unflushed-log这个监控项,就需要这样配置一番。

时间: 2024-10-26 11:49:43

简单分析percona-zabbix-templates的相关文章

jquery的相关内容:jquery的简单分析

文章简介:jquery原理的简单分析,扒开jquery的小外套. 引言 最近LZ还在消化系统原理的第三章,因此这部分内容LZ打算再沉淀一下再写.本次笔者和各位来讨论一点前端的内容,其实有关jquery,在很久之前,LZ就写过一篇简单的源码分析.只不过当时刚开始写博客,写的相对来讲比较随意,直接就把源码给贴上来了,尽管加了很多注释,但还是会略显粗糙. 这次LZ再次执笔,准备稍微规范一点的探讨一下jquery的相关内容. jquery的外衣 jquery是一个轻量级的JS框架,这点相信大部分人都听过

Rman操作简单分析

http://www.itpub.net/245264.html Rman操作简单分析 在我的上一篇文章中为大家演示了rman 备份恢复的一个特定例子.(参考:http://www.dbanotes.net/Oracle/Rman...lfile_howto.htm)rman 对dbms_backup.restore 的一些特定调用完梢酝üebug 分析出来.通过设置debug 模式,我们可以跟踪到大量的Log,从而为分析提供一定的说明.假定我们提交如下的命令:rman target /

简单分析针对搜索引擎优化的三个阶段

做SEO优化绝大部分的精力都会放在针对搜索引擎上面的优化,通常针对搜索引擎优化都有三个阶段,下面我们就来简单分析一下这三个阶段! 第一阶段:这是初始化的阶段,这个时期是搜索引擎对新网站的考察期,通常百度考察的比较严格,谷歌考察的比较宽松,此时搜索引擎会对网站的首页会优先收录,算是给站长们的鼓励,对于内容一般收录很少,排名也是镜花水月,看不清楚,搜索引擎的蜘蛛更是很少光顾,此时的优化主要是优化网站的代码,定时定量的更新网站内容,每天做少量的外链,当然这些外链质量要高一点,这个优化阶段大致要花费近一

简单分析新闻网站二级新闻列表的表现形式

一个好新闻二级列表能让读者最大可能地获取所需信息,其列表形式也体现了这个网的思想,下面选取了几个以新闻为主的网站为例,简单分析其二级列表的表现形式.他们分别是:新华网.金洋网 .南方网及大洋网. 1.新华网 每页显示量大,不提供翻页,页面长,不严格按时间分类,但近段时间的新闻会都会靠前显示,新闻标题以每组5条或10条分组显示,焦点新闻的列表以每组10条显示,且有部分新闻加粗显示表示权重大. 2.金洋网 计算机二级哪个最简单"> 不严格按时间排列,权重大的新闻会用实心方块在前面标识,其它的则

对SysAnti.exe病毒的简单分析

周一在2号实验楼323嵌入式实验室用U盘时发现有病毒,重启后发现刚启动时电脑就有病毒,看来还原卡没起作用.一时兴起打包了病毒文件回来研究下. 病毒文件名:SysAnti.exe 文件大小:52.5KB MD5:4B160901566108C6F89F21444CE503E7 PEID查壳信息: PEID显示是ASPack壳,这一款兼容性良好的老牌壳.不过估计用工具脱不了,OD载入时出错,看来经过特意加密防止反编译.我也懒得深入研究壳了,直接丢入虚拟机的XP,创建快照.打开Procmon和Tota

网口扫盲二:Mac与Phy组成原理的简单分析

网口扫盲二:Mac与Phy组成原理的简单分析 1. general 下图是网口结构简图.网口由CPU.MAC和PHY三部分组成.DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中. 对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型: CPU集成MAC与PHY; CPU集成MAC,PHY采用独立芯片; CPU不集成MAC与PHY,MAC与PHY采用集成芯片; 本例中选用方案二做进一步说明,因为CPU总线接口很常见,通常都会做

GHOST漏洞原理简单分析

继 ShellShock漏洞之后,Linux又爆出一重大漏洞.网上各种关于漏洞检查和修复的文章,但很难找到一篇讲述这个漏洞原理的.在阅读网上流传的测试代码后,写一下个人对这个漏洞的简单分析. 这应该是漏洞发布的网址,里面有最详细的解释,本人才疏学浅,只看了少部分,想深入了解的可以直接阅读,如本文有错误,请指正. http://www.openwall.com/lists/oss-security/2015/01/27/9 漏洞简介: GHOST是Linux glibc库上的一个安全漏洞,CVE编

对新型无文件后门 JS_POWMET 的简单分析

本文讲的是对新型无文件后门 JS_POWMET 的简单分析, 由于高明的网络犯罪分子会在不留下痕迹的情况下进行攻击,因此不留痕迹的恶意软件将成为未来最常见的攻击方法,而且这种苗头已经开始显现了.比如,今年6月,安全研究人员就发现了一个新的无文件勒索病毒, 被称为"Sorebrect",它将恶意代码注入到目标系统的合法进程svchost.exe中, 然后自毁以躲避检测. 然而,许多所谓的无文件恶意攻击只是在进入用户系统时才是无文件的,而在最终执行其有效载荷时还是会暴露自己,所以要想使用完

c++中const变量问题的简单分析

常变量:  const 类型说明符 变量名 常引用:  const 类型说明符 &引用名 常对象:  类名 const 对象名 常成员函数:  类名::fun(形参) const 常数组:  类型说明符 const 数组名[大小]    常指针:  const 类型说明符* 指针名 ,类型说明符* const 指针名 首先提示的是:在常变量(const 类型说明符 变量名).常引用(const 类型说明符 &引用名).常对象(类名 const 对象名). 常数组(类型说明符 const 数