首页数据库zabbix数据库?如何从Zabbix数据库中获取监控数据

zabbix数据库?如何从Zabbix数据库中获取监控数据

编程之家2023-10-20120次浏览

大家好,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按钮保存成文本文件。

zabbix数据库?如何从Zabbix数据库中获取监控数据

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 ]

zabbix数据库?如何从Zabbix数据库中获取监控数据

[ 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数据库中获取监控数据的问题解决了您的问题,那么我们由衷的感到高兴!

方舟与主机连接超时 方舟连接主机时丢失连接超时怎么办bim服务器(bim对电脑有什么要求)