如何从Zabbix数据库中

如何从Zabbix数据库中,第1张

做过Zabbix的同学都知道,Zabbix通过专用的Agent或者SNMP收集相关的监控数据,然后存储到数据库里面实时在前台展示。Zabbix监控数据主要分为以下两类:

历史数据:history相关表,从history_uint表里面可以查询到设备监控项目的最大,最小和平均值,即存储监控数据的原始数据。

趋势数据:trends相关表,趋势数据是经过Zabbix计算的数据,数据是从history_uint里面汇总的,从trends_uint可以查看到监控数据每小时最大,最小和平均值,即存储监控数据的汇总数据。

Zabbix可以通过两种方式获取历史数据:

1.通过Zabbix前台获取历史数据

通过Zabbix前台查看历史数据非常简单,可以通过Monitoring->Lastest data的方式查看。也可以点击右上角的As plain test按钮保存成文本文件。

2.通过前台获取的数据进行处理和二次查询有很多限制,因此可以通过SQL语句直接从后台DB查询数据。

首先大家应该熟悉SQL语句Select 常用用法:

SELECT [ALL | DISTINCT] Select_List [INTO [New_Table_name]

FROM { Table_name | View_name} [ [,{table2_name | view2_name}

[,…] ]

[ WHERE Serch_conditions ]

[ GROUP BY Group_by_list ]

[ HAVING Serch_conditions ]

[ ORDER BY Order_list [ASC| DEsC] ]

说明:

1)SELECT子句指定要查询的特定表中的列,它可以是*,表达式,列表等。

2)INTO子句指定要生成新的表。

3)FROM子句指定要查询的表或者视图。

4)WHERE子句用来限定查询的范围和条件。

5)GROUP BY子句指定分组查询子句。

6)HAVING子句用于指定分组子句的条件。

7)ORDER BY可以根据一个或者多个列来排序查询结果,在该子句中,既可以使用列名,也可以使用相对列号,ASC表示升序,DESC表示降序。

8)mysql聚合函数:sum(),count(),avg(),max(),avg()等都是聚合函数,当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算。运算完后就要用到Having子句进行判断了,例如聚合函数的值是否大于某一个值等等。

zabbix 2.2版本以后(Vmware vCenter or vSphere 最低版本 4.1),开始支持直接监控vmware了, 可以自动搜索到所有的ESXI和VM,并自动把他们列入监控对象。我觉得非常不错,下面说说我的监控步骤。

理论分析

1.模板在zabbix中已经预先配置好了,对于vcenter的HOST,指定为Template Virt VMware。编译安装阶段要想支持vmware监控需要在./configure添加--with-libxml2和--with-libcurl其中前一个是在2.2中添加的;

2.安装完成后,在zabbix_server.conf配置文件需要指定‘StartVMwareCollectors’参数,否则启动zabbix_server是不会启动vmware相关的进程(配置文件有解释我就不做详细叙述);

vi /data/soft/zabbix-2.2.0/etc/zabbix_server.conf

StartVMwareCollectors=5

VMwareFrequency=60

VMwareCacheSize=8M

3.在HOST界面中添加vmwareesxi设备后,需要指定{$URL}、{$USERNAME}和{$PASSWORD}三个变量,因为在调试系统自带的"TemplateVirtVMware"模板时,模板中的KEY调用的是这三个变量;原则上添加对vcenter的host监控时,不需要zabbix_agent,在web页面输入必要的ip信息,关联好模板,填写好三个宏(web页面上叫巨集)即可。

4.当第三步成功的时候不仅能监控esxi物理主机,还能自动发现该esxi上运行的主机并自动添加到监控系统中并加载"Template Virt VMware Guest"模板(模板在下面提供下载)。

*** 作步骤

1、添加esxi主机监控

2、设置变量

3、关联模板

配置好HOST后,经过VMware Frequency时间后,zabbix 监控到vmware vcenter机器上管理了哪些ESXI服务器,并将其加入到HOST中并同Template Virt VMware Hypervisor模板关联,再进一步监控到哪些vm和volume,也一并将其加入到HOST中并同Template Virt VMware Guest模板关联。

4、查看host会多出很多监控项

5、自动发现的监控项目

在HOST自动发现并添加后,item的更新是根据每一个项目(item)设置的时间间隔来更新的,但是与VMwareFrequency有关,因为check_simple大多都是从内存中维护的vmware集群结构中获取的值。

结语:

使用Zabbix的目的,是为了能够更好的监控MySQL数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大。以上是通过设置zabbix来监控VMware主机的原理以及步骤解析,希望能帮到有需要的朋友。

变量可以用于如下地方:

item名称

item key参数

触发器名称和描述

触发器表达式

其他地方

宏名称

宏变量名称定义只允许后面包含后面的字符: A-Z , 0-9 , _ , .

zabbix宏变量优先级:

主机宏(checked first)

主机模板定义的宏,如果有多个模板,那么按照模板越靠前那么宏的优先级越高

全局宏(checked last)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9883669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存