zabbix数据库?如何从Zabbix数据库中获取监控数据
大家好,zabbix数据库相信很多的网友都不是很明白,包括如何从Zabbix数据库中获取监控数据也是一样,不过没有关系,接下来就来为大家分享关于zabbix数据库和如何从Zabbix数据库中获取监控数据的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
如何从Zabbix数据库中获取监控数据
做过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数据库中获取每日流量最大值
版本一:
根据查找到的主机名,输入日期后,输出一日内最大进出口流量
#!/bin/bash
#
###获取每日流量最大值的脚本,脚本从zabbix数据库的history_uint表中取
###数据,根据hostname.txt文件中的主机名。
###wuhf###
z_user="XXX"
z_passwd="XXX"
Cur_Dir=$(pwd)
function test_file{
echo"-------------------------开始查找主机名--------------------------"
if [-e$Cur_Dir/hostname.txt ]; then
echo>$Cur_Dir/hostname.txt
else
touch$Cur_Dir/hostname.txt
fi
for host_ip in$(cat$Cur_Dir/hostip.txt); do
if/usr/local/zabbix/bin/zabbix_get-s$host_ip-k system.hostname&>/dev/null; then
z_hostname=$(/usr/local/zabbix/bin/zabbix_get-s$host_ip-k system.hostname)
echo-e"\033[32mIP:$host_ip-------->主机名:$z_hostname\033[0m"
echo"$z_hostname">>$Cur_Dir/hostname.txt
else
echo-e"\033[31mIP:$host_ip-------->主机名:Error\033[0m"
echo-e"\033[31m主机名没有被找到,可能是网络不可达或者zabbix_agentd端没有启动\033[0m"
fi
done
}
function input_date{
read-p"请输入开始日期(如2015-01-01):" E
until date-d"$E"&>/dev/null; do
echo-e"\033[31m你输入的日期格式错误,请从新输入!\033[0m"
read-p"请输入开始日期:" E
done
if date-d"$E">&/dev/null;then
from_time=$(date-d"$E"+%s)
fi
read-p"请输入结束日期:" D
until date-d"$D"&>/dev/null; do
echo-e"\033[31m你输入的日期格式错误,请从新输入!\033[0m"
read-p"请输入结束日期(如2015-01-01):" D
done
if date-d"$D">&/dev/null;then
end_time=$(date-d"$D"+%s)
fi
}
function main(){
mysql-u$z_user-h127.0.0.1-p$z_passwd-Dzabbix-e"select host,hostid from hosts where host=\"$host_name\";"| grep"$host_name"&>/dev/null
if [$?-eq 0 ]; then
Max_In=$(mysql-uz_user-h127.0.0.1-pz_passwd-Dzabbix-e"select from_unixtime(clock) as DateTime,max(round(value/1024/1024,2)) as In_Value from history_uint
where itemid=(select itemid from items
where hostid=(select hostid from hosts
where host=\"$host_name\")
and key_ like\"net.if.in%\" limit 1)
and clock>=$from_time and clock<=$end_time"|tail-1|awk'{print$3}')
Max_Out=$(mysql-uz_user-h127.0.0.1-pz_passwd-Dzabbix-e"select from_unixtime(clock) as DateTime,max(round(value/1024/1024,2)) as In_Value from history_uint
where itemid=(select itemid from items
where hostid=(select hostid from hosts
where host=\"$host_name\")
and key_ like\"net.if.out%\" limit 1)
and clock>=$from_time and clock<=$end_time"|tail-1|awk'{print$3}')
echo"|$host_name|最大进口流量:$Max_In|最大出口流量:$Max_Out|日期范围:$E至$D|"
else
echo-e"\033[31m主机名$host_name在zabbix数据库中不存在,请修改主机名后重试!\033[0m"
fi
}
test_file
input_date
until [$from_time-lt$end_time ]; do
echo-e"\033[31m开始日期应该小于结束日期,请从新输入!\033[0m"
input_date
done
for host_name in$(cat$Cur_Dir/hostname.txt); do
echo"------------------------------------------------------------------------------------------------------"
main
done
linux下yum安装zabbix的数据库在哪
linux下yum install的软件源位置是通过配置文件来配置的,可修改。
/etc/yum.repos.d为本地源位置
配置文件/etc/yum.conf中,详细定义了yum的工作方式和参数。
[root@bspdev etc]# cat/etc/yum.conf
[main]//主配置信息
cachedir=/var/cache/yum//保存缓存和数据库文件的位置
keepcache=0
debuglevel=2//调试信息输出等级
logfile=/var/log/yum.log//日志位置
distroverpkg=redhat-release//yum使用的RPM包distribution版本;
tolerant=1//默认为0,如果为1表示当安装多个包是,失败了继续安装其他;
exactarch=1//精确匹配硬件平台,只有完全相同才更新;
obsoletes=1//当使用升级模式时,一些包没有用了,可以删除(取值1)
gpgcheck=0//安装时是否检查RPM包的PGP签名;
plugins=1//Yum插件是否可用
bugtracker_url=http://bugs.centos.org/yum5bug
# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h
installonly_limit= 5
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in/etc/yum.repos.d//定义可选的位置
Yum支持的源地址种类很多,有本地、FTP和Internet等。三种方式的差异仅仅在于客户端访问Yum的方式不同。本篇仅介绍本地Yum源的配置和使用。
2、配置本地Yum源库
目的是在本地目录上建立一个Yum源库,RPM包来自安装光盘。
使用Mount命令,将插入的光盘Mount到Linux的目录结构上。
[root@bspdev/]# mount/dev/cdrom/media//将光盘mount到/media目录上
mount: block device/dev/cdrom is write-protected, mounting read-only
[root@bspdev/]# cd/media
[root@bspdev media]# ls–l//挂载CentOS版本;
total 484
dr-xr-xr-x 2 root root 432128 Mar 5 10:16 CentOS//CentOS RPM包位置
-r--r--r-- 1 root root 14 Mar 2 05:00 CentOS_BuildTag
-r--r--r-- 1 root root 212 Oct 1 2009 EULA
-r--r--r-- 1 root root 18009 Oct 1 2009 GPL
dr-xr-xr-x 4 root root 2048 Mar 5 10:12 images
(篇幅原因,省略部分)
-r--r--r-- 1 root root 7058 Mar 5 10:22 TRANS.TBL
[root@bspdev media]#
[root@bspdev CentOS]# pwd
/media/CentOS
安装repository工具包。
[root@bspdev CentOS]# pwd
/media/CentOS
[root@bspdev CentOS]# rpm-ivh createrepo-0.4.11-3.el5.noarch.rpm
warning: createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing...########################################### [100%]
1:createrepo########################################### [100%]
将rpm包拷贝的准备好的/yum/server中去。
[root@bspdev CentOS]# cd/
[root@bspdev/]# mkdir/yum/server-p
[root@bspdev media]# cd CentOS
[root@bspdev CentOS]# cp*/yum/server/
You have mail in/var/spool/mail/root
[root@bspdev CentOS]#
这样,我们将所有的rpm包保存在了/yum/server上。
最后,我们建立reposity的索引。
[root@bspdev CentOS]# createrepo/yum/server
2669/2669- totem-devel-2.16.7-7.el5_6.1.i386.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
3、配置参数文件
修改服务端文件,设置行为。
[root@bspdev CentOS]# vi/etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=0//本地一般不需要设置该选项
plugins=1
bugtracker_url=http://bugs.centos.org/yum5bug
# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h
installonly_limit= 5
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in/etc/yum.repos.d
~
在客户端,我们创建新的容器和配置文件。首先我们先将原有的信息备份保存。
-客户端
[root@bspdev CentOS]# cd/
[root@bspdev/]# mkdir/etc/yum.repos.d/bak
[root@bspdev/]# mv/etc/yum.repos.d/*.repo/etc/yum.repos.d/bak/
[root@bspdev/]# cd/etc/yum.repos.d/bak/
[root@bspdev bak]# ls-l
total 36
-rw-r--r-- 1 root root 1926 Feb 25 16:20 CentOS-Base.repo
-rw-r--r-- 1 root root 631 Feb 25 16:20 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 626 Feb 25 16:20 CentOS-Media.repo
-rw-r--r-- 1 root root 6118 Feb 25 16:20 CentOS-Vault.repo
[root@bspdev bak]# cd/
[root@bspdev/]# vim/etc/yum.repos.d/localyum.repo
[localyum]//容器名
Name=localyum
baseurl=file://yum/server//目录
enable=1
gpgcheck=0
~
文章到此结束,如果本次分享的zabbix数据库和如何从Zabbix数据库中获取监控数据的问题解决了您的问题,那么我们由衷的感到高兴!