MySQL之MySQL用户工具(二)

MySQL用户工具

SQL实用集

服务器本身也内置有一系列免费的附加组件和实用集可以使用;其中一些确实相当强大。

  • 1.common_schema
    Shlomi Noach的common_schema享目是一套针对服务器脚本话和管理的强大的代码和视图。common_schema对于MySQL好比jQuery对于JavaScript.
  • 2.mysql-sr-lib
    Giuseppe Maxia为MySQL创建了一个存储过程的代码库,
  • 3.MySQL UDF仓库
    Roland Bouman建立了一个MySQL自定义函数的收藏馆。
  • 4.MySQL Forge
    在MySQL Forge上,可以找到上百个社区共享的程序、脚本、代码片段、实用集和技巧及陷阱

监测工具

以过往的经验来看,大多数MySQL商店需要提供两种类型的监测工具:健康监测工具——检测到异常时告警——和为趋势、诊断、问题排查、容量规划等记录指标的工具。大多数系统仅在这些任务中的一个方面做得很好,而不能两者兼顾。更不幸的是,有十几种工具可选,使得评估和选择一款适合的工具非常耗时。许多监控系统不是专门为MySQL服务器设计。它们是通用系统,用于周期性地检测许多类型的资源,从及其到路由再到软件(例如MySQL)。它们一般有某些类型的插件架构,经常会伴随有一些MySQL插件。一般会在专用服务器上安装监控系统来监测其他服务器。如果是监控重要的资源,它很快会变成架构中至关重要的一部分,因此可能需要采取额外的步骤,例如做监控系统本身的灾备。

开源的监控工具

下面是一些最受欢迎的开源集成监控系统。

  • 1.Nagios
    Nagios也许是开源世界中最流行的问题检测和告警系统。它周期性检测监控的服务器并将结果与默认或自定义的阈值相比较。如果结果超出了限制,Nagio会执行某个程序并且(或)把问题的告警发给某些人。Nagios的通信和告警系统可以将其发送到不同的位置,并且对计划内的宕机可以特殊处理。Nagios同样理解服务之间的依赖,因此,如果是因为中间的路由层或者主机本身宕机导致MySQL实例不可用,Nagios不会发送告警来烦你。Nagios能将任何一个可执行文件以插件形式运行,只要给予其正确参数就可得到z正确输出。因此,Nagios插件在多种语言中都存在,例如shell、Perl、Python、Ruby和其他脚本语言。就算找不到一个能真正满足你需求的插件,自己创建一个也很简单。一个插件只需要接收b标准的参数,以一个合适的状态退出,然后选择性地打印Nagios捕获的输出。然而,Nagios也有一些严重的缺点。即使你很了解它,也仍然难以维护。它将所有配置保存在文件而不是数据库中。文件有一个特别容易出错的语法,当系统增长和发展时,修改配置文件就很费事。Nagios可扩展性并不好;你可以很容易地写出监控插件,但这也是你能够做的一切。最后,它的图形化、趋势化和可视化能力都有限。Nagios将一些性能和其他数据存储到MySQL服务器中,一般从中生成图形,但并不像其他一些系统那么灵活。因为不同"政见"的原因,使得上面所有的问题继续变得更糟。因为或真实、或臆测的涉及代码、参与者的问题,Nagios至少分化除了两个分支。两个分支的名字分别是Opsview和Icinga。它们比Nagios更受到人们的青睐。
  • 2.Zabbitx
    Zabbix是一个同时支持监控和指标收集的完整系统。例如,它将所有配置和其他数据存储到数据库而不是配置文件中。它存储了比Nagios更多的数据类型,因而可以得到更好的趋势和历史报表。其网络画图和可视能力也比Nagios更强,配置更简单,更灵活,且更具可扩展性
  • 3.Zenoss
    Zenoss是用Python写的,拥有一个基于浏览器的用户界面,使用了Ajax,这使它更快和更高效。它可以自动发现网络上的资源,并将监控、告警、趋势、绘图和记录历史数据整合到一个统一的工具中。Zenoss默认使用SNMP来从远程服务器上收集数据,但也可以使用SSH,并且支持Nagios插件
  • 4.Hyperic HQ
    Hyperic HQ是一个基于Java的监控系统,比起同级别的其他大部分系统,它更称得上是企业级监控.像Zenoss一样,它可以自动发现网络上的资源和支持Nagios插件,但它的逻辑阻止和架构不同,有点"笨重"
  • 5.OpenNMS
    OpenNMS也是用Java开发,有一个活跃的开发社区。它拥有常规的特性,例如监控和告警,但同样也增加了绘图和趋势功能,它的目标是高性能、可扩展、自动化和灵活。像Hyperic一样,它也致力于为大型和关键系统做企业级监控
  • 6.Groundwokr Open Source
    Groundwork Open Source用一个可移植的接口把Nagios和其他几个工具整合到了一个系统中,对于这个工具最好的描述是:如果你是Nagios、Cacti和其他几个工具方面的专家,并且花了很多时间将它们整合在一起,那很可能你是在闭门造车.

相比于集所有功能于一身的系统,还有一系列软件专注于收集指标和画图以及可视化,而不是进行性能监控检查。它们中有很多是建立在RRDTool之上,存储时序数据到轮询数据库(RRD)文件中。RRD文件自动聚集输入数据,对没有预期传送的输入值进行插值,并有强大的绘图工具可以生成漂亮有特色的图。有很多基于RRDTool的系统,下面是最受欢迎的几个.

  • 1.MRTG
    Multi Router Traffic Grapher或称MRTG,是典型的基于RRDTool的系统。最初是为记录网络流量而设计的,但同样可以扩展到用于对其他指标进行记录和绘图
  • 2.Cacti
    Cacti可能是最流行的基于RRDTool的系统。它采用PHP网页来与RRDTool进行交互,并使用MySQL数据库来定义服务器、插件、图像等。因为是模块驱动,故而可以定义模板然后应用到系统上。Baron为MySQL和其他系统写了一组非常流行的模板.这些也已经被移植到Munin、OpenNMS和Zabbix
  • 3.Ganglia
    Ganglia与Cacti类似,但是为监控集群和网格系统而涉及,所以可以汇总查看许多服务器的数据,如果需要也可以细分查看单台服务器的详细数据
  • 4.Munin
    Munin手机树并存入RRDTool中,然后以几个不同级别的粒度生成数据图。它从配置中生成静态HTML文件,因此可以很容易地浏览和查看趋势。定义一个图形较容易;只需要创建一个插件脚本,其命令行帮助输出有一些Munin可以识别的特别语法的画图指令。

基于RRDTool的系统有些限制,例如不能用标准查询语言来查询存储的数据,不能永久保留数据,存在某些数据不能轻松地使用简单计数器和标准数值表示的问题,需要预先定义指标和图形等。理想情况下,我们需要的监控系统可以接受任何发送给它的指标,而不需要预先进行定义,并且后续可以绘制任意需要的图形,也不需要预先进行定义。可能我们锁看到的最接近的系统是Graphite.
这些系统都可以用来对MySQL收集、记录和绘制数据图表并且生成报表,有着不同程度的灵活性,目标也稍微有些不同,但它们都缺乏真正可以在问题出现时及时告警的灵活性。
我们提到的大多数系统的主要问题是,它们明显是由那些因为现有系统不能满足它们所有需求的人涉及的,因此它们又重复设计了另一个无法完全满足其他人的所有需求的系统。大部分这样的系统都有一些基础的限制,例如使用一个奇怪的数据模型存储内部数据,而导致在很多场合都无法很好地工作。在很多时候,这都令人沮丧,使用这些系统都像是把一个圆形的钉子钉到了一个方形的洞里面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coffee_babe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值