如何设计一个mysql性能监控的软件

如何设计一个mysql性能监控的软件,第1张

首先介绍下 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-stalklog。

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

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

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

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

服务器来说,硬盘因为其机械结构,是最容易出现故障的设备。但恰恰是这最容易出现故障的设备中,存储着对企业来说最至关重要的IT资源——数据。一旦硬盘出现故障,会给企业带来重大的损失。据统计,为了解决硬盘故障带来的损失,目前全球每年的数据恢复市场价值大约在千亿美元——而这仅仅是是企业损失的一小部分。近年来,为了解决这一问题衍生出了大量的技术如:Raid、双机热备等。但这些技术都是在基于增加磁盘的数量的方式来尝试解决问题,降低了数据丢失的概率,但同时大大增加了运维成本,提高了管理的难度。

为此,蚁巡运维平台尝试引入一种新的方式,通过远程实时监控服务器硬盘的健康状态,达到在不增加硬件成本和管理成本的基础上保障数据安全的做法。通过蚁巡运维平台,可以自动发现安装了SMART标准技术的硬盘并远程监控其磁盘的健康指标。

SMART的全称为“Self-Monitoring Analysis and Reporting Technology”,即“自我监测、分析及报告技术”。支持SMART技术的硬盘可以通过硬盘上的监测指令和主机上的监测软件对磁头、盘片、马达、电路的运行情况、历史记录及预设的安全值进行分析、比较。当出现安全值范围以外的情况时,就会自动向用户发出警告。几乎所有主流的硬盘,包括固态硬盘都支持这一技术。但该技术只适用于单机环境,且必须手工获取数据,使用该技术防止硬盘故障的管理成本很高。而在蚁巡中,可以批量的、远程的、实时的监控使用了该技术的硬盘,大大降低了管理成本。

同时,通过蚁巡还可以获得硬盘的使用时间、使用次数等基本指标数据。可以有效的评估硬盘的使用情况,从而进一步评估设备的使用率、寿命等信息。

据统计,通过这项技术,可以提前发现超过60%的硬盘故障,给企业带来的价值无可估量。

1 Performance Co-Pilot

Performance Co-Pilot,简称 PCP,是一个系统性能和分析框架。它从多个主机整理数据并实时的分析,帮你识别不正常的表现模式。它也提供 API 让你设计自己的监控和报告解决方案。

2 Anturis

Anturis 是一个监控你的服务器、网站、IT基础设置的基于云计算的SaaS平台。它有一个全面的监控解决方案列表,非常值得一看。

3 SeaLion

SeaLion 是一个基于云计算的Linux服务器监控工具。它可以用一个面板简单的监控所有的服务器并且诊断问题。它只需要几分钟就可以安装好,具有及时提醒功能,当发生问题时你可以及时的收到提醒,还具有日常数据汇总等功能。

4 Icinga

Icinga 是一个免费开源的服务器监控工具,可以检测服务器资源的可用性。它可以记录服务器问题并且通知你。

5 Munin

Munin 是一个网路和系统监控工具,可以帮你分析服务器资源趋势。它是一个即插即用的解决方案。默认的安装方式提供了很多的报告。

一个好的安全运维平台需要将事件与IT流程相关联,一旦监控系统发现性能超标或出现宕机现象,就会触发相关事件以及事先定义好的流程,自动启动故障响应和恢复机制。还需要能够筛选出运维人员完成日常的重复性工作,提高运维效率。要实现这些功能都是常规监控软件Cacti、Zabbix所无法实现。

同时,还要求能够预测网络蠕虫威胁,在故障发生前能够报警,让运维人员把故障消除在萌芽状态,将所产生损失减到最低。总的来说运维人需要能够在一个平台中实现资产管理、分布式部署、漏洞扫描、风险评估、策略管理、实时流量监控、异常流量分析、攻击检测报警、关联分析、风险计算、安全事件告警、事件聚合、日志收集与分析、知识库、时间线分析、统一报表输出、多用户权限管理的功能,这种集成开源工具到底有没有?它去哪儿啦?

目前市面上有两种产品可满足这样的要求,目前市面上的SIEM产品主要有HPArcsight(后台挂Oracle库)、IBMSecurityQRadarSIEM和Alienvault的OSSIMUSM,现在的问题是并不缺少商业SIEM解决方案,在开源软件中OSSIM到是最佳选择。

很多人只是肤浅的认为OSSIM只是将一些开源工具集成到一个平台,在OSSIM中颠覆性创新主要在易用(容易安装、部署,容易使用,几乎不用自己写脚本)、分布式监控系统、响应威胁(OTX)、关联分析引擎、可视化攻击展示等。

Alienvault分为开源OSSIM和商业版USM两种,通过这一集成监控工具实现对用户操作规范的约束和对计算机资源进行准实时监控,包括服务器、数据库、中间件、存储备份、网络、安全、机房、业务应用等内容,通过自动监控管理平台实现故障或问题综合处理和集中管理。

答案:A、B、D、E

教材页码P333-335

航显系统运行状态包括服务器系统、存储系统、数据库系统、应用系统和控制设备的运行状态。注意不是AODB数据库(属于信息集成系统)。

服务器工作状态可以通过不同方式监控。

SNMP和IPMI都是可以的。但是由于很多服务器的数据非常重要,而利用接口的方式监控有被黑客攻击的风险。

现在银行系统、金融等系统很多采用一种称之为“神鹰光眼”的方式监控服务器状态指示灯。用以向监控系统实时报告服务器的运行状态。由于其采用了最新的光纤技术,与服务器之间物理隔绝。因此系统的安全性得以保障。

1开源网络监控工具:NetXMS

NetXMS提供了企业级开源网络管理和监控程序,它在Windows和Linux上有一个简单的用户界面。

NetXMS通过相对简单的安装过程为IT基础架构的所有层提供了分布式网络监控、自动化网络发现和详细报告。

此外,服务器设备和代理对于这样一个全面的产品来说是相当轻量级的。

2开源网络监控工具:PandoraFMS

定位于企业级,PandoraFMS提供了一个时尚且整洁的用户体验,提供了易于阅读的快速洞察工具以及重要的网络统计信息,例如网络状态、已上报的告警、已部署的代理数量和其他最近执行任务的列表。

PandoraFMS可以在无需外部访问的情况下执行网络诊断,这意味着用户可以更快地响应任何网络问题。事实上,FMS声称,在代理模式下的器监控系统响应速度约为10秒。

3开源网络监控工具:Cacti

最初发布于2001年,Cacti是一款开源的基于Web的网络监控和专为数据记录而设计的图形化工具。它可以用于实时显示网络数据,如CPU负载或带宽利用率。

Cacti是RRDtool的前端应用程序,RRDtool是一种用于存储实时变化数据的开源数据库工具,其使用SNMP作为其默认收集算法,但如果你喜欢本地Perl的PHP脚本,那么你也可以使用它们。

其最新版本088h于2016年5月发布,主要功能包括无限图形项目、图形自动填充支持、图形数据处理、自定义数据采集脚本、内置SNMP支持、图形模板、数据源模板、主机模板和基于用户的管理。

4开源网络监控工具:GroundWorkMonitorCore

GroundWorkMonitorCore是监控网络、应用和云计算使用情况的平台。开源版本包含最多可监控50个设备和基于社区的支持的许可证,该软件还有其对应的商业版本。

在其网络管理功能方面,GroundWork提供网络和设备的自发现和维护、拓扑、报警控制、通过API/SNMP/IPMI的数据收集和对SDN的支持等功能。

GroundWork还提供了存储管理,支持大规模的企业级供应商,如NetApp和EMC,以及从磁盘、块或对象存储的数据收集和存储缓冲以及中断可视化。

由于GroundWork的一站式网络管理方法,这种套件可能更适合那些寻找成熟品牌的大型商业和企业,而不是以开发人员为重点的工具,如BigBrother或BigSister。

5开源网络监控工具:Hyperic

VMware的Hyperic工具用于在物理、虚拟或云环境下监控Web应用程序及其性能。它适用于应用程序服务器,web服务器,数据库,操作系统,虚拟机管理程序,消息传递服务和目录服务器。

Hyperic提供基础架构和操作系统监控,详细的报告,应用程序和中间件监控,警报和修复工作流程以及通用可扩展的API。

该网络监控工具提供了企业版本,可以提高网络警报功能,并且能更好地创建基准。

6开源网络监控工具:Observium

基于Linux的Observium是一个自动监测的网络监控工具。据该网站介绍,“该工具是由一批经验丰富的专业网络工程师和系统管理员开发和维护的,Observium是一个由用户自己设计和构建的平台。”

Observium提供社区版本和专业版,使用RRDTool进行缓冲存储和图形化功能,并具有易于使用的用户界面和报告功能。但是,它没有报告导出功能,这可能对商务应用来讲会是一个问题。

社区版本将为用户提供对所有支持设备或指标的完整自动监测功能,通过自动发现协议进行网络映射,自动识别数百种设备,并且每六个月发布一个新版本。

而专业版用户将获得所有社区版本的功能并且还将获得实时软件更新和修复功能,基于规则的自动分组功能,网络阈值和状态警报系统以及流量统计系统。

7开源网络监控工具:Zabbix

Zabbix作为企业级的网络监控工具,通过从服务器,虚拟机和网络设备收集的数据提供实时监控,自动发现,映射和可扩展等功能。

Zabbix的企业级监控软件为用户提供内置的Java应用服务器监控,硬件监控,VMware监控和CPU,内存,网络,磁盘空间性能监控。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何设计一个mysql性能监控的软件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情