使用BixData自定义监视MySQL和SNMP

使用BixData自定义监视MySQL和SNMP

使用BixData,您可以监视您的服务器以及VMware和Xen。 BixData包括用于诸如CPU,内存,磁盘等的预构建插件,但任何良好的监视工具都需要定制。 BixData包括运行脚本并记录其退出值的基本功能,类似于Nagios插件。 BixData 2.7增加了以更复杂的格式导入数据的支持。 这允许你几乎监视任何东西。

我将介绍如何在本地安装代理的地方监视MySQL,然后通过SNMP远程监控设备的步骤。 BixData的优势在于,通过BixAgent提供的任何数据都可以与标准工具(例如情况室,记分板,通知和报告系统)一起工作。 所有数据都存储在标准SQL表中,并且易于访问。

该图显示了三种常见用途。


使用BixData定制监控

BixAgent自定义监控

2.7版本添加了一个名为dp-import的插件,可以导入任何数据。 该插件从命令行应用程序中删除输出并将其导入BixData。

dp-import以[key] [value]的特定格式输出。

2.7中有两个示例脚本,既使用python,但是可以使用任何脚本语言或程序,只要它将文本输出到屏幕。 如果程序或文件以预期格式输出数据,则数据流水线为:

program / file - - > dp-import - - > BixAgent - - > BixServer - - > SQL Database

如果要从不以dp-import的格式输出数据的应用程序收集数据,则可以使一个简单的脚本进行翻译。 这将意味着您的脚本会读取您感兴趣的应用程序的输出,然后以预期的格式输出:

program / file - - > script - - > dp-import - - > BixAgent - - > BixServer - - > SQL Database

示例1:用户信息

该示例是一个简单的python脚本,用于解析Unix'who'命令的输出并生成dp-import期望的输出。 您可以在自己喜欢的编辑器中打开bixagent / data / scripts / users.py文件,看看它是如何工作的。 我们首先从设置开始。 可以通过dp-import运行的每个脚本都需要配置文件中的<Script>条目: data / xml / dp-import.xml

<?xml version =“1.0”encoding =“utf-8”?>
<Scripts>
<脚本>
<namespace> UsersList </ namespace>
<path> python data / scripts / users.py </ path>
<version> 1 </ version>
<key>唯一</ key>
<Field>
<name> name </ name>
<type> schema_string </ type>
</ Field>
<Field>
<name> tty </ name>
<type> schema_string </ type>
</ Field>
<Field>
<name> logontime </ name>
<type> schema_string </ type>
</ Field>
<Field>
<name> idle </ name>
<type> schema_string </ type>
</ Field>
<Field>
<name> pid </ name>
<type> schema_uint64 </ type>
</ Field>
<Field>
<name>位置</ name>
<type> schema_string </ type>
</ Field>
</ Script>
</ Scripts>

标签说明:

<namespace>每组数据都属于一个命名空间,可以让您组织和查找数据。

<path>指定程序/脚本的完整命令行

(可选)您可以拥有相同脚本的多个版本。 通常这是1

<key> (可选)当您的程序/脚本输出多个记录时,您可以指定一个用作唯一标识符的字段。 在users.py的情况下,脚本输出所有登录的用户详细信息,因此我们需要一个唯一的字段。

<Field>每个字段包含dp-import可以预期的数据的名称和类型。 你应该列出所有可能的字段。 程序/脚本只需要输出它知道的字段。

可能的类型是:

  • schema_string :任意长度<32KB的字符串
  • schema_int32 :一个可以包含负数的大号码
  • schema_uint32 :大量,只有正数
  • schema_uint64 :更大的数字
  • schema_real4schema_real8 :大和更大的浮点值

在这种情况下,脚本位于BixAgent的子目录中,但可以位于系统的任何位置。

当您使用python users.py运行此脚本时,它将解析Unix'who'命令的输出并生成以下输出:

unique : johnsmith.pts/0
name : johnsmith
tty : pts/0
logontime : Dec 14 09:46
idle : .
pid : 9466
location : (netblock1.jakesmith.org)

每行表示一个关键值对,最终将在BixServer中的数据库中。

而已。 BixAgent和BixServer将负责收集数据,创建所需的数据库表,并将数据提供给整个系统。 您可以使用BixData收集的标准数据对此数据执行任何操作。 例如,创建一个通知,只要任何人在晚上11点后登录,就会发送电子邮件。

作为测试,您可以连接到在任何类Unix系统和代理主页上运行的代理,还有一个登录用户列表,该列表使用此示例脚本进行检索。 以下是显示信息的屏幕截图。


代理主页显示的用户信息

示例2:MySQL统计信息

下一个示例解析MySQL命令“mysql --execute ='show status;'”的输出,并输出dp-import期望的格式的值。 要在dp-import中使用mysqlstats脚本,我们为其添加一个配置条目。 mysql.py的bixagent / data / xml / dp-import.xml中的配置条目稍长一点,但只因为有更多的字段。 其实很简单

<Script>
  <namespace>MySQLStats</namespace>
  <path>python data/scripts/mysqlstats.py</path>
  <version>1</version>
  <Field>
    <name>Bytes_received_rate</name>
    <type>schema_real4</type>
  </Field>
  <Field>
    <name>Bytes_sent_rate</name>
    <type>schema_real4</type>
  </Field>
  <!-cut for simplicity -->
</Script>
所有的MySQL统计信息都将在命名空间MySQLStats下面。当您执行python mysqlstats.py命令时,它将以预期格式输出MySQL统计信息。使用MySQL统计信息,我们希望以.png格式生成定期图形,如下图所示:


MySQL统计图

BixData有一个模板编辑器,允许您创建自己的图形。 要为MySQL统计信息创建模板,只需单击模板编辑器中的+按钮即可。 从MySQL统计信息添加一个或多个流,并保存模板。 具有自定义MySQL流的模板的示例如下所示。


添加图形模板

关于多个MySQL实例的注意事项

由于MySQL脚本仅输出本地MySQL服务器的信息,因此在dp-import.xml的<script>设置部分中不需要<key>字段。 但是,如果要发布不同MySQL实例的统计信息,可以轻松添加关键字段,例如<key> mysqlinstance </ key>,所有脚本都必须输出MySQL服务器的唯一名称或标识符。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏