Zabbix企业级分布式监控系统

第一章:监控概念及Zabbix部署

监控概述

对于监控系统在企业架构中不是新的技术,但却是必不可少的重要组成部分,所谓无监控,不运维!

监控系统可以帮助运维、开发、测试等人员及时的发现服务器出现的故障,并及时的发送告警通知。

对于监控软件所应该具备的功能如下:

  • 指标数据采集(抓取)

  • 指标数据存储

  • 指标数据可视化

  • 故障告警功能

监控对象介绍

系统层监控

系统监控:CPU利用率、内存利用率、磁盘IO速度、进程数量、内核完整性等...
网络监控:网络设备进出口流量、工作负载、网络延迟、丢包率等...

服务软件监控

消息中间件:kafka、RocketMQ、RabbitMQ等...
Web服务容器:Nginx、Tomcat、httpd、docker、kubernetes等...
数据库及缓存系统:MySQL、PostgreSQL、MongoDB、Redis、ElasticSearch等...
存储系统:Ceph

业务层监控

例如电商网站销售量、转化率等
业务接口:登录数、注册数、订单量、支付数量等

Linux系统常用监控命令

以下命令是对系统的CPU、内存、硬盘、网络进行监控的命令

free #查看内存利用率

df #查看正在使用分区利用率

top # 查看系统健康状态(类似windows的任务管理器)

htop #与top相同,查看系统健康状态(系统不自带,在epel源提供)

uptime #查看cpu利用率

iftop #用于显示本机网络流量情况及相互通信的流量集合(默认系统不自带,需安装主包:iftop,依 赖包:flex byacc libpcap ncurses ncurses-devel libpcap-devel )

iostat # iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监 视 (默认系统不自带,需安装:sysstat)

iotop #与iostat类似, 用来监视磁盘I/O使用状况(默认系统不自带,需安装:iotop)

vmstat # 是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、 CPU活动进行监控 (默认系统不自带,需安装:sysstat)

netstat/ss # 用于显示各种网络相关信息,如网络连接,路由表,接口状态连接等

nethogs # 用来按进程或程序实时统计网络带宽使用率(默认系统不自带,epel源安装:nethogs)

ipmi #用于对服务器硬件进行监控(默认系统不自带,需安装:ipmitool)

常用的监控软件介绍

  • Nagios:本身只能做实时的数据监控,无法实现数据的持久化保存,致命缺点无法查询历史数据

  • Cacti:最初应用在机房做流量方面的监控,致命缺点没有故障告警功能

  • Ganglia:跟Cactii类似,致命缺点没有故障告警功能

  • Open-Falcon:小米公司开源的一款监控软件,目前还是比较冷门,很多中间件不支持监控(例如:httpd、Tomcat)

  • Zabbix:2012年诞生的一款分布式监控系统,功能完善(例如:数据存储、数据可视化、故障告警等)目前主要应用在传统的物理服务器、虚拟机、路由交换领域的监控

  • Promethues:2016年崛起的一款监控系统,功能完善(例如:数据存储、数据可视化、故障告警等)目前主要应用在容器领域的监控系统

付费的监控软件:

监控宝:https://www.jiankongbao.com/

博瑞:https://www.bonree.com/

Zabbix介绍

Zabbix 是C语言编写的企业级开源免费的分布式监控解决方案,可监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康状况和完整性。

Zabbix 使用灵活的报警通知机制,允许用户为几乎任何事件配置基于电子邮件的警报。这允许对服务器问题做出快速反应。

Zabbix 可通过存储的数据提供出色的报告和数据可视化功能。

官网地址:https://www.zabbix.com/

Zabbix的版本介绍

  • zabbix稳定版:LTS代表稳定版,官方提供技术支持时间长达5年时间(免费)
  • zabbix标准版:不带LTS标签,官方提供技术支持时间7个月(免费)

Zabbix组件

zabbix agent:指标采集器,在被监控主机上采集指标数据,并将采集到的数据发送给zabbix server

zabbix server:负责接收agent发送的数据,统计数据、管理数据

zabbix database:用于存储所有zabbix的配置信息以及监控数据

zabbix web:管理员通过web界面管理、配置以及查看相关监控信息

zabbix-proxy:分布式监控,用来分担zabbix server的压力(不是必须)

Zabbix5.0安装步骤

主机名 IP地址 操作系统 角色 硬件环境
zbx-server 自定义 CentOS 7.6 监控主机 2C/4G
zbx-node01 自定义 CentOS 7.6 被控主机 2C/4G

平台选择

配置zabbix的仓库

提示:zbx-server主机操作

tiki 复制代码
#安装zabbix5.0存储库(二进制安装方式)
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

#安装zabbix软件包
yum install zabbix-server-mysql zabbix-agent -y
tiki 复制代码
#下载CentOS的SCL仓库(提供zabbix前端所需的一些的软件包)
yum -y install centos-release-scl

#启用zabbix前端仓库
vim /etc/yum.repos.d/zabbix.repo
...
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1   --启用仓库
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

#安装Zabbix前端软件包
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
#zabbix-web-mysql-scl      用于连接数据库
#zabbix-apache-conf-scl    用于连接apache

#安装数据库软件(官方文档并没有提供安装数据库的部分)
yum -y install mariadb-server

#启动数据库服务并设置随机自启
systemctl start mariadb && systemctl enable mariadb


#进入数据库
mysql

#创建存储监控数据的库,并支持中文(库名:zabbix)
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

#创建连接数据库的用户,并设置密码(用户名:zabbix)
MariaDB [(none)]> create user zabbix@localhost identified by '123456';

#数据库及用户授权
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;


#在Zabbix服务器主机上,导入初始架构和数据。系统将提示您输入新创建的密码
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: 123456  --输入zabbix用户密码

#为Zabbix服务器配置连接数据库
vim /etc/zabbix/zabbix_server.conf
...
100 DBName=zabbix  	   #数据库名称(存储数据的仓库)
116 DBUser=zabbix  	   #连接数据库的用户(给zabbix程序用的一个身份)
124 DBPassword=123456  --设置zabbix用户密码

#为PHP配置正确的时区
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

...在文件的最后一行,删除注释,并改为正确的时区

 php_value[date.timezone] = Asia/Shanghai  --亚洲/上海

#启动所有服务并设置服务随机自启
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

Zabbix服务参数介绍

zabbix-server 端口:10051

zabbix-agent 端口:10050

zabbix server主配置文件:/etc/zabbix/zabbix_server.conf

zabbix agent主配置文件:/etc/zabbix/zabbix_agentd.conf

zabbix企业微信报警脚本路径:/usr/lib/zabbix/alertscripts

zabbix自定义监控项路径:/etc/zabbix/zabbix_agentd.d

zabbix日志文件路径:/var/log/zabbix/

登录ZABBIX WEB

从浏览器上访问Zabbix前端URL:http://server_ip/zabbix

环境检查

请确保这里的Check of pre-requisites必须全部项目OK后才能继续配置,如有提示fail,去server上检查是否安装这个包或配置是否按上述更改。

配置数据库连接

输入连接数据库所需的详细信息,Zabbix数据库必须先建立好。

Zabbix server服务器详情

请输入Zabbix服务器详情,可选的输入Zabbix服务器的名字,然而如果输入并提交了, Zabbix服务器的名字将会显示在菜单和页面的标题。

安装前总结回顾所有配置

完成安装

Zabbix前端已经安装完成! 超级用户名是 Admin , 密码 zabbix

为了防止暴力破解和词典攻击,如果发生连续五次尝试登陆失败,Zabbix接口将暂停30秒。

在下次成功登陆后,将会在界面上显示登录尝试失败的IP地址。

Web界面概览

侧边栏的垂直菜单可访问Zabbix前端各个部分。 菜单默认使用深蓝主题。

菜单可以整个折叠或隐藏:

  • 折叠, 单击Zabbix logo旁边的

  • 隐藏, 单击Zabbix logo旁边的

修改界面语言

左下角的用户基本资料

修改Admin密码

密码没有长度与复杂度要求,按照具体情况设置即可。

左下角的用户基本资料

创建组

zabbix并没有为单独用户设置主机管理权限,所有的权限都通过组进行统一分配,当用户加入到对应的组后,将权限分配到对应的组中即可继承组权限。

管理→用户群组→创建用户群组

增加用户

除了Admin超级管理员以外,还可以创建普通用户给公司其他员工使用。

管理 (Administration) → 用户(Users)→创建用户(Create user)并指定群组

可以使用新用户登录验证。

添加监控主机

Zabbix对于主机的监控非常灵活,它可以是物理服务器、网络交换机、虚拟机、应用等。

提前准备好一台Linux主机,并安装zabbix-agent客户端程序。

tiki 复制代码
#下载zabbix官方仓库
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

#安装zabbix agent
yum list zabbix-agent

#查询软件包安装到系统中文件
rpm -ql zabbix-agent
...
/etc/zabbix/zabbix_agentd.conf

#修改agent配置文件,定义zabbix server的地址
vim /etc/zabbix/zabbix_agentd.conf
...
117 Server=192.168.0.14  --指定zabbix server地址(谁可以监控我)

#启动服务并设置服务随机自启
systemctl start zabbix-agent && systemctl enable zabbix-agent

回到Zabbix server 的web界面,通过 配置 (Configuration) → 主机 (Hosts)→ 创建主机(Create host)以添加新的主机。

查看主机

检测→主机

灰色 表示主机状态尚未建立,尚未发生监控指标检查

表示主机可用,监控指标检查已成功

表示主机不可用,监控指标检查失败(将鼠标光标移动到图标上以查看错误消息)。可能是由于接口凭证不正确造成了通信问题。检查zabbix server是否正在运行,并稍后尝试刷新页面

模板概述

Zabbix为用户提供了很多开箱即用的模板,具体模板可通过配置 → 模板查看,模板大概分类如下:

网络设备的标准化模板):对交换机和路由器等网络设备进行监控, 网络设备本身(基本上是机框)和网络接口

  • 机框故障监控(电源,风扇和温度,总体状态)
  • 机框性能监控(CPU和内存项)
  • 机框资产收集(序列号,型号名称,固件版本)
  • 使用IF-MIB和EtherLike-MIB进行网络接口监控(接口状态,接口流量负载,以太网的双工状态)

HTTP模板:用于对很多服务的HTTP状态(UP/DOWN)进行监控,例如:Apache、Nginx等。

IPMI模板: 用于监视服务器硬件,如温度电压、风扇工作状态、电源状态等。

JMX模板: 用于监控Java应用程序。

ODBC: 用于数据库(MySQL、Oracle、PostgreSQL)的监控模板。

Zabbix agent 2:用于Ceph存储、Docker容器、Memcached、Mysql、Oracle、PostgreSQL、Redis等应用监控。

Zabbix agent:用于对Apache、HAProxy、Nginx、PHP-FPM、RabbitMQ、等应用监控。

除了上述模板外,Zabbix社区还提供了大量模板供用户免费下载

社区地址:https://share.zabbix.com/(也可通过界面左侧配置栏的**Share**直达)

友情提示:大部分监控模板已经在zabbix中提供,并且能够满足大部分监控需求。

新建模板

模版可以对监控项、触发器、图形等进行归类,当一个模版链接到一个主机后,主机会继承这个模版中的所有功能。

配置 (Configuration) → 模版 (Templates)创建模版(Create template)

模版名称:名称自定义,不支持中文。

群组:模版必须属于一个组,可以自建,可以使用zabbix提供的组。

新建应用集

模板中的应用集我们可以理解为监控项的分组,可以将相同类型的监控项分配到同一个应用集内。

配置 → 模板 找到对应的模板选择 应用集创建应用集

名称:自定义,支持中文。

新建监控项

监控项是Zabbix中获得数据的基础,没有监控项,就没有数据。

配置 → 模板 页面查找到我们自建的模板,点击模板中的 监控项然后 创建监控项

名称:名称自定义,支持中文。

CPU 1、5、15分钟平均负载监控项key

sh 复制代码
system.cpu.load[all,avg1]
system.cpu.load[all,avg5]
system.cpu.load[all,avg15]

完成后前往监测 (Monitoring) → 最新数据(Latest data)查看具体细节。

模板导出

要导出模板,按照如下的操作:

配置 (Configuration) → 模板 (Templates)选中要导出模板的复选框,单击列表下面的 导出(Export) 按钮。

选中的模板被导出到本地的XML文件里,默认的名称是 zabbix_export_templates.xml

模板导入

要导入模板,按照如下的操作:配置 (Configuration) → 模板 (Templates)单击右上角的 导入 (Import) 按钮,选择要导入的文件,标记导入规则里要求的选项,单击 导入(Import) 按钮

绑定模板

点击 配置 → 主机 找到你的主机,然后选择模板,选择好模板后,点击更新

监控数据

点击配置栏中的监测 (Monitoring) →主机 (host) →最新数据 (Latest data)以查看具体细节。

第一次获得的监控项值最多需要60秒才能到达。 默认情况下,这是服务器读取变化后的配置文件,获取并执行新的监控项的频率。 等待30秒以获得新的监控项值。

图表

当监控项运行了一段时间后,可以查看可视化图表,点击监控项后的图形(Graph)以查看图表。

解决Zabbix中文乱码

安装并更新字体

tiki 复制代码
yum install -y wqy-microhei-fonts.noarch

update-alternatives --install /usr/share/zabbix/assets/fonts/graphfont.ttf zabbix-web-font /usr/share/fonts/wqy-microhei/wqy-microhei.ttc 10

update-alternatives --config zabbix-web-font

systemctl restart zabbix-server

刷新web界面即可

第二章:Zabbix故障告警

Zabbix故障告警概述

zabbix具备灵活的故障告警功能,允许用户几乎为任何的监控项配置基于电子邮件、短信、企业微信、钉钉等告警通知,这样管理员就可以快速响应服务器出现的问题。

E-mail报警

需要通过网页将邮箱的SMTP功能启动,然后新增授权码,然后获取到163邮箱SMTP服务器的地址。

前往管理 (Administration) → 报警媒介类型 (Media types)点击列表中的 Email 设置表单如下图:

解释:

  • 名称:Email为报警媒介类型名称

  • SMTP服务器:用于发送邮件的服务器

  • SMTP HELO:向服务器标识用户身份

  • SMTP电邮:用于发送邮件的账户

添加触发器

触发器会根据监控项的异常状态触发报警,而不需要我们直接在Zabbix前端进行查看,这就是通知的功能。

为监控项配置触发器,前往配置 (Configuration) → 主机 (Hosts)找到对应主机(New host)点击旁边的触发器 (Triggers),然后点击创建触发器(Create trigger)

这个触发器,有下列必填项:

1)名称:自定义,可根据具体监控项名称作为名称。

2)表达式: 从 添加 按钮内选择具体的 监控项以及触发的条件。

3)严重性:根据具体情况定义即可。

完成后,点击添加(Add)。新的触发器将会显示在触发器列表中。

这个特定的表达式大致是说如果当前登录系统的用户数量超过2,就触发了问题的阈值。

测试触发器

随后我们可以在对应主机使用多个用户登录来验证该触发器,如果当前系统的用户数量超过了你在触发器中定义的阈值,这个问题将显示在监测 (Monitoring) → 问题(Problems)中。

状态列如果闪烁意味着这个触发器状态最近30分钟内发生过变化。

在练习添加一个CPU的触发器,配置 → **主机 **点击 触发器 创建触发器

触发器的名称使用 CPU 1分钟负载过高

表达式具体写法

这个表达式的大致含义是说如果1分钟内,CPU负载的平均值超过10%,那么就触发了问题的阈值。

随后可以在对应主机模拟CPU忙碌来验证该触发器,具体问题将显示在监测 (Monitoring) → 问题 (Problems)中,也可在 监测最新数据 通过图形观察CPU状态

新建动作

为了建立一个报警通知,前往配置 (Configuration) →动作 (Actions),然后点击创建动作(Create action)

名称:动作的名称自定义且支持中文,一般设置成跟具体监控项或者触发器的名称含义一致即可,这样方便你清楚的知道具体是哪个监控项触发的告警。

条件:用于绑定对应的触发器

我们还需要定义这个动作具体做了什么 ---即在 操作(Operations) 中配置具体的操作。

点击新建(New),将会打开一个操作表单。

先配置第一个操作,点击操作内的 添加

默认1小时情况下,例如:步骤1-3就是故障不恢复的的情况下一小时发送一次,发送三次停止,1-0是每隔一小时发一次,直到故障恢复。

下边是zabbix内置的用户自定义告警消息模板,用于指定发送告警的具体消息,将该内容复制到对应的参数内

sh 复制代码
故障告警:{EVENT.NAME}

告警主机: {HOST.NAME}
主机地址: {HOST.IP}
监控项目: {ITEM.NAME}
当前取值: {ITEM.LASTVALUE}
告警等级: {TRIGGER.SEVERITY}
告警时间: {EVENT.DATE}-{EVENT.TIME}
事件ID: {EVENT.ID}

接下来配置告警恢复操作,点击恢复操作内的 添加

下边是zabbix内置的用户自定义告警消息变量,用于指定故障恢复时,发送告警的具体消息,将该内容复制到对应的参数内

sh 复制代码
故障恢复:{EVENT.NAME}

主机地址: {HOST.IP}
告警名称: {EVENT.NAME}
持续时长: {EVENT.DURATION}
恢复时间: {EVENT.RECOVERY.DATE}-{EVENT.RECOVERY.TIME}
当前状态: {TRIGGER.STATUS}
当前取值: {ITEM.LASTVALUE}
事件ID: {EVENT.ID}

点击 添加(Add)动作就完成了。

检查对应的动作的状态为 已启用 状态

Report problems to Zabbix administrators(向zabbix管理员报告问题)状态无需启用,应为接下来我们会自定义收件人信息。

定义收件人

我们在定义一个外界的收件人邮箱,选择用户基本资料报警媒介 添加 收件人的邮箱,这个可以是实际工作中管理员的具体邮箱地址。

注意:该邮箱需开启邮件服务,开起方法可等录具体邮箱官网,从设置中开启。

一切准备就绪,点击更新即可。

小结:

1)E-mail:报警媒介类型,通过什么方式去发送报警消息;

2)触发器:用于为监控项内的指标数据定义阈值(条件);

3)动作:用于绑定具体触发器,当触发器被触发时,用于发送告警消息;

4)收件人:用于接收告警消息;

验证告警信息

接下来我们要在被控主机上模拟多个用户登录系统来触发这个告警动作。

监测 (Monitoring) → 问题 (Problems)中,可以看到闪烁 问题

验证是否会收到邮件通知!你的e-mail中,会收到一个问题通知。

常见问题分析:如果通知功能没有正常工作

  • 再次验证E-mail设置和动作设置已经被正确配置
  • 另外,你可以在报告 (Reports) → 动作日志(Action log)中检查动作日志。

自定义触发器严重性

默认情况下,触发器的严重性以英文方式展示,可以在管理 → 一般 →触发器设置 中配置为中文。

点击 更新

动作日志

动作日志可以查看zabbix执行过的所有告警动作,通过报表动作日志查看

审计

审计用于记录我们在zabbix web上执行过的所有(造成改变)的行为,,通过报表审计查看

总结:

1.创建触发器(为监控项定义一个条件)

2.创建动作(跟触发器绑定,触发器一旦被触发,接下来就执行动作:可以是发送报警消息)

3.定义报警收件人

4.验证动作是否执行成功,通过动作日志查看

Zabbix企业微信报警

企业微信告警配置步骤:

  • 登录企业微信官网,准备zabbix企业微信的应用ID与密钥
  • 准备企业ID
  • 部门ID
  • 准备个人账号ID
  • 测试zabbix应用ID与企业微信接口是否可以正常建立连接
  • 准备企业微信报警脚本,并指定企业微信账号信息
  • 配置报警媒介
  • 测试告警

准备企业微信信息

登录企业微信:https://work.weixin.qq.com/

应用管理中查看zabbix应用ID及secret(密钥)

|

我的企业中查看企业ID

通讯录中查看部门ID及个人账号ID

登录微信企业接口调试网址测试zabbix应用能否访问企业微信:

https://open.work.weixin.qq.com/wwopen/devtool/interface/combine

zabbix应用ID:1000039

应用密钥:RdqTtbydSEoef5TxUEKbheHwoszwJklVNYCFpb7Rwes

企业ID:wwa78d6212da74fd51

个人账号ID: Yesir

部门ID:8

配置报警脚本

zabbix要求故障报警脚本必须放在指定路径,通过下边命令过滤配报警脚本的存放路径

powershell 复制代码
egrep -v '^$|#' /etc/zabbix/zabbix_server.conf
...
AlertScriptsPath=/usr/lib/zabbix/alertscripts   //存放报警脚本路径

将脚本放至该路径添加执行权限

shell 复制代码
cd /usr/lib/zabbix/alertscripts/
chmod +x wechat.py  

修改脚本添加企业微信信息

powershell 复制代码
vim wechat.py
...
 Data = {
        "touser": "User",          企业号中的用户帐号
        #"totag": Tagid,                                
        "toparty": Partyid,        部门ID                       
        "msgtype": "text",                             
        "agentid": "Agentid",      Zabbix应用ID
...

    Corpid = "wxaf"                 企业ID
    Secret = "aKDdCRT76"            Zabbix应用密钥
    #Tagid = "1"                                                               
    Agentid = "1000001"             Zabbix应用ID

安装python3.6

因为微信告警脚本是python写的,所以需要先安装python,系统预装python版本是2.7,实践会报错找不到模块,所以需要安装python3.6解决,但yum支持不了这么高版本的python,所以这里用源码安装python,然后装requests模块的时候也不要用系统预装的pip,用pip3。

powershell 复制代码
yum -y install  python-requests zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

mkdir -p /usr/local/Python3
tar -xf Python-3.6.4.tgz
cd Python-3.6.4/
./configure --prefix=/usr/local/Python3 && make && make install

cd /usr/local/Python3
ln -s /usr/local/Python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/Python3/bin/pip3.6 /usr/bin/pip3
pip3 install requests

执行脚本测试:'收件人的微信账号' '信息标题' '信息内容'

shell 复制代码
cd /usr/lib/zabbix/alertscripts/
./wechat.py Yesir test hello

测试时如果出现IP地址不信任的问题,例如下方提示:

sh 复制代码
ps://open.work.weixin.qq.com/devtool/query?e=60020'}
{u'errcode': 60020, u'errmsg': u'not allow to access from your ip, hint: [1660829875354963235117609], from ip: 111.164.201.247, more info at https://open.work.weixin.qq.com/devtool/query?e=60020'}

解决方法:

1)登录企业微信:https://work.weixin.qq.com/

2)点击应用管理找到zabbix应用

3)在页面最下方配置企业可信IP(把请求返回的ip设置到可信IP中,注意:IP每天都会变动,所以每天都要重新配置到企业可信IP里)

创建报警媒介

媒介是Zabbix中用于发送告警的方式,可以配置多种媒介类型,如:电子邮件、短信、自定义报警脚本、Webhook

媒介类型在 管理媒介类型 中进行配置,点击 创建媒介类型 按钮来创建一个新的媒体类型。

下边三个脚本特定参数是zabbix内置,用于指定在发送消息时的收件人、消息主题、消息内容

powershell 复制代码
{ALERT.SENDTO}        #收件人
{ALERT.SUBJECT}       #消息主题
{ALERT.MESSAGE}       #消息内容

自定义消息模板的步骤:

  • 消息模板 (Message template) 选项卡中,点击 添加 填写所需的 消息类型 主题 消息

下边是zabbix内置的问题消息模板,用于指定发送告警的具体消息。

sh 复制代码
告警信息:{EVENT.NAME}

告警主机: {HOST.NAME}
主机地址: {HOST.IP}
监控项目: {ITEM.NAME}
当前取值: {ITEM.LASTVALUE}
告警等级: {TRIGGER.SEVERITY}
告警时间: {EVENT.DATE}-{EVENT.TIME}
事件ID: {EVENT.ID}

完成后点击 添加 保存消息模板。

配置 问题恢复 消息

下边是zabbix内置的问题恢复消息模板,用于指定故障恢复时,发送告警的具体消息。

sh 复制代码
故障恢复:{EVENT.NAME}

主机地址: {HOST.IP}
告警名称: {EVENT.NAME}
持续时长: {EVENT.DURATION}
恢复时间: {EVENT.RECOVERY.DATE}-{EVENT.RECOVERY.TIME}
当前状态: {TRIGGER.STATUS}
当前取值: {ITEM.LASTVALUE}
事件ID: {EVENT.ID}

点击 添加 保存消息模板。

媒介类型测试

报警媒介类型 列表中找到企业微信报警 ,点击列表最后一栏中的 测试 (将打开一个测试窗口)测试配置好的媒介类型是否正常工作

获取通知

由于前边在学习邮件报警时已经配置过触发器及动作,可从 配置 → 主机 触发器页面查看前边配置的触发器。

可从 配置 → 动作 页面查看前边配置过的触发器动作

接下来添加微信收件人,点击 用户基本资料 → 报警媒介添加 企业微信收件人。

点击 更新

接下来我们使用多个终端同时登录来验证报警消息。

监测 → 最新数据 以查看具体值。

监测 → 问题 以查看具体问题通知。

报表 → 动作日志 以查看发送消息是否成功。

问题确认

Zabbix的问题事件可由用户确认,如果用户收到问题事件的通知,可以打开Zabbix的前端页面,从问题更新页面上找到对应的问题进行确认。当进行确认的时候,可以输入注释表明他们正在处理该问题,或者输入任何他们想表述的内容。

利用这种方式,如果有另一个系统管理员察觉到这个问题,就可以立刻知道该问题已经被确认过,并且看到之前留下的注释。

这样的问题处理工作流,可以让多个系统管理员协同工作。

提示: 要确认事件,用户必须至少具有相应触发器的读权限。

常见的问题确认方法:从左侧配置栏的 **监测 (Monitoring) → 仪表板 (Dashboard) → 问题 (Problems) **从确认小部件中确认状态。

配置CPU告警

由于前边已经配置了CPU 1分钟负载的触发器,在 配置→主机 对应主机中的 触发器 查看。

新建动作

配置→动作中创建动作并绑定对应触发器。

操作 中,添加报警操作细节。

恢复操作 中,添加恢复操作细节。

配置完成后,点击 更新

验证告警信息

接下来在被控主机上模拟CPU负载来触发这个告警动作。

sh 复制代码
while :; do echo hello; done

第三章:Zabbix项目监控实战

本章学习部署LNMP架构并上线Discuz论坛项目,并通过Redis为论坛提供缓存服务,然后对论坛做网站数据统计,最后通过zabbix监控相关服务。

实现步骤:

  1. 部署LNMP架构

  2. 上线Discuz项目到LNMP架构

    Discuz!是一套通用的社区论坛软件系统

  3. redis为Discuz提供缓存

  4. 网站数据统计

    • 网站 IP: 1个IP是1台电脑

    • 网站 UV( unique visitor ): 是指浏览网站的实际用户, 如果以UV作为流量统计标准,可以更加准确的了解实际上有多少个访问者来访问了相应的页面。

    • 网站 PV( Page Views):即页面浏览量,用户24小时(0点到24点)内,每一次对网站中的网页访问均被记录一次,网站的PV从某种程度上已成为投资者衡量商业网站表现的最重要尺度,就像收视率之于电视。

    • 总结: 你可以这样想 1个IP是1台电脑,1个UV是1个人,假如在一个家庭里面,两口人使用自家电脑上网,老公访问了网站并注册了账号,从而被记录了一次IP,之后,老婆又访问了网站并注册了账号,这时,网站的流量统计系统将这样变化,IP不变、网站UV增加1、PV增加,通常网站UV数量是大于网站IP数量的。

部署LNMP架构

在zbx-client端部署LNMP架构

所需软件包:nginx php-fpm mariadb mariadb-server mariadb-devel php php-mysql

部署php-fpm与数据库

在zbx-client客户端主机部署

php-fpm 作为PHP进程管理程序。

tiki 复制代码
#安装Mariadb-server及相关依赖
yum install mariadb mariadb-server php php-fpm php-mysql php-gd -y

修改 /etc/my.cnf 文件支持中文

tiki 复制代码
vim /etc/my.cnf
[mysqld]
character-set-server=utf8  --手动添加

#启动服务并设置服务随机自启
systemctl start mariadb && systemctl enable mariadb

修改/etc/php-fpm.d/www.conf配置文件指定用户与组,并开启状态页面用于监控服务状态。

tiki 复制代码
vim /etc/php-fpm.d/www.conf 
...
39 user = nginx
41 group = nginx

121 pm.status_path = /php_status    --取消注释(默认被注释)并改名为/php_status

修改配置/etc/php.ini 指定php时区

tiki 复制代码
vim /etc/php.ini   
...
date.timezone ="Asia/shanghai"  --指定时区

部署Nginx

通过nginx官方仓库安装软件包,并开启nginx状态页面功能

tiki 复制代码
#创建nginx仓库文件
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true


#安装nginx
yum -y install nginx-1.22.0-1.el7.ngx.x86_64

修改 /etc/nginx/conf.d/default.conf 文件(提前做好配置文件备份)

powershell 复制代码
cp /etc/nginx/conf.d/default.conf{,.bak}

#删除配置文件默认内容,替换为如下内容
cat /etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  localhost;
    
    #开启nginx状态页面
    location = /status {    
    stub_status;
   }
   
    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;  
    }
    
    #配置nginx连接php
    location ~ \.php$ {
        root           /usr/share/nginx/html; 
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    
    #开启php页面
    location /php_status {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }
}
tiki 复制代码
#启动服务&设置服务随机自启
systemctl restart nginx php-fpm && systemctl enable nginx php-fpm

访问nginx状态页面:http://server_ip/status

访问php-fpm状态页面:http://server_ip/php_status

测试nginx与php之间的连接

shell 复制代码
vim /usr/share/nginx/html/phpinfo.php
<?php
phpinfo();
?>

访问:http://server_ip/phpinfo.php

测试php与mysql协同方式一:

shell 复制代码
vim /usr/share/nginx/html/mysql.php 
<?php
$con=mysql_connect("localhost","root","");
if(!$con){
        die("could not connect to the db:\n".mysql_error());
}
else{
        echo "success";
}
mysql_close($con);
?>

测试php与mysql协同方式二:

shell 复制代码
<?php
$con=mysql_connect("localhost","root","");
if(!$con) echo "error";
else echo "success";
?>

访问测试:http://server_ip/mysql.php

上线Discuz项目

上线Discuz项目到nginx网页目录:/usr/share/nginx/html/

tiki 复制代码
#解压项目代码
cd /usr/share/nginx/html/

#解压项目
unzip Discuz_X3.3_SC_UTF8.zip 

#将项目文件移动至html
mv upload/* .

#修改项目文件归属为nginx
chown -R nginx:nginx .

访问Discuz:http://server_ip/

创建数据库并授权discuz用户

tiki 复制代码
mysql
MariaDB [(none)]> create database discuz;
MariaDB [(none)]> grant all on discuz.* to discuz@localhost identified by '123456';

登录Discuz

使用管理员登录:用户名admin,密码123456

| 登陆后点击管理中心 |

| 输入管理员密码(密码:123456)后点击提交 |

| 点击 全局→性能优化→内存优化 |

默认不支持Redis缓存,Discuz是php语言开发,如需通过Redis加速,需要安装php连接Redis的扩展模块。

Redis为Discuz提供缓存

安装Redis(需要epel源)

shell 复制代码
yum -y install redis

安装php-pecl-redis扩展模块(该模块用于php连接redis)

可提前过滤对应软件包:yum list|grep php|grep redis

tiki 复制代码
#安装(需要epel源)
yum -y install php-pecl-redis.x86_64

#重启php-fpm
systemctl restart php-fpm

查看模块

php -m 查看所有php模块,可结合grep过滤

shell 复制代码
php -m | grep redis
redis

再次刷新页面可看到以支持Redis

但是现在Discuz与Redis之间还没有建立连接,接下来配置Discuz连接Redis。

修改文件:/usr/share/nginx/html/config/config_global.php

shell 复制代码
vim /usr/share/nginx/html/config/config_global.php
...
19 $_config['memory']['redis']['server'] = '127.0.0.1';  #指定Redis服务器地址为本机
23 $_config['memory']['redis']['requirepass'] = '';      #如果Redis有密码需指定密码

启动Redis程序

shell 复制代码
systemctl start redis && systemctl enable redis

再次刷新页面可看到Discuz已经成功与Redis连接,并且已经利用Redis存储了数据。

当Redis为论坛加速后,用户在访问速度上会大大的提升。

如需查看Redis数据,可通过命令行进入数据库查看:

shell 复制代码
redis-cli
127.0.0.1:6379> keys *

网站数据统计

网站统计是对网站的访问信息记录并归类,例如:网站访问量、用户访问最高的时段、访问最多的网页、停留时间、用户使用的搜索引擎,主要关键词、来路、入口、浏览深度、所用语言、时区、所用浏览器种类、时段访问量统计分析、日段访问量统计分析以及周月访问量统计分析等,网站访问数据的基础分析。

网站统计为网站收集用户信息提高和改进网站建设具有重要意义,国内常用的统计网站有CNZZ、51la、百度统计、腾讯统计、站长统计、51yes、SiteFlow等。

Matomo介绍

不想用三方公司开发的统计系统,我们可以寻求自建统计系统,Piwik(后改名为:Matomo)就是一款知名度和美誉度比较高的免费开源的PHP统计系统,基本上可以满足中小型网站的日常统计需要。

Matomo采用PHP+MysqL构建,所以任何LNMP或者LAMP环境的Web服务器都可以运行。

Matomo官网: https://matomo.org/

Matomo部署

安装Matomo要求服务器至少满足以下条件:

支持 Apache、Nginx

PHP 版本至少是 5.5.9

MySQL\MariaDB版本至少是 5.5 或以上

检查nginx、php、MySQL版本是否符合安装条件

shell 复制代码
#zabbix agent端查看
mysql --version
php --version

默认情况下系统自带的php版本过低,需要对php进行升级, php高版本的yum源地址,有两部分,其中一部分是fedora源,另外一部分来自webtatic源。

tiki 复制代码
#安装epel-release与webtaticy源
rpm  -Uvh   https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 
rpm  -Uvh   https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

#为了防止centos上面发生php版本冲突,先清理以下本机自带的php相关软件
yum -y remove php*

#安装php72w及其它相关扩展(w表示软件来源于webtatic-release这个镜像源,安装上没什么需要注意的,哪个快用哪个,webtatic上php版本比较全)
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-pecl-redis php72w-xml

#重启php-fpm
systemctl restart php-fpm && systemctl enable php-fpm

#查看php版本
php --version

#查看php扩展模块(主要检查php连接MySQL与Redis模块)
php -m | egrep "redis|mysql"
...
mysqli
mysqlnd
pdo_mysql
redis

修改配置/etc/php.ini文件指定时区

tiki 复制代码
vim /etc/php.ini   
...
date.timezone ="Asia/shanghai"   --在文件最后增加

修改/etc/php-fpm.d/www.conf文件指定用户与组,并开启状态页面。

tiki 复制代码
vim /etc/php-fpm.d/www.conf
...
8 user = nginx
10 group = nginx
217 pm.status_path = /php_status    --取消注释(默认被注释)并改名为php_status

#重启php-fpm
systemctl restart php-fpm

配置matomo的站点

通过虚拟web主机方式部署matomo站点(基于域名)

创建nginx配置文件,可直接将下边内容复制到该文件:/etc/nginx/conf.d/matomo.conf

tiki 复制代码
cat /etc/nginx/conf.d/matomo.conf

server {
    listen       80;
    server_name  web.matomo.com;       #配置访问域名

    location / {
       root /usr/share/nginx/matomo;  #指定站点目录
       index  index.php index.htm;     
    }

    location ~ \.php$ {
        root           /usr/share/nginx/matomo;  #指定站点根目录
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}


#重启服务
systemctl restart nginx

上线matomo项目

创建matomo站点目录并上传项目

shell 复制代码
mkdir /usr/share/nginx/matomo
cd /usr/share/nginx/matomo
unzip matomo-latest.zip
mv matomo/* .
chown -R nginx:nginx .

配置本地域名解析:C:\Windows\System32\drivers\etc

配置格式:server_ip web.matomo.com

Matomo页面初始化

浏览器访问测试:http://web.matomo.com/

登陆后可修改页面语言为:简体中文

Matomo将检查以确保您的服务器符合Matomo的要求。如果一切正常,您会看到一长串清单

按照提示删除多余文件后,点击下一步

为matomo创建数据库以及连接数据库用户

tiki 复制代码
#创键库并授权用户
mysql 
MariaDB [(none)]> create database matomo;
MariaDB [(none)]> grant all on matomo.* to matomo@'localhost' identified by '123456';
填写表格后,单击下一步>>

Matomo将必要的表添加到数据库中:

点击下一步>>

超级用户是您在安装Matomo时创建的用户,该用户具有最高权限,选择您的用户名和密码:

填写信息,然后单击下一步>>

输入您要跟踪的第一个网站的名称和URL。安装完成后,您可以添加更多网站。

网站名称:自定义

网站网址:网址填写自己搭建的Discuz论坛服务器地址!

点击下一步>>

Matomo将向您发出一个JavaScript追踪标签,该代码必须出现在您要Matomo分析的每个页面上。

复制代码到Discuz论坛的第三方统计代码处。

管理中心→全局→站点信息 ,拉到最下边可看到网站第三方代码,复制代码,点击提交即可。

回到Matomo页面,请点击下一步>>

单击继续到Matomo>>,然后登录到仪表板!

首次登录会出现如上提示:

如果您的网站上正确安装了Matomo JavaScript跟踪标记,则您将收到实时分析数据。如果您没有收到任何数据,请确保已将Matomo Javascript代码复制并粘贴到您的网站页面上。

此时刷新论坛 的浏览量后在查看Matomo页面会出现统计信息

到此为止,Matomo已经成功为Discuz做网站的数据统计。

自定义Nginx监控

自定义nginx访问量的监控项,首先要通过脚本将各种状态的值取出来,然后通过zabbix监控。

在zbx-client客户端主机操作

tiki 复制代码
#创建目录,然后将脚本上传到该目录
mkdir /etc/zabbix/script/
cd /etc/zabbix/script
chmod +x ngx_status.sh 

#脚本内容主要是利用函数定义nginx状态页面的各个字段,然后结合awk进行取值,最后在通过case语句控制脚本输出
cat /etc/zabbix/script/ngx_status.sh 

#定义Nginx status页面
ngx_status="http://127.0.0.1/status"

#判断status页面是否存活
ngx_status_code() {
        http_code=`curl -o /dev/null -s -w %{http_code} ${ngx_status}`
        if [ ${http_code} == "200" ];then
                return 1
        else
                echo "Nginx status is not running."
        fi
}

#获取当前活动用户的连接数量
active() {
        ngx_status_code || curl -s ${ngx_status} | grep "Active" | awk '{print $NF}'
}

#获取接受的客户端连接数量
accepts() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $1}'
}

#获取处理的连接总数量
handled() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $2}'
}

#获取客户端请求的总数量
requests() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $3}'
}

#获取正在读取请求标头的当前连接数量
reading() {
        ngx_status_code || curl -s ${ngx_status} | grep "Reading" | awk '{print $2}'
}

#获取正在将响应写回到客户端的当前连接数量
writing() {
        ngx_status_code || curl -s ${ngx_status} | grep "Writing" | awk '{print $2}'
}

#获取当前正在等待响应的客户端连接数量
waiting() {
        ngx_status_code || curl -s ${ngx_status} | grep "Waiting" | awk '{print $2}'
}

#使用位置变量控制脚本输出
case $1 in
        active)
                active;;
        accepts)
                accepts;;
        handled)
                handled;;
        requests)
                requests;;
        reading)
                reading;;
        writing)
                writing;;
        waiting)
                waiting;;
        *)
                echo "Unknown options"
esac
tiki 复制代码
#修改zabbix agent配置文件,开启自定义监控功能
vim /etc/zabbix/zabbix_agentd.conf 
...
311 Include=/etc/zabbix/zabbix_agentd.d/*.conf  --自定监控路径

330 UnsafeUserParameters=1    --改为1为开启自定义监控功能,默认该功能为关闭状态


#进入自定义监控路径
cd /etc/zabbix/zabbix_agentd.d/


#创建自定义监控文件(文件名要求以 .conf结尾)
vim nginx_status.conf

UserParameter=nginx.active,bash /etc/zabbix/script/ngx_status.sh active
UserParameter=nginx.accepts,bash /etc/zabbix/script/ngx_status.sh accepts
UserParameter=nginx.handled,bash /etc/zabbix/script/ngx_status.sh handled
UserParameter=nginx.requests,bash /etc/zabbix/script/ngx_status.sh requests
UserParameter=nginx.reading,bash /etc/zabbix/script/ngx_status.sh reading
UserParameter=nginx.writing,bash /etc/zabbix/script/ngx_status.sh writing
UserParameter=nginx.waiting,bash /etc/zabbix/script/ngx_status.sh waiting

#解释
UserParameter=   #自定义监控固定格式
nginx.active	 #监控项名称

#重启zabbix-agent服务
systemctl restart zabbix-agent

获取监控项数据

zabbix server端操作

tiki 复制代码
#服务端下载zabbix-get软件包,用于在命令行获取客户端监控项的值
yum -y install zabbix-get

#获取客户端监控项(按照自己的环境修改IP)
zabbix_get -s 192.168.0.15 -k nginx.active	  --当前活动用户的连接数量
zabbix_get -s 192.168.0.15 -k nginx.accepts   --接收的客户端连接总数量
zabbix_get -s 192.168.0.15 -k nginx.handled   --处理的连接总数量
zabbix_get -s 192.168.0.15 -k nginx.requests  --客户端请求的总数量
zabbix_get -s 192.168.0.15 -k nginx.reading   --正在读取请求的连接数
zabbix_get -s 192.168.0.15 -k nginx.writing   --将响应反回客户端的连接数
zabbix_get -s 192.168.0.15 -k nginx.waiting   --客户端正在等待服务器的响应数量

接下来创建监控模板、应用集、监控项。

配置→模板 页面创建新的模板

| 配置 → 模板 页面找到我们自建的模板,点击模板中的 应用集 然后 创建应用集 |

| 点击模板中的 监控项 然后 创建监控项 |

|

当完成后,点击 添加(Add),新的监控项将出现在监控项列表中。

按照上述方法在将其余的监控项添加至模板中。最终的效果如下图:

绑定模板,转到 配置 → 主机 找到你的主机,把模板绑定到主机。

随后点击配置栏中的监测 (Monitoring) → 最新数据 (Latest data)以查看具体细节。

自定义php-fpm监控

php-fpm 作为 PHP进程管理程序,我们也需要监控它的状态。

tiki 复制代码
#查看php-fpm配置文件确保已经开启状态页面功能(搜索:status)
vim /etc/php-fpm.d/www.conf 
...
121 pm.status_path = /php_status    
tiki 复制代码
#查看nginx配置文件确保可以访问php_status页面
vim /etc/nginx/conf.d/default.conf
...
    location /php_status {            #php状态页面     
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }   

访问php状态页面:http://server_ip/php_status

pool:fpm池子名称,大多数为www
process manager:进程管理方式,值:static,dynamic or ondemand
start time:启动日期,如果reload了php-fpm,时间会更新
start since:运行时长
accepted conn:当前池子接受的请求数
listen queue:请求等待队列,如果这个值不为0,那么要增加FPM的进程数量
max listen queue:请求等待队列最高的数量
listen queue len:socket等待队列长度
idle processes:空闲进程数量
active processes:活跃进程数量
total processes:总进程数量
max active processes:最大的活跃进程数量(FPM启动开始算)
max children reached:进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,需要设置大点
slow requests 当启用了php-fpm slow-log功能时,如果出现php-fpm慢请求这个计数器会增加,一般不当的Mysql查询会触发这个值

自定义监控项方法与nginx类似

tiki 复制代码
#上传脚本到/etc/zabbix/script路径并添加执行权限
chmod +x phpfpm_status.sh
tiki 复制代码
#创建自定义监控项文件
cat /etc/zabbix/zabbix_agentd.d/phpfpm_status.conf
UserParameter=phpfpm_status[*],/bin/bash /etc/zabbix/script/phpfpm_status.sh "$1"
tiki 复制代码
#重启zabbix agent服务
systemctl restart zabbix-agent

Zabbix Server获取监控项数据

tiki 复制代码
#php-fpm运行时长
zabbix_get -s 192.168.0.15 -k phpfpm_status[start_since]

#当前接收的连接数
zabbix_get -s 192.168.0.15 -k phpfpm_status[accepted_conn]

#等待连接的请求数
zabbix_get -s 192.168.0.15 -k phpfpm_status[listen_queue]

#请求等待队列最高的数量
zabbix_get -s 192.168.0.15 -k phpfpm_status[max_listen_queue]

#socket等待队列长度
zabbix_get -s 192.168.0.15 -k phpfpm_status[listen_queue_len]

#空闲进程数量
zabbix_get -s 192.168.0.15 -k phpfpm_status[idle_processes]

#活跃进程数量
zabbix_get -s 192.168.0.15 -k phpfpm_status[active_processes]

#总进程数量
zabbix_get -s 192.168.0.15 -k phpfpm_status[total_processes]

#最大的活跃进程数量
zabbix_get -s 192.168.0.15 -k phpfpm_status[max_active_processes]

#进程最大数量限制的次数
zabbix_get -s 192.168.0.15 -k phpfpm_status[max_children_reached]

#php-fpm慢请求
zabbix_get -s 192.168.0.15 -k phpfpm_status[slow_requests]   

接下来创建模板、应用集、监控项、绑定模板与前边的nginx一样,此处不在重复演示,最终效果如下图:

自定义Redis监控

自定义监控项方法与nginx类似

tiki 复制代码
#上传脚本到/etc/zabbix/script路径并添加执行权限
chmod +x redis_status.sh
tiki 复制代码
#创建自定义监控项文件
vim /etc/zabbix/zabbix_agentd.d/custom_redis_status.conf
UserParameter=Redis.Info[*],/etc/zabbix/script/redis_status.sh $1 $2
UserParameter=Redis.Status,(redis-cli -h 127.0.0.1  -p 6379  ping)2>/dev/null |grep -c PONG
tiki 复制代码
#重启zabbix agent服务
systemctl restart zabbix-agent

接下来创建模板、应用集、监控项、绑定模板与前边的nginx一样,此处不在重复演示,最终效果如下图:

自定义MySQL监控

percona官网: https://www.percona.com/

软件下载地址: wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm

安装percona

tiki 复制代码
rpm -ivh percona-zabbix-templates-1.1.6-1.noarch.rpm 
...
Scripts are installed to /var/lib/zabbix/percona/scripts      --监控脚本安装路径
Templates are installed to /var/lib/zabbix/percona/templates  --监控模板安装路径

#查看监控模板路径
ls /var/lib/zabbix/percona/templates
userparameter_percona_mysql.conf       --监控项配置文件
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml   --监控模板文件

#将自定义监控文件移动至/etc/zabbix/zabbix_agentd.d/自定义监控项目录
mv /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

导入监控模板,验证模板是否可用,回到zabbix web界面通过 配置→模板→导入 将模板文件导入。

使用更高版本模板导入:

模板的规则默认即可,点击 导入 可看到已导入成功

通过配置→模板查看(搜索:mysql)具体信息

配置percona连接数据库

percona监控插件是php编写,通过php连接mysql数据库来获取相关的数据,需要为percona指定连接数据库的用户与密码。

tiki 复制代码
#修改/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php文件指定用户与密码
ls /var/lib/zabbix/percona/scripts/
get_mysql_stats_wrapper.sh   --获取MySQL状态脚本
ss_get_mysql_stats.php       --php连接MySQL数据库脚本

#修改php脚本指定连接数据库用户与密码
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
...
30 $mysql_user = 'root';       
31 $mysql_pass = '';        如果root用户没有密码,则留空即可
tiki 复制代码
#重启zabbix agent服务
systemctl restart zabbix-agent

zabbix server 端命令行取值(具体值可从/etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf监控项文件中查看)

shell 复制代码
zabbix_get -s 192.168.0.15 -k MySQL.Sort-scan
0

所有的准备工作完毕以后,回到zabbix server的web界面就可以将模板绑定到具体的主机。

配置→主机 选择你希望绑定的主机后点击 **模板 **后进行更新。

具体监控项信息可通过检测→主机→最新数据中查看。

配置→主机→监控项找到MySQL的监控项,在第2页可看到一个不支持的提示,该监控项是监控MySQL主从同步状态,主要原因是zabbix用户在数据库中是不存在,所以无法获取具体的值。

如果需要监控主从同步状态,需要修改/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh脚本文件

将用户改为root即可(如果root用户没有设置密码,则不需要指定-p)。

回到web界面查看监控项状态。

具体取值数据可从 监测→最新数据 中查看

此时通过 监测→仪表板 查看时会发现一个问题通知,大致含义为主从状态为停止。

如果没有配置主从同步,通过 配置→主机→监控项,找到对应监控项关闭即可。

到此为止MySQL监控以完成。

有时间可以制作一个MySQL的监控模板(中文)只保留核心监控项目,没有必要的,停用掉!

第四章:Zabbix其他监控

Zabbix_Web监测

Web监测属于业务监测,模拟用户去访问网站,用来监测Web站点多方面的可用性,可以监控web站点的相关延迟,响应时间,下载时间等指标,从而判断网站Web服务的可用性。

案例需求:要求通过zabbix_web监测功能监控Discuz论坛的响应速度及下载速度。

1)创建web监测

通过左侧栏的 配置→主机 找到对应的主机点击 Web监测 后点击右上角的 创建Web场景

填写场景名称、应用集、更新间隔、尝试次数以及客户端,这些都可以自定义 。

2)配置步骤

随后点击步骤,配置第一步骤,配置如下图所示,步骤名称自定义,URL填写打开Discuz论坛时的网址链接
勾选 跟随跳转 (不勾选会报301错误),超时时间默认15s,要求的状态码填200(多个状态码用英文逗号隔开即可,如:200,404,500),然后点击右下角 **添加 **添加步骤,再次点击 添加,成功添加新的Web场景。

3)查看Web监测

具体图形可通过 监测→主机 ,可以看到我们配置了WEB监测的主机,点击 Web监测1 ,稍等一分钟后可以看到有数据,说明配置无误。

Zabbix的SNMP监控

SNMP简单网络管理协议,是专门设计用于在 IP 网络管理、网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。

如果我们需要监控打印机、路由器、交换机、UPS等设备,肯定不能使用zabbix agentd,因为他们不能安装软件的,一般都支持SNMP协议,这样我可以使用SNMP来监控他们。

SNMP版本:

  • SNMP 版本 1 (SNMPv1) :第一个版本,不支持任何的认证功能。
  • SNMP 版本 2 (SNMPv2) :第二个版本,支持简单的认证口令(community)
  • SNMP 版本 3 (SNMPv3) : 此版本提高了安全性和隐私性

MIB介绍:

MIB(Management Information Base)信息管理库,通常与SNMP相关联,数据库是分层的(树形结构的),并且每个条目通过对象标识符(OID)来寻址,OID(Object IDentifiers)对象标识符,用来在MIB库中表示一个对象的指标。

MIB浏览器下载地址:http://www.ireasoning.com/download.shtml

通俗总结:

  • 想要通过Zabbix监控打印机、路由器、交换机等设备,需要通过SNMP协议获取数据
  • SNMP获取的数据来源需要从MIB信息管理库中进行获取
  • OID就是在MIB库中代表每一个可以监控的对象指标(例如:内存、CPU、网络等)

1)部署SNMP监控

本实验采用Linux系统模拟网络设备来演示SNMP监控,企业中需要网路工程师开启设备的SNMP功能即可。

准备一台新的虚拟机(或者node01)充当网络设备,安装SNMP服务

tiki 复制代码
#安装net-snmp软件
yum -y install net-snmp

#修改配置文件
vim /etc/snmp/snmpd.conf
...
 40 #       sec.name  source          community
 41 com2sec notConfigUser  default       public      --认证口令(默认不需要修改)

 55 view    systemview    included   .1.3.6.1.2.1.1
 56 view    systemview    included   .1.3.6.1.2.1.25.1.1
 57 view    systemview    included   .1              --添加OID监控项(.1表示MIB库下所有监控项)

#启动SNMP服务
systemctl start snmpd

2)zabbix server安装工具取值

tiki 复制代码
#安装net-snmp-utils客户端工具
yum -y install net-snmp-utils

#获取SNMP值格式:-v 指定SNMP版本,-c 指定口令(口令要求与配置文件一致)
snmpwalk -v 2c -c public 192.168.0.15

3)Web界面添加监控

配置→主机→创建主机

提示:指定IP地址后,其余参数默认即可,随后绑定监控模板。

配置后大约等待1m左右即可看到如下图状态,到此为止,zabbix监控SNMP配置完成。

Zabbix的Java监控

JMX监控可用于监控和管理Java应用程序,例如常见的Tomcat服务,从zabbix 2.0开始,JMX监视器Zabbix Java gateway专门用于监控Java程序,本实验已Tomcat程序为监控对象,来演示JMX监控。

1)部署Tomcat服务

准备一个新主机(或者使用现有的)部署tomcat

tiki 复制代码
#安装jdk环境
yum -y install java-1.8.0-openjdk.x86_64

#将Tomcat解压
tar -xf apache-tomcat-8.0.30.tar -C /usr/local/
cd /usr/local/
mv apache-tomcat-8.0.30/ ./tomcat
cd tomcat

为Java应用程序启用远程JMX监控,Java应用程序不需要安装任何附加的软件,Tomcat应用需修改 catalina.sh 文件,添加如下参数,设置启动,以支持JMX监控

tiki 复制代码
#catalina.sh文件文件位置在Tomcat项目中 bin/catalina.sh

vim /usr/local/tomcat/bin/catalina.sh
...
#搜索:Execute The Requested Command 在该行下添加上述参数(大约在250行左右)
# ----- Execute The Requested Command --------------------------------------
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.0.15      --本机IP地址
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

参数说明:

hostname:是监控tomcat所在服务器的ip地址

jmxremote.port:端口号,是要开启的监控端口号,12345为JMX默认端口

jmxremote.ssl:是否要开启ssl链接tomcat,false表示不开启

authenticate: false表示监控不须要用户和密码服务器

上述参数使得Java可以侦听来自本地主机12345端口上传入的JMX连接,并告知不需要身份验证或SSL,如过Tomcat开启SSL或身份验证,请参考下边地址进行配置:

JMX监控: https://www.zabbix.com/documentation/5.0/zh/manual/config/items/itemtypes/jmx_monitoring

启动Tomcat服务(Tomcat无需安装,直接启动服务)

tiki 复制代码
#通过脚本启动服务
/usr/local/tomcat/bin/startup.sh 
netstat -ntlp | grep java

浏览器访问测试:http://server_ip:8080

2)zabbix server安装zabbix-java-gateway程序用于监控Java应用

shell 复制代码
yum -y install zabbix-java-gateway

zabbix-java-gateway服务参数:

  • 程序名:zabbix-java-gateway

  • 主配置文件路径:/etc/zabbix/zabbix_java_gateway.conf

  • 服务端口:10052

修改/etc/zabbix/zabbix_java_gateway.conf文件

tiki 复制代码
vim /etc/zabbix/zabbix_java_gateway.conf
...
 35  START_POLLERS=5     --取消注释,定义开启的java_gateway工作线程数量(大于客户端数量)

修改zabbix server配置文件指定zabbix-java-gateway地址

tiki 复制代码
vim /etc/zabbix/zabbix_server.conf 
...
296  JavaGateway=127.0.0.1   --取消注释,指定JavaGateway服务器地址(本机地址)
312  StartJavaPollers=5      --取消注释,定义zabbix server采集java_gateway数据的进程数量(大于java_gateway数量)

启动zabbix-java-gateway服务、重启zabbix server

shell 复制代码
systemctl restart zabbix-server && systemctl start zabbix-java-gateway && systemctl enable zabbix-java-gateway

3)zabbix添加JMX监控

配置→主机→创建主机
该模板为Java应用通用模板。点击更新

4)验证JMX监控,通过 **监测→最新数据 **中看到JMX的监控数据了

第五章:Zabbix监控方式

Zabbix自动发现

在企业集群环境中,当需要监控大量服务器时,zabbix提供的自动发现功能比手工的一台一台添加监控主机会更加的方便,自动发现可以自动扫描网络中的主机,并把满足条件的主机自动添加到监控中,并自动绑定监控模板,实现自动监控 。

环境准备:

主机名 IP地址 角色
zbx-node02 自定义 被控主机
zbx-node03 自定义 被控主机

在node02、node03主机安装zabbix agent程序(需做简单的环境初始化,例如:关闭防火墙与SELinux)

shell 复制代码
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

yum -y install  zabbix-agent

在node02、node03主机分别修改配置文件指定zabbix server地址

shell 复制代码
vi /etc/zabbix/zabbix_agentd.conf
...
Server=server_ip          #指定zabbix server地址

启动zabbix agent服务

shell 复制代码
systemctl start zabbix-agent
systemctl enable zabbix-agent

创建发现规则 配置→自动发现创建发现规则,具体配置

| 发现规则用于指定目标主机的细节信息已方便zabbix server进行认证,规则配置 |


提示:system.uname键值是zabbix agent获取主机的基本常规数据。例如:主机名、内核版本、系统时间等。

可在zabbix server端通过 zabbix_get 进行查看:zabbix_get -s 192.168.0.113 -k system.uname


点击 添加 完成配置,上边配置项默认即可。

创建发现动作来发现主机,配置 (Configuration)→动作(Action)

稍等片刻后,即可在检测→主机中查看到zabbix server已成功发现目标主机

如想查看具体自动发现的设备信息,可通过监测→自动发现查看

Zabbix自动注册

自动注册(Active agent auto-registration)与自动发现相反,自动注册是Zabbix Agent端主动向Zabbix Server发送被监控的请求,这样在对大量服务器进行监控的场景下可以降低Zabbix Server端的压力。

案例:通过自动注册添加监控主机。

本案例仍使用前边自动发现实验中的主机演示,需先将zabbix server自动发现与动作关闭,配置→自动发现 从状态选项中关闭自动发现

关闭自动发现动作,配置→动作 从状态选项中关闭动作

随后从 配置→主机 界面删除前边自动发现的主机。


node02修改zabbix agent配置文件开启自动注册模式

shell 复制代码
vi /etc/zabbix/zabbix_agentd.conf
...
#指定自动注册的主机IP
160 ServerActive=192.168.0.14

#该参数用于让zabbix server区分每一个agent节点(显示在监控列表中的名称)
171 Hostname=node02

#可选参数:主机源数据方便zabbix server在注册时进行认证(名称自定义)
190 # HostMetadata=linux     #取消注释
shell 复制代码
#重启zabbix agent服务
systemctl restart zabbix-agent

node03修改zabbix agent配置文件开启主动模式

shell 复制代码
vi /etc/zabbix/zabbix_agentd.conf
...
#指定自动注册的主机IP
160 ServerActive=192.168.0.14     

#该参数用于让zabbix server区分每一个agent节点(显示在监控列表中的名称)
171 Hostname=node03

#可选参数:主机源数据方便zabbix server在注册时进行认证(名称自定义)
190 # HostMetadata=linux     #取消注释
shell 复制代码
#重启zabbix agent服务
systemctl restart zabbix-agent

接下来在web界面配置自动注册功能:配置→动作→自动注册 ( Autoregistration actions )→创建动作

添加后,在 检测→主机 可查看到该主机是否被监控:

Zabbix Proxy分布式监控

当监控的服务器成千上万时,对于Zabbix Server的压力会很大,所以就有了分布式Zabbix Proxy代理监控来分担Zabbix Server的压力,代理服务器统一收集Agent端数据后返回给Zabbix Server。

主机名 IP地址
zbx-proxy 代理
zbx-proxy-node01 被控主机

部署zbx Proxy

tiki 复制代码
#修改主机名
hostnamectl set-hostname zbx-proxy

#准备zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

#安装zabbix proxy软件(需要连接数据库)
yum -y install zabbix-proxy-mysql

#部署数据库(用于存储agent指标)
yum -y install mariadb-server && systemctl start mariadb && systemctl enable mariadb

#授权数据库
mysql
create database zabbix_proxy;
grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by '123456';

#查询初始数据结构表
rpm -ql zabbix-proxy-mysql
...
/usr/share/doc/zabbix-proxy-mysql-5.0.27/schema.sql.gz

#导入初始数据结构表
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.27/schema.sql.gz | mysql -uzabbix_proxy -p123456 zabbix_proxy

#配置zabbix proxy连接数据库
vim /etc/zabbix/zabbix_proxy.conf
...
30 Server=192.168.0.14   --指定zabbix server地址
49 Hostname=zbx-proxy    --指定本机名称(自定义),用于zabbix server区分每一个proxy节点
173 DBName=zabbix_proxy  --指定数据库名(与数据库创建的库名保持一致)
188 DBUser=zabbix_proxy  --指定连接数据库用户名(与数据库授权用户名称保持一致)
196 DBPassword=123456    --指定用户密码

#启动zabbix proxy服务
systemctl start zabbix-proxy && systemctl enable zabbix-proxy

#查看服务端口
netstat -ntlp
tcp    0  0 0.0.0.0:10051   0.0.0.0:*    LISTEN      18235/zabbix_proxy 

到此为止 zabbix proxy配置完毕。

部署zbx-proxy-node01

tiki 复制代码
#修改主机名
hostnamectl set-hostname zbx-proxy-node01

#安装zabbix agent程序
rpm -ivh zabbix-agent-5.0.0-1.el7.x86_64.rpm

#修改配置文件指定zabbix proxy地址
vim /etc/zabbix/zabbix_agentd.conf
...
119 Server=192.168.0.33       --指定zabbix proxy地址
171 Hostname=zbx-proxy-node01 --本机名称,用于zabbix proxy区分每一个agent节点

#启动zabbix agent
systemctl start zabbix-agent  && systemctl enable zabbix-agent

Zabbix server添加代理:管理 → agent代理程序 →创建代理

添加代理后,如果出现从未 红色提示信息,是zabbix server还没识别到代理节点,可稍等片刻。

接下来Zabbix Proxy添加Agent 配置→主机→创建主机 指定Agent节点信息,如下图:

绑定模板后,点击 添加

验证:到此为止,Zabbix Proxy分布式监控已配置完成。

第六章:Zabbix可视化

简单图表

Zabbix提供了简单的数据图表,用户无需进行任何配置即可查看指标数据,在监控 → 主机→最新数据,然后单击相应监控项目的图形即可查看:

自定义图表

顾名思义,自定义图表提供自定义功能,如果你想更改图表样式或线条的显示方式或比较多个项目,你需要一个自定义图表。

要创建自定义图表,转到 配置→主机 (或模板)单击所需主机或模板旁边的行中的 图形 在图表屏幕中单击 创建图表

范围 描述
名称 唯一的图形名称,为了见名之意,通常按照具体监控类型命名。
图形宽度(仅用于预览和饼图/分解图)
图形高度
查看图例 以显示图形
查看工作时间 非工作时间将以灰色背景显示(不适用于饼图和分解饼图)
查看触发器 如果监控项设置了触发器,会在图形中以黑色线条显示触发器(不适用于饼图和分解饼图)

每次的调试都可以通过图形里的预览进行查看

当配置完成后点击添加/更新以完成创建。

查看图形数据方式可通过 监测→主机 在主机信息内的图形页面查看

创建nginx状态图形

通过检测→主机→图形查看

Ad-hoc 临时图

一个简单的图表 适合查看一个指标数据,而自定义图表提供了可以按照自己的需求去自建图形,但两者都不允许快速创建多个项目的比较图表,为了解决这个问题,从 Zabbix 2.4 开始,可以以非常快速的方式为多个项目创建临时图。

要创建临时图,请执行以下操作:

  • 转到 监测→最新数据
  • 勾选需要进行比较的监控项
  • 最下方通过 **显示堆叠图 **或 **显示图 **绘图

提示:Ad-hoc可以快速为项目创建临时的对比图,无法永久保存。

聚合图形

聚合图形的用途是可以将多个图形聚合在一个图形中展示,在 监测 → 聚合图形 可以配置、管理、查看Zabbix 聚合图形,如果要创建新的聚合图形,点击屏幕右上角的 创建聚合图形(Create screen)也可从XML文件导入现成的局和图形。

Zabbix拓扑图

在很多时候,特别是在被监控对象所处的网络结构比较复杂的时候,我们非常希望有一张能反映当前整个网络状态的拓扑图供我们查看。

这样,不但能非常直观和清晰地监控整个网络的当前状态,而且,一旦网络出现故障,也能快速地发现和定位故障所发生的节点,从而大大提高工作效率。

监测→ 拓扑图 部分,可以配置、管理、查看网络拓扑图,要配置新的拓扑图点击右上角的 创建拓扑图 按钮,也可从XML文件导入拓扑图。

表单项含义解释

表单项 描述
所有者 拓扑图拥有者
名称 拓扑图名称
宽/高 用于定义网络拓扑图的宽度/高度
背景图片(Backgroundimage) 用于指定网络拓扑图所使用的背景。如果选择背景图片,需要提前通过"管理"→"一般"→"图片"页面添加到系统中。需要说明的是,系统不会自动调整背景图片的大小,所以,当要为一张网络拓扑图选择背景图片时,所选择的背景图片大小最好与网络拓扑图定义的大小相一致,否则,要么图片显示不完整,要么图片只能显示在网络拓扑图的一部分区域内【无需勾选】
自动图标映射(Automaticiconmapping) 图标自动映射,可以根据主机资产中所指定的字段内容,自动映射到指定的一个图标。图标自动映射是通过"管理"→"一般"→"图标映射"页面添加到系统中的【无需勾选】
图标高亮(Iconhighlighting) 当拓扑图中主机关联的触发器处于"问题"状态时,会有加亮效果【可勾选】
触发器状态改变时标记元素(Markelementsontriggerstatuschange) 当拓扑图中主机相关联的触发器状态发生改变时,包括从"问题"状态转变为"正常"状态,或者从"正常"状态转变为"问题"状态,主机图标周围用红色的三角形来标识,之后30分内持续地显示在相关的主机图标上【可勾选】
显示问题(Expandsingleproblem) 当有与拓扑图中主机相关联的触发器处于"问题"状态时,系统是显示该触发器的名称还是显示处于"问题"状态下的触发器数量。当选中这个复选框时,系统会显示触发器的名称;否则,系统就会显示触发器的数量【默认即可】
高级标签(Advancedlabels) 当选中这个复选框时,系统会在当前表单页面上自动增加"主机组标签类型"、"主机标签类型"、"触发器标签类型"和"拓扑图标签类型"等表单项,它们是用于指定不同种类的元素所使用的标签类型【无需勾选】
图标标签类型(Iconlabeltype) 用于指定系统使用哪类信息作为图标的标签显示在拓扑图上。可用的选项有:标签、IP地址、元素的名称、状态以及不显示标签等【默认即可】
图标标签位置(Iconlabellocation) 用于指定标签位置【默认即可】
问题显示(Problemdisplay) 用于指定用何种方式显示"问题"个数【默认即可】
URLs 用于针对不同类型的元素,配置额外的URL连接。这里所配置的URL,在用户通过"状态统计"→"拓扑图"菜单项查看拓扑图时,可以显示在用户的右键弹出菜单中。当用户单击对应的菜单项时,可以打开指定的页面。在这里定义的URL是针对元素类型的,所以它会在所有同一类型元素的右键菜单中出现。这个表单项可以支持{MAP.ID}、{HOSTGROUP.ID}、{HOST.ID}和{TRIGGER.ID}

刚创建的拓扑图里边没有拓扑,需要进到拓扑后,点击右上角编辑拓扑图添加具体设备

通过配置按钮创建拓扑

创建拓扑后,点击右上角更新 再次通过监测→拓扑图验证。

Zabbix仪表板

zabbix仪表板是由多个小模块组成,可以有服务器信息、拓扑图、摘要、告警项、图形、时钟等模块进行组合展示,访问方式 监测 → 仪表板 这里是监控信息的一个汇总,方便你快速总览当前全局监控状态。

点击编辑仪表盘可以对仪表板进行个性化添加构件

可以添加构件也可以在仪表板下方看到有一些空白的构件可以直接使用

你可以通过以下方式添加小构件到仪表板,点击添加构件

调整模板的格局后,右上方点击 保存设置

添加常用拓扑图 到仪表板:监测→拓扑图,进入拓扑图内部,然后右上角会看到一个⭐图标:

点击图标后,回到仪表板,可以在下方看到拓扑图

添加局和图形 到仪表板:监测→局和图形,进入图形内部,然后右上角会看到一个⭐图标:

点击图标后,回到仪表板,添加一个聚合图形小构件:

某云平台监控仪表板展示。

第七章:Zabbix 性能优化

1.Zabbix监控项优化

zabbix自带模板里面涉及各种监控项,实际情况并不需要用到所有的,关掉无用监控项,仅监控重要的指标,最好可以自己按照需要自建监控模板。

2.增加监控项的取值间隔

这个调整的原则是,在满足需求的情况下,尽量将频率调低,也就是间隔调大,举个例子:

磁盘空间变化不会太剧烈,它的监控就可以时间间隔调大一些,磁盘总量改变的可能性更小了,所以间隔为一天也没关系。

3.减少历史数据保存周期

有些监控主要是为了报警,历史数据并没有那么重要,详细的历史记录可将时间调小,多留一些趋势记录,趋势记录里面的数据虽然不够详细但也能作为大概的参考。

4.调整监控模式

大量主机监控环境下, 由Server端去收集数据会出现严重的性能问题,例如: web操作很卡,容易出现502, 图层断裂等问题。优化方向:

  • 添加proxy节点做分布式监控

  • 采用被动监控方式来减轻zabbix server压力

5.zabbix数据库优化

针对数据库写多读少的表,如果使用InnoDB存储引擎,zabbix的运行效率至少要快1.5倍(与MyISAM相比),InnoDB存储引擎采用行级锁更适合写多读少的场景,但是InnoDB需要更多的CPU性能。

**Zabbix数据库表结构说明:**mysql数据库中各zabbix个表及其中字段的详细解释。

重点关注:history表,所有的监控项历史数据都存放在(history、history_str、history_text、history_uint)四个表中,如果数据库压力过大,可通过对该四张表进行分库分表优化。

  1. acknowledges表(空)

当trigger发生状态变化后,即产生某个事件(event)后,管理人员需要对这些状态变化进行确认,记录告警的确认信息。

PK Name Type Not Null Unique Len Notes
True acknowledgeid BIGINT True True 20 确认的唯一标识
False userid BIGINT True False 20 用户ID
False eventid BIGINT True False 20 事件ID,外键
False clock INTEGER True False 11 管理员确认的时间
False message VARCHAR True False 255 管理员确认的备注或留言
False action INT True False 11 管理员确认的事件
  1. actions表

产生event后,会执行指定的动作(action),该表记录动作相关属性。

关键字段: 1)eventsource:同events表中的sources字段

2)status:0代表OK,1代表Problem

PK Name Type Not Null Unique Len Notes
True actionid BIGINT True True 20 动作的唯一标识
False name VARCHAR True False 255 动作的名称
False eventsource INT True False 11 动作所关联的事件ID:0指来源为触发器trigger;1指来源为自动发现descover;2指来源为自动登记auto_register;3为网络发现产生的事件源
False evaltype INT True False 11 表示执行action的前提条件的逻辑关系:0表示and/or1表示and 2表示or
False status INT True False 11 是否enable
False esc_period VARCHAR True False 255 默认的步骤时间间隔
False def_shortdata VARCHAR True False 255 action的标题定义
False def_longdata TEXT True False 0 action内容的定义
False r_shortdata VARCHAR True False 255 恢复提醒的内容标题
False r_longdata TEXT True False 0 恢复提醒的内容,默认与提醒一样
False formula VARCHAR True False 255 公式
False maintenance_mode INT True False 11 维护模式
False ack_shortdata VARCHAR True False 255 ack的标题定义
False ack_longdata TEXT True False 0 ack的内容定义

该表的相关数据查询语句:

  1. 查询所有已创建的动作:select name from actions;
  2. 查询某个动作的详细信息:select * from actions where name='action_name'\G;
  3. alerts表

告警相关的表,与action、event、user关联,用于记录通过媒介(邮件、短信、微信等方式)发送的告警信息。

PK Name Type Not Null Unique Len Notes
True alertid BIGINT True True 20 告警ID
False actionid BIGINT True False 20 关联的动作ID
False eventid BIGINT True False 20 关联的事件ID
False userid BIGINT False False 20 关联的用户ID
False clock INT True False 11 产生告警的时间
False mediatypeid BIGINT False False 媒介的类型
False sendto VARCHAR True False 100 告警发送的地址
False subject VARCHAR True False 255 标题
False message TEXT True False 0 信息内容
False status INT True False 11 状态成功与否:define('ALERT_STATUS_NOT_SENT', 0);define('ALERT_STATUS_SENT',1);define('ALERT_STATUS_FAILED',2);
False retries INT True False 11 尝试次数,默认3次
False error VARCHAR True False 2048 错误信息
False esc_step INT True False 11 执行到operation的第几步
False alerttype INTEGER True False 11 告警类型,包含远程命令define('ALERT_TYPE_MESSAGE',0);define('ALERT_TYPE_COMMAND',1);
False p_eventid BIGINT False False 20
False actionid BIGINT False False 20 关连告警确认信息ID

该表的相关数据查询语句:

  1. 查询某个actions下的所有告警信息:select messsage from alerts where actionid='actionid';(需要从actions表中查询对应id并填入)
  2. applications_discovery表(空)

应用自动发现表,与applications、applications_prototype表相关联。

PK Name Type Not Null Unique Len Notes
True application_discoveryid BIGINT True True 20 应用自动发现ID
False applicationid BIGINT True False 20 应用ID
False application_prototypeid BIGINT True False 11 应用模型ID
False name VARCHAR True False 11 应用自动发现名称
False Lastcheck INT True False 11 最后检查时间
False ts_delete INT True False 11 删除时间
  1. applications_prototype表

应用模型表,与item表相关联。

PK Name Type Not Null Unique Len Notes
True application_prototypeid BIGINT True False 20 应用模型ID
False itemid BIGINT True False 20 监控项ID
False templateid BIGINT False False 20 模板ID
False name VARCHAR True False 20 应用模型名称
  1. applications_template表

应用模板表,与applications表相关联。

PK Name Type Not Null Unique Len Notes
True application_templateid BIGINT True False 20 应用模板ID
False Applicationid BIGINT True False 20 应用ID
False templateid BIGINT False False 20 模板ID
  1. applications表

应用实体表,表示一系列item的集合,与host关联。

PK Name Type Not Null Unique Len Notes
True applicationid BIGINT True True 20 应用ID
False hostid BIGINT True False 20 主机ID
False name VARCHAR True False 255 应用名称
False templateid BIGINT False False 11 关联的模板

该表的相关数据查询语句:

  1. 查询已创建的应用总数:select count(distinct name) from applications;
  2. auditlog表

记录对配置变更的日志,与auditlog、users表相关联。

PK Name Type Not Null Unique Len Notes
True auditid BIGINT True True 20 audit日志的ID,对应一个变更操作
False userid BIGINT True False 20 执行操作的用户ID
False clock INT True False 11 操作时间
False action INT True False 11 动作
False resourcetype INT True False 11 资源类型
False details VARCHAR True False 128 具体操作内容
False ip VARCHAR True False 39 ip地址
False resourceid BIGINT True False 20 资源id
False resourcename VARCHAR True False 255 资源名称
  1. auditlog_details表

审计日志详情表,与auditlog表相关联。

PK Name Type Not Null Unique Len Notes
True auditdetailid BIGINT True True 20 审计日志详情ID,一个变更操作包含一个或者多个字段变更的子操作
False auditid BIGINT True False 20 关联的审计ID
False table_name VARCHAR True False 64 表名
False field_name VARCHAR True False 64 字段名
False oldvalue TEXT True False 0 原值
False newvalue TEXT True False 0 新值
  1. autoreg_host表

自动登记主机。

PK Name Type Not Null Unique Len Notes
True autoreg_hostid BIGINT True True 20 自动登记的主机ID
False proxy_hostid BIGINT False False 20 代理ID
False host VARCHAR True False 64 主机名称
False listen_ip VARCHAR True False 39 监听ID
False listen_port INTEGER True False 11 监听端口
False listen_dns VARCHAR True False 64 监听DNS
False host_metadata VARCHAR True False 255 主机元数据
  1. conditions表

动作触发条件表,用于保存Action触发的动作,与actions表相关联。

PK Name Type Not Null Unique Len Notes
True conditionid BIGINT True True 20 条件ID
False actionid BIGINT True False 20 动作ID
False conditiontype INT True False 11 详见如下:
False operator INT True False 11 详见如下:
False value VARCHAR True False 255
False Value2 VARCHAR True False 255

conditiontype

支持共10种条件类型

define('CONDITION_TYPE_HOST_GROUP', 0);

define('CONDITION_TYPE_HOST',1);

define('CONDITION_TYPE_TRIGGER',2);

define('CONDITION_TYPE_TRIGGER_NAME',3);

define('CONDITION_TYPE_TRIGGER_SEVERITY',4);

define('CONDITION_TYPE_TRIGGER_VALUE',5);

define('CONDITION_TYPE_TIME_PERIOD',6);

define('CONDITION_TYPE_DHOST_IP',7);

define('CONDITION_TYPE_DSERVICE_TYPE',8);

define('CONDITION_TYPE_DSERVICE_PORT',9);

define('CONDITION_TYPE_DSTATUS',10);

define('CONDITION_TYPE_DUPTIME',11);

define('CONDITION_TYPE_DVALUE',12);

define('CONDITION_TYPE_HOST_TEMPLATE',13);

define('CONDITION_TYPE_EVENT_ACKNOWLEDGED',14);

define('CONDITION_TYPE_APPLICATION',15);

define('CONDITION_TYPE_MAINTENANCE',16);

define('CONDITION_TYPE_NODE',17);

define('CONDITION_TYPE_DRULE',18);

define('CONDITION_TYPE_DCHECK',19);

define('CONDITION_TYPE_PROXY',20);

define('CONDITION_TYPE_DOBJECT',21);

define('CONDITION_TYPE_HOST_NAME',22);

Operator

支持7种逻辑表达

define('CONDITION_OPERATOR_EQUAL',0);

define('CONDITION_OPERATOR_NOT_EQUAL',1);

define('CONDITION_OPERATOR_LIKE',2);

define('CONDITION_OPERATOR_NOT_LIKE',3);

define('CONDITION_OPERATOR_IN',4);

define('CONDITION_OPERATOR_MORE_EQUAL',5);

define('CONDITION_OPERATOR_LESS_EQUAL',6);

define('CONDITION_OPERATOR_NOT_IN',7);

  1. config

系统配置表

PK Name Type Not Null Unique Len Notes
True configid BIGINT True True 20 系统配置ID,一般只有1
False refresh_unsupported INT True False 20 不支持的更新时常
False work_period VARCHAR True False 255 工作时间段
False alert_usrgrpid BIGINT False False 20 告警的用户标识
False event_expire VARCHAR True False 32 事件有效期限
False event_show_max INT True False 11 事件最大的显示长度
False default_theme VARCHAR True False 128 默认主题
False authentication_type INT True False 11 支持内部认证,LADP认证,HTTP认证
False ldap_host VARCHAR True False 255 Ldap主机名
False ldap_port INTEGER True False 11 Ldap端口
False ldap_base_dn VARCHAR True False 255 Ldap基本dns
False ldap_bind_dn VARCHAR True False 255 Ldap绑定的dns
False ldap_bind_password VARCHAR True False 128 Ldap绑定密码
False ldap_search_attribute VARCHAR True False 128 Ldap查找属性
False dropdown_first_entry INTEGER True False 11 下拉入口
False dropdown_first_remember INTEGER True False 11 下拉记录
False discovery_groupid BIGINT True False 20 自动发现组id
False max_in_table INT True False 11 表最大长度
False search_limit INT True False 11 查找限制长度
False severity_color_0 VARCHAR True False 6 严重程度颜色
False severity_color_1 VARCHAR True False 6 严重程度颜色
False severity_color_2 VARCHAR True False 6 严重程度颜色
False severity_color_3 VARCHAR True False 6 严重程度颜色
False severity_color_4 VARCHAR True False 6 严重程度颜色
False severity_color_5 VARCHAR True False 6 严重程度颜色
False severity_name_0 VARCHAR True False 32 严重程度名称
False severity_name_1 VARCHAR True False 32 严重程度名称
False severity_name_2 VARCHAR True False 32 严重程度名称
False severity_name_3 VARCHAR True False 32 严重程度名称
False severity_name_4 VARCHAR True False 32 严重程度名称
False severity_name_5 VARCHAR True False 32 严重程度名称
False ok_period VARCHAR True False 32 周期
False blink_period INTEGER True False 11 闪烁周期
False problem_unack_color VARCHAR True False 6 非确认问题颜色
False problem_ack_color VARCHAR True False 6 确认问题颜色
False ok_unack_color VARCHAR True False 6
False ok_ack_color VARCHAR True False 6
False problem_unack_style INTEGER True False 11 非确认的问题风格
False problem_ack_style INTEGER True False 11 确认的问题风格
False ok_unack_style INTEGER True False 11
False ok_ack_style INTEGER True False 11
False snmptrap_logging INTEGER True False 11 Snmp日志
False server_check_interval INTEGER True False 11 服务内部检查
False hk_events_mode INT True False 11 事件模式
False hk_events_trigger VARCHAR True False 32 事件内部触发器
False hk_events_internal VARCHAR True False 32 内部事件
False hk_events_discovery VARCHAR True False 32 自动发现事件
False hk_events_autoreg INT True False 32 事件自动调整
False hk_events_mode INT True False 11 服务模式
False hk_services VARCHAR True False 32 服务
False hk_audit_mode INT True False 11 审计模式
False hk_audit INT True False 11 审计
False hk_sessions_mode INT True False 11 sessions模式
False hk_sessions INT True False 11 sessions
False hk_history_mode INT True False 11 历史模式
False hk_history_global INT True False 11 全局历史变量
False hk_history INT True False 11 历史变量
False hk_trends_mode INT True False 11 动态模式
False hk_trends_global INT True False 11 全局动态变量
False hk_trends INT True False 11 动态变量
False Default_inventory_mode INT True False 11 默认存放模式
  1. corr_condition表(空)
PK Name Type Not Null Unique Len Notes
True corr_conditionid BIGINT True True 20
False correlationid BIGINT True False 20
False type INT True False 11
  1. corr_condition_group表(空)
PK Name Type Not Null Unique Len Notes
True corr_conditionid BIGINT True True 20
False operator INT True False 11
False groupid BIGINT True False 20
  1. corr_condition_tag表(空)
PK Name Type Not Null Unique Len Notes
True corr_conditionid BIGINT True True 20
False tag VARCHAR True False 255
  1. corr_condition_tagpair表(空)
PK Name Type Not Null Unique Len Notes
True corr_conditionid BIGINT True True 20
False oldtag VARCHAR True False 255
False newtag VARCHAR True False 255
  1. corr_condition_tagvalue表(空)
PK Name Type Not Null Unique Len Notes
True corr_conditionid BIGINT True True 20
False tag VARCHAR True False 255
False operator INT True False 11
False value VARCHAR True False 255
  1. Corr_operation表(空)
PK Name Type Not Null Unique Len Notes
True corr_conditionid BIGINT True True 20
False correlationid BIGINT True False 20
False type INT True False 11
  1. correlation表(空)
PK Name Type Not Null Unique Len Notes
True correlationid BIGINT True True 20
False name VARCHAR True False 255
False description TEXT True False 0
False evaltype INT True False 11
False status INT True False 11
False formula VARCHAR True False 255
  1. dashboard表

仪表板信息记录表。与users表相关联

PK Name Type Not Null Unique Len Notes
True dashboardid BIGINT True True 20 仪表盘ID
False name VARCHAR True False 255 仪表盘名称
False userid BIGINT True False 20 用户ID
False private INT True False 11 私人配置
  1. Dashboard_user表

仪表板用户信息记录表。与dashboard、users表相关联

PK Name Type Not Null Unique Len Notes
True dashboard_userid BIGINT True True 20 仪表盘用户ID
False Dashboardid BIGINT True False 20 仪表盘ID
False userid BIGINT True False 20 用户ID
False permission INT True False 11 权限
  1. Dashboard_usrgrp表

仪表板用户信息记录表。与dashboard、users表相关联

PK Name Type Not Null Unique Len Notes
True dashboard_usrgrpid BIGINT True True 20
False Dashboardid BIGINT True False 20 仪表盘ID
False userid BIGINT True False 20 用户ID
False permission INT True False 11 权限
  1. dbversion表

数据库版本信息记录表。

PK Name Type Not Null Unique Len Notes
False mandatory INT True True 11 指示标志
False optional INT True False 11 选项
  1. dchecks表

自动发现的检查项表。自动发现规则配置的每一个的检查项(如FTP等服务)都会生成一个检查实例。程序会根据检查项进行自动发现。

PK Name Type Not Null Unique Len Notes
True dcheckid BIGINT True True 20 自动发现检查ID
False druleid BIGINT True False 20 规则ID
False type INT True False 11 详见如下:
False key_ VARCHAR True False 512 若有agent类型,则需要填写key,以获取信息(一般为10050端口)
False snmp_community VARCHAR True False 255 snmp相关配置
False ports VARCHAR True False 255 检查的传输层端口
False snmpv3_securityname VARCHAR True False 64 snmp安全名称
False snmpv3_securitylevel INT True False 11 snmp安全级别
False snmpv3_authpassphrase VARCHAR True False 64 snmp认证密码
False snmpv3_privpassphrase VARCHAR True False 64 snmp私有密码
False uniq INTEGER True False 区分host的标识0:ip地址1:system.name
False snmpv3_authprotocol VARCHAR True False 64 snmp认证协议
False snmpv3_privprotocol VARCHAR True False 64 Snmp私有协议

Type:

define('SVC_SSH', 0);

define('SVC_LDAP', 1);

define('SVC_SMTP', 2);

define('SVC_FTP', 3);

define('SVC_HTTP', 4);

define('SVC_POP', 5);

define('SVC_NNTP', 6);

define('SVC_IMAP', 7);

define('SVC_TCP', 8);

define('SVC_AGENT', 9);

define('SVC_SNMPv1', 10);

define('SVC_SNMPv2c', 11);

define('SVC_ICMPPING', 12);

define('SVC_SNMPv3', 13);

define('SVC_HTTPS', 14);

define('SVC_TELNET', 15);

  1. dhosts表(空)

自动发现后的主机,会被保存到这张表,与drules表相关联。

PK Name Type Not Null Unique Len Notes
True dhostid BIGINT True True 20 主机ID
False druleid BIGINT True False 20 规则ID,drule表
False status INT True False 11 当前主机状态
False lastup INT True False 11 状态正常的最后时间,unix时间戳
False lastdown INT True False 11 状态不正常的最后时间,unix时间戳
  1. drules表

自动发现规则表,用于配置在一定网络范围内自动发现主机和服务。

PK Name Type Not Null Unique Len Notes
True druleid BIGINT True True 20 规则ID
False proxy_hostid BIGINT False False 20 代理ID
False name VARCHAR True False 255 规则名称
False iprange VARCHAR True False 2048 IP地址范围,支持三种格式:Single IP: 192.168.1.33Range of IP addresses: 192.168.1.1-255IP mask: 192.168.4.0/24
False delay INTEGER True False 255 自动发现操作的执行间隔
False nextcheck INTEGER True False 11 下个检查ID
False status INTEGER True False 11 是否启用:1:未启用0:启用
  1. dservices表(空)

自动发现服务实例表,用于记录自动发现服务实例,与dhost类似。与dhosts、dchecks表相关联。

PK Name Type Not Null Unique Len Notes
True dserviceid BIGINT True True 20 服务实例ID
False dhostid BIGINT True False 20 关联的dhostid
False value VARCHAR True False 255 返回的值
False port INT True False 11 被发现的服务端口
False status INT True False 11 网络服务状态
False lastup INT True False 11 最后正常状态时间
False lastdown INT True False 11 最后不正常状态时间
False dcheckid BIGINT True False 20 关联的检查实例ID
False ip VARCHAR True False 39 该网络服务实例的IP地址
False dns VARCHAR True False 64 dns地址
  1. escalations表(空)

在一个动作(action)中,一系列的执行操作场景,包括通知或者执行远程命令。与actions、triggers、events、items表相关联。

PK Name Type Not Null Unique Len Notes
True escalationid BIGINT True True 20 升级操作ID
False actionid BIGINT True False 20 动作ID
False triggerid BIGINT False False 20 触发器ID
False eventid BIGINT False False 20 事件ID
False r_eventid BIGINT False False 20
False nextcheck INT True False 11 下一个检查的事件,unix事件戳
False esc_step INT True False 11 升级步骤
False status INT True False 11 状态:是否启用
False itemid BIGINT False False 20 监控项ID
False acknowledgeid BIGINT False False 20 告警状态确认ID
  1. event_recovery表

该表记录了事件恢复的全部数据信息,与user、correlation、events表相关联。

PK Name Type Not Null Unique Len Notes
True eventid BIGINT True True 20 事件ID
False r_eventid BIGINT True False 20
False c_eventid BIGINT False False 20
False correlationid BIGINT False False 20 数据统计ID
False userid BIGINT False False 20 用户ID
  1. event_tag表(空)

该表记录了事件的唯一标识信息,与events表相关联。

PK Name Type Not Null Unique Len Notes
True eventtagid BIGINT True True 20 事件标识ID
False eventid BIGINT True False 20 事件ID
False tag VARCHAR False False 255 唯一标识
False value VARCHAR False False 255
  1. events表

事件表,与acknowledge表相关联。

PK Name Type Not Null Unique Len Notes
True eventid BIGINT True True 20 事件ID
False source INT True False 11 详情如下:
False object INT True False 11
False objectid BIGINT True False 20 对应不同的object类型的ID
False clock INT True False 11 事件产生的时间
False value INT True False 11
False acknowledgeid INT True False 11 是否已经确认0为未确认1为确认
False ns INT True False 11

Object:

表示事件来源,有三个:

define('EVENT_SOURCE_TRIGGERS',0);

define('EVENT_SOURCE_DISCOVERY',1);

define('EVENT_SOURCE_AUTO_REGISTRATION',2);

  1. expressions表

表达式相关信息表,与regexps表相关联。

PK Name Type Not Null Unique Len Notes
True expressionid BIGINT True True 20 表示式ID
False regexpid BIGINT True False 20 正则表达式ID
False expression VARCHAR True False 255 表达式
False expression_type INTEGER True False 11 详情如下:
False exp_delimiter VARCHAR True False 1 表达式分隔符
False case_sensitive INTEGER True False 11 是否大小写敏感

expression_type:

表达式类型:

define('EXPRESSION_TYPE_INCLUDED',0);

define('EXPRESSION_TYPE_ANY_INCLUDED',1);

define('EXPRESSION_TYPE_NOT_INCLUDED',2);

define('EXPRESSION_TYPE_TRUE',3);

define('EXPRESSION_TYPE_FALSE',4);

  1. functions表

对trigger的表达式进行分解。与items、triggers表相关联。

PK Name Type Not Null Unique Len Notes
True functionid BIGINT True True 20 函数ID
False itemid BIGINT True False 20 监控项ID
False triggerid BIGINT True False 20 触发器ID
False function VARCHAR True False 12 函数名称,包括diff,last,min等
False parameter VARCHAR True False 255 函数参数
  1. globalmacro表

全局宏定义信息记录表。

PK Name Type Not Null Unique Len Notes
True globalmacroid BIGINT True True 20 全局宏ID
False macro VARCHAR True False 255
False value VARCHAR True False 255
  1. globalvars表(空)

全局变量(与snmp相关)信息记录表。

PK Name Type Not Null Unique Len Notes
True globalvarid BIGINT True True 20 全局变量ID
False snmp_lastsize INT True False 20 Snmp最后的大小
  1. graph_discovery表

图形发现信息保存表。与graphs表相关联。

PK Name Type Not Null Unique Len Notes
True graphid BIGINT True False 20 图形ID
False parent_graphid BIGINT True False 20 上级图形ID
  1. graph_theme表

图形样式设置表,每种样式一条记录,目前有4种。

PK Name Type Not Null Unique Len Notes
True graphthemeid BIGINT True True 20 图形样式ID
False theme VARCHAR True False 64 主题名称
False backgroundcolor VARCHAR True False 6 背景颜色
False graphcolor VARCHAR True False 6 图形颜色
False gridcolor VARCHAR True False 6 网格颜色
False maingridcolor VARCHAR True False 6 主要网格颜色
False gridbordercolor VARCHAR True False 6 网格边界颜色
False textcolor VARCHAR True False 6 文字颜色
False highlightcolor VARCHAR True False 6 高亮颜色
False leftpercentilecolor VARCHAR True False 6 左边百分比颜色
False rightpercentilecolor VARCHAR True False 6 右边百分比颜色
False nonworktimecolor VARCHAR True False 6 非工作时间块颜色
  1. graphs表

图形实例表,用于保存图形实例的配置。

PK Name Type Not Null Unique Len Notes
True graphid BIGINT True True 20 图形实例表
False name VARCHAR True False 128 图形名称
False width INT True False 11
False height INT True False 11
False yaxismin DOUBLE True False 16 Y轴最小值
False yaxismax DOUBLE True False 16 Y轴最大值
False templateid BIGINT False False 20 模板ID
False show_work_period INT True False 11 是否显示工作时间1:是0:否
False show_triggers INTEGER True False 11 是否显示触发器1:是0:否
False graphtype INT True False 11 详情如下:
False show_legend INT True False 11 是否显示图例
False show_3d INT True False 11 是否显示3D1:是0:否
False percent_left DOUBLE True False 16 向左的百分比
False percent_right DOUBLE True False 16 向右的百分比
False ymin_type INT True False 11 详情如下:
False ymax_type INT True False 11 详情如下:
False ymin_itemid BIGINT False False 20 Y轴最小监控项ID
False ymax_itemid BIGINT False False 20 Y轴最大监控项ID
False flags INT True False 11 标识

graphtype

图像类型,目前支持以下几种:

define('GRAPH_TYPE_NORMAL', 0);

define('GRAPH_TYPE_STACKED',1);

define('GRAPH_TYPE_PIE',2);

define('GRAPH_TYPE_EXPLODED',3);

define('GRAPH_TYPE_3D',4);

define('GRAPH_TYPE_3D_EXPLODED',5);

define('GRAPH_TYPE_BAR',6);

define('GRAPH_TYPE_COLUMN',7);

define('GRAPH_TYPE_BAR_STACKED',8);

define('GRAPH_TYPE_COLUM N_STACKED',9);

ymin_type

Y轴最小值类型:

define('GRAPH_YAXIS_TYPE_CALCULATED', 0);

define('GRAPH_YAXIS_TYPE_FIXED', 1);

define('GRAPH_YAXIS_TYPE_ITEM_VALUE', 2);

ymax_type

Y轴最大值类型:

define('GRAPH_YAXIS_TYPE_CALCULATED', 0);

define('GRAPH_YAXIS_TYPE_FIXED', 1);

define('GRAPH_YAXIS_TYPE_ITEM_VALUE', 2);

  1. graphs_items表

图形-监控项关联表,一个图形包含多个监控项,在此表记录关联关系,

与graphs、items表相关联。

PK Name Type Not Null Unique Len Notes
True gitemid BIGINT True True 20 图形-监控项关联ID
False graphid BIGINT True False 20 图形ID
False itemid BIGINT True False 20 监控项ID
False drawtype INT True False 11 详情如下:
False sortorder INT True False 11 排序
False color VARCHAR True False 6 颜色
False yaxisside INT True False 11 Y轴边界起点
False calc_fnc INT True False 11 详情如下:
False type INT True False 11 类型

drawtype

绘画类型:

define('GRAPH_ITEM_DRAWTYPE_LINE', 0);

define('GRAPH_ITEM_DRAWTYPE_FILLED_REGION', 1);

define('GRAPH_ITEM_DRAWTYPE_BOLD_LINE', 2);

define('GRAPH_ITEM_DRAWTYPE_DOT', 3);

define('GRAPH_ITEM_DRAWTYPE_DASHED_LINE',4);

define('GRAPH_ITEM_DRAWTYPE_GRADIENT_LINE', 5);

define('GRAPH_ITEM_DRAWTYPE_BOLD_DOT', 6);

calc_fnc

计算函数,支持以下几种:

define('CALC_FNC_MIN', 1);

define('CALC_FNC_AVG', 2);

define('CALC_FNC_MAX', 4);

define('CALC_FNC_ALL', 7);

define('CALC_FNC_LST', 9);

  1. group_discovery表(空)

组自动发现表,与graphs、groups表相关联。

PK Name Type Not Null Unique Len Notes
True groupid BIGINT True True 20 组ID
False parent_group_prototypeid BIGINT True False 20 上级组模型ID
False name VARCHAR True False 64 名称
False lastcheck INT True False 11 最后检查时间:
False ts_delete INT True False 11 删除时间
  1. group_prototype表

组模型表,与hosts、groups表相关联。。

PK Name Type Not Null Unique Len Notes
True group_prototypeid BIGINT True True 20 组模型ID
False hostid BIGINT True False 20 主机ID
False name VARCHAR True False 255 名称
False groupid BIGINT True False 20 组ID
False templateid BIGINT True False 20 模板ID
  1. groups表

主机组表

PK Name Type Not Null Unique Len Notes
True groupid BIGINT True True 20 主机组ID
False name VARCHAR True False 255 主机组名称
False internal INTEGER True False 11 是否内部配置,若是外部发现,则为非内部define('ZBX_NOT_INTERNAL_GROUP', 0);define('ZBX_INTERNAL_GROUP', 1);
False flags INT True False 11 唯一标识

该表的相关数据查询语句:

  1. 查询所有监控组的数量:select count(name) from groups;
  2. history表

浮点历史数据表。与items表相关联。

PK Name Type Not Null Unique Len Notes
False itemid BIGINT True False 20 监控项ID
False clock INT True False 11 收集时间,UNIX时间戳+
False value Value True False 16
False ns INT True False 11
  1. history_log表

历史日志表,与itmes表相关联。

PK Name Type Not Null Unique Len Notes
False itemid BIGINT True False 20 监控项ID
False clock INT True False 11 收集时间
False timestamp INTEGER True False 11 时间戳
False source VARCHAR True False 64 数据源
False severity INT True False 11 严重度
False value TEXT True False 0
False logeventid INTEGER True False 11 只作关联windows的事件日志ID
False ns INTEGER True False 11
  1. history_str表

字符串的历史数据表。

PK Name Type Not Null Unique Len Notes
False itemid BIGINT True False 20 监控项ID
False clock INT True False 11 unix时间戳,监控数据采集时间
False value VARCHAR True False 255 监控的值,不能超过255个字符
False ns INT True False 11
  1. history_text表(空)

长文本历史数据表,支持255字符以上的文本,与items表相关联。

PK Name Type Not Null Unique Len Notes
False itemid BIGINT True False 20 监控项ID
False clock INT True False 11 时间戳
False value TEXT True False 0 字符串值
False ns INTEGER True False 11
  1. history_uint表

长整型历史数据表,与items表相关联。

PK Name Type Not Null Unique Len Notes
False itemid BIGINT True False 20 监控项ID
False clock INT True False 11 时间戳
False value TEXT True False 0 字符串值
False ns INTEGER True False 11
  1. host_discovery表

主机自动发现表,与items表相关联。

PK Name Type Not Null Unique Len Notes
False hostid BIGINT True False 20 主机ID
False parent_hostid BIGINT False False 20 父主机ID
False parent_itemid BIGINT False False 20 父监控项ID
False host VARCHAR True False 64 主机
False lastcheck INT True False 11 最后检查时间:
False ts_delete INT True False 11 删除时间
  1. host_inventory表(空)

主机资产表,很少用到(分为自动发现和手工填写两种方式)

PK Name Type Not Null Unique Len Notes
True hostid BIGINT True True 20 主机ID
False inventory_mode INT True False 11 资产模式
False type VARCHAR True False 64 类型
False type_full VARCHAR True False 64 类型全名
False name VARCHAR True False 64 名称
False alias VARCHAR True False 64 别名
False os VARCHAR True False 64 系统
False os_full VARCHAR True False 255 系统全名
False os_short VARCHAR True False 64 系统简称
False serialno_a VARCHAR True False 64 序列号
False serialno_b VARCHAR True False 64 序列号
False tag VARCHAR True False 64 标签
False asset_tag VARCHAR True False 64 资产标签
False macaddress_a VARCHAR True False 64 MAC地址
False macaddress_b VARCHAR True False 64 MAC地址
False hardware VARCHAR True False 255 硬件
False hardware_full TEXT True False 0 硬件全称
False software VARCHAR True False 255 软件
False software_full TEXT True False 0 软件全称
False software_app_a VARCHAR True False 64 软件应用
False software_app_b VARCHAR True False 64 软件应用
False software_app_c VARCHAR True False 64 软件应用
False software_app_d VARCHAR True False 64 软件应用
False software_app_e VARCHAR True False 64 软件应用
False contact TEXT True False 0 关联
False location TEXT True False 0 位置
False location_lat VARCHAR True False 16 起始位置
False location_lon VARCHAR True False 16 终止位置
False notes TEXT True False 0 注释
False chassis VARCHAR True False 64 底盘号
False model VARCHAR True False 64 模式
False hw_arch VARCHAR True False 32 硬件信息
False vendor VARCHAR True False 64 供应商
False contract_number VARCHAR True False 64 合同编号
False installer_name VARCHAR True False 64 安装者名称
False deployment_status VARCHAR True False 64 调度状态
False url_a VARCHAR True False 255 url
False url_b VARCHAR True False 255 url
False url_c VARCHAR True False 255 url
False host_networks TEXT True False 0 主机网络
False host_netmask VARCHAR True False 39 主机网络掩码
False host_router VARCHAR True False 39 主机路由
False oob_ip VARCHAR True False 39 Oob ip地址
False oob_netmask VARCHAR True False 39 Oob 网络掩码
False oob_router VARCHAR True False 39 Oob 路由
False date_hw_purchase VARCHAR True False 64 硬件维保日期
False date_hw_install VARCHAR True False 64 硬件安装日期
False date_hw_expiry VARCHAR True False 64 硬件保修到期日期
False date_hw_decomm VARCHAR True False 64 硬件报废日期
False site_address_a VARCHAR True False 128 地址
False site_address_b VARCHAR True False 128 地址
False site_address_c VARCHAR True False 128 地址
False site_city VARCHAR True False 128 城市
False site_state VARCHAR True False 64 国家
False site_country VARCHAR True False 64 城镇
False site_zip VARCHAR True False 64 邮政编码
False site_rack VARCHAR True False 128 Rack
False site_notes TEXT True False 0 注释
False poc_1_name VARCHAR True False 128 名字
False poc_1_email VARCHAR True False 128 邮箱
False poc_1_phone_a VARCHAR True False 64 电话号码
False poc_1_phone_b VARCHAR True False 64 电话号码
False poc_1_cell VARCHAR True False 64 移动电话
False poc_1_screen VARCHAR True False 64 Poc屏幕
False poc_1_notes TEXT True False 0 Poc 注释
False poc_2_name VARCHAR True False 128 Poc名字
False poc_2_email VARCHAR True False 128 Poc 邮箱地址
False poc_2_phone_a VARCHAR True False 64 Poc 电话号码
False poc_2_phone_b VARCHAR True False 64 Poc 电话号码
False poc_2_cell VARCHAR True False 64 Poc 移动电话
False poc_2_screen VARCHAR True False 64 Poc屏幕
False poc_2_notes TEXT True False 0 Poc 注释
  1. hostmacro表

主机宏定义表,与globalmacro一起在common.macro.php中被转化,与hosts表相关联。

PK Name Type Not Null Unique Len Notes
True hostmacroid BIGINT True True 20 主机宏定义ID
False hostid BIGINT True False 20 主机ID
False macro VARCHAR True False 255 宏名称
False value VARCHAR True False 255 宏值
  1. hosts表

用于保存主机实例(包含模板等)。

PK Name Type Not Null Unique Len Notes
True hostid BIGINT True True 20 主机ID,zabbix中,主机、模板都使用该表记录,唯一区别是status字段
False proxy_hostid BIGINT False False 20 该主机的代理的ID
False host VARCHAR True False 128 host的名称
False status INT True False 11 host的状态,用以区分主机、模板、代理0:正在被监控的主机1:未被监控的主机3:模板4:启用代理模式的主机5:未启用代理模式的主机
False disable_until INT True False 11 禁止主机监控到什么时候
False error VARCHAR True False 2048 主机错误信息
False available INT True False 11 1为可用0为不可用
False errors_from INT True False 11 主机监控发生错误的时间戳
False lastaccess INT True False 11 最后访问时间
False ipmi_authtype INT True False 11 IPMI的认证方式:-1:默认的认证方式0:无认证方式1:MD2认证2:MD5加密认证4:直接认证5:OEM认证6:RMCP_PLUS认证方式
False ipmi_privilege INT True False 11 IPMI的授权1:回调权限2:用户权限3:操作权限4:管理权限5:OEM权限
False ipmi_username VARCHAR True False 16 IPMI认证的用户名
False ipmi_password VARCHAR True False 20 IPMI认证的密码
False ipmi_disable_until INT True False 11 IPMI不可用直到什么时间
False ipmi_available INT True False 11 IPMI什么时间可用
False snmp_disable_until INT True False 11 SNMP不可用直到什么时间
False snmp_available INT True False 11 SNMP可用时间
False maintenanceid BIGINT False False 20 维护状态ID,表示该主机进入维护状态,监控停止
False maintenance_status INT True False 11 维护状态0:正常1:维护
False maintenance_type INT True False 11 维护类型:0:继续收集数据1:不在收集数据
False maintenance_from INT True False 11 维护开始时间
False ipmi_errors_from INT True False 11 IPMI错误开始时间
False snmp_errors_from INT True False 11 SNMP错误开始时间
False ipmi_error VARCHAR True False 2048 IPMI错误信息
False snmp_error VARCHAR True False 2048 SNMP错误信息
False jmx_disable_until INT True False 11 java扩展功能开启
False jmx_available INT True False 11 java扩展功能是够可用
False jmx_errors_from INT True False 11 java扩展功能的错误来源
False jmx_error VARCHAR True False 2048 Javaz错误信息
False name VARCHAR True False 128 host的名称
False flages INT True False 11 标识
False templateid BIGINT False False 20 模板ID
False description TEXT True False 0 描述
False tls_connect INT TRUE False 11 tls连接
False tls_accept INT TRUE False 11 tls许可
False tls_issuer VARCHAR TRUE False 1024 tls发行人
False tls_subject VARCHAR TRUE False 1024 tls 项目名
False tls_psk_identity VARCHAR TRUE False 128 tls_psk身份认证
False tls_psk VARCHAR TRUE False 512 tls _psk

该表的相关数据查询语句:

  1. 查询所有主机的数量:select count(host) from hosts;
  2. 查询所有正在被监控的主机的数量:select count(host) from hosts where status='0';
  3. 查询所有未被监控的主机的数量:select count(host) from hosts where status='1';
  4. 查询所有模板的数量:select count(host) from hosts where status='3';
  5. hosts_groups表

将主机host表与主机组group表进行关联。

PK Name Type Not Null Unique Len Notes
True hostgroupid BIGINT True True 20 主机-主机组关联ID
False hostid BIGINT True False 20 主机ID
False groupid BIGINT True False 20 组ID
  1. hosts_templates表

主机-模板关联表,主机和模板都保存在host表里面,用status区分。

PK Name Type Not Null Unique Len Notes
True hosttemplateid BIGINT True True 20 主机-模板关联ID
False hostid BIGINT True False 20 主机ID
False templateid BIGINT True False 20 模板ID,也是关联到HOST主机上
  1. housekeeper表(空)

数据清除管理设置表。

PK Name Type Not Null Unique Len Notes
True housekeeperid BIGINT True True 20 管理ID
False tablename VARCHAR True False 64 表名
False field VARCHAR True False 64
False value BIGINT True False 20
  1. httpstep表(空)

http监控步骤记录表

PK Name Type Not Null Unique Len Notes
True httpstepid BIGINT True True 20 http监控步骤ID
False httptestid VARCHAR True False 64 http测试ID
False name VARCHAR True False 64 名称
False no INT True False 11 序号
False url VARCHAR True False 2048 url
False timeout VARCHAR True False 255 超时时间
False posts VARCHAR True False 0 传输方式post
False required VARCHAR True False 255 需求
False status_codes VARCHAR True False 255 状态码
False follow_redirects INT True False 11 重定向
False retrieve_mode INT True False 11 恢复模式
False post_type INT True False 11 传输类型
  1. httpstep_field表(空)

http监控步骤-域记录表。与httpstep表相关联。

PK Name Type Not Null Unique Len Notes
True httpstep_fieldid BIGINT True True 20 http监控步骤域ID
False httpstepid BIGINT True False 20 http监控步骤ID
False type INT True False 11 类型
False name VARCHAR True False 255 名称
False value TEXT True False 0
  1. httpstepitem表(空)

WEB步骤-监控项关联表,每新建一个web步骤,都会在items表中新建Download ,与httpstep、items表相关联。

PK Name Type Not Null Unique Len Notes
True httpstepitemid BIGINT True True 20 web监控-监控项的关联ID
False httpstepid BIGINT True False 20 http监控步骤ID
False itemid BIGINT True False 20 对应items表的itemsID
False type INTEGER True False 11 详情如下:

Type

监控项类型,0,1,2,3,4

define('HTTPSTEP_ITEM_TYPE_RSPCODE',0);

define('HTTPSTEP_ITEM_TYPE_TIME',1);

define('HTTPSTEP_ITEM_TYPE_IN',2);

define('HTTPSTEP_ITEM_TYPE_LASTSTEP',3);

define('HTTPSTEP_ITEM_TYPE_LASTERROR',4);

  1. httptest表(空)

HTTP监控场景配置表,对每一个WEB监控的场景新增一条httptest的记录。

与applications表相关联。

PK Name Type Not Null Unique Len Notes
True httptestid BIGINT True True 20 WEB监控场景ID
False name VARCHAR True False 64 WEB监控场景的名称
False applicationid BIGINT True False 20 应用的ID,关联application表的ID
False nextcheck INT True False 11 下次检查时间
False delay INTEGER True False 255 检查间隔,秒
False status INTEGER True False 11 状态:1:开启0:关闭
False agent VARCHAR True False 255 使用的浏览器,基本支持所有类型
False authentication INT True False 11 详情如下:
False http_user VARCHAR True False 64 认证的用户名
False http_password VARCHAR True False 64 认证的密码
False templateid BIGINT True False 20 模板ID
False http_proxy VARCHAR True False 255 http代理
False retries INT True False 11 再次尝试间隔
False ssl_cert_file VARCHAR True False 255 Ssl认证文件
False ssl_key_file VARCHAR True False 255 Ssl密钥文件
False ssl_key_password VARCHAR True False 64 Ssl密钥密码
False verify_peer INT True False 11 逐一认证
False verify_host INT True False 11 认证主机

**Authentication:**是否认证需要认证,或认证类型:

0:不需要认证

1:基本认证

2:NTML认证

define('HTTPTEST_AUTH_NONE',0);

define('HTTPTEST_AUTH_BASIC',1);

define('HTTPTEST_AUTH_NTLM',2);

  1. httptest_field表(空)

http监控测试-域记录表。与httpstep表相关联。

PK Name Type Not Null Unique Len Notes
True httptest_fieldid BIGINT True True 20 http监控测试域ID
False httptestid BIGINT True False 20 http监控测试ID
False type INT True False 11 类型
False name VARCHAR True False 255 名称
False value TEXT True False 0
  1. httptestitem表(空)

HTTP场景-监控项关联表。与httptest、items表相关联。

PK Name Type Not Null Unique Len Notes
True httptestitemid BIGINT True True 20 HTTP监控场景-监控项关联ID
False httptestid BIGINT True False 20 HTTP监控场景ID,httptest表
False itemid BIGINT True False 20 监控项ID,关联items表
False type INT True False 11 详情如下:

Type

监控项类型,0,1,2,3,4

define('HTTPSTEP_ITEM_TYPE_RSPCODE',0);

define('HTTPSTEP_ITEM_TYPE_TIME',1);

define('HTTPSTEP_ITEM_TYPE_IN', 2);

define('HTTPSTEP_ITEM_TYPE_LASTSTEP', 3);

define('HTTPSTEP_ITEM_TYPE_LASTERROR',4);

  1. icon_map表(空)

图标映射表,用于映射图标和图像(images)之间的关系。

PK Name Type Not Null Unique Len Notes
True iconmapid BIGINT True True 20 映射ID
False name VARCHAR True False 64 映射名称
False default_iconid BIGINT True False 20 默认的图标ID,关联到images表的ID,即实际使用还是images
  1. icon_mapping表(空)

图标映射表。与iconmap表相关联。

PK Name Type Not Null Unique Len Notes
True iconmappingid BIGINT True True 20 图形映射ID
False iconmapid BIGINT True False 20 映射ID
False iconid BIGINT True False 20 图形ID
False inventory_link INTEGER True False 11 资产链接
False expression VARCHAR True False 64 表达式
False sortorder INTEGER True False 11 次序排序
  1. ids表

索引表,标识表名的主键下一个值,或者说主键最大值+1。

PK Name Type Not Null Unique Len Notes
True table_name VARCHAR True True 64 表名
True field_name VARCHAR True True 64 该表的主键的字段名称
False nextid BIGINT True False 20 主键最大值+1,即主键下一个值
  1. images表

该表保存图像,使用BLOB类型保存,该表在安装zabbix的时候会自动导入

PK Name Type Not Null Unique Len Notes
True imageid BIGINT True True 20 图形ID
False imagetype INTEGER True False 11 详情如下:
False name VARCHAR True False 64 图像名称
False image BLOB True False 0 图像,使用二进制存储

Imagetype:图像的类型

define('IMAGE_TYPE_UNKNOWN', 0);

define('IMAGE_TYPE_ICON', 1);

define('IMAGE_TYPE_BACKGROUND', 2);

  1. interface表

主机监控接口表,用于标示被监控主机的IP和端口,与hosts表相关联。

PK Name Type Not Null Unique Len Notes
True interfaceid BIGINT True True 20 主机接口ID
False hostid BIGINT True False 20 主机ID,关联hosts
False main INT True False 11 详情如下:
False type INT True False 11 详情如下:
False useip INT True False 11 详情如下:
False ip VARCHAR True False 39 IP地址
False dns VARCHAR True False 64 域名字符串
False port VARCHAR True False 64 服务端口,TCP端口
False bulk INT True False 11 大小

Main:是否主要端口:

1为主要,0为次要

define('INTERFACE_SECONDARY',0);

define('INTERFACE_PRIMARY',1);

type:每个主机的服务端口/接口可以分几种类型:

define('INTERFACE_TYPE_ANY',-1);

define('INTERFACE_TYPE_UNKNOWN',0);

define('INTERFACE_TYPE_AGENT',1);

define('INTERFACE_TYPE_SNMP',2);

define('INTERFACE_TYPE_IPMI',3);

define('INTERFACE_TYPE_JMX',4);

**useip:**使用IP或者DNS方式定位:

define('INTERFACE_USE_DNS', 0);

define('INTERFACE_USE_IP',1);

  1. interface_discovery表(空)

主机监控接口自动发现信息记录表,用于自动发现接口,与interface表相关联。

PK Name Type Not Null Unique Len Notes
True interfaceid BIGINT True True 20 主机接口ID
False parent_interfaceid BIGINT True False 20 父级接口
  1. item_application_prototype表(空)

监控项应用模型信息记录表。

PK Name Type Not Null Unique Len Notes
True item_application_prototypeid BIGINT True True 20 监控项接口ID
False parent_interfaceid BIGINT True False 20 父级接口
  1. item_condition表

监控项条件记录表。与items表相关联。

PK Name Type Not Null Unique Len Notes
True item_conditionid BIGINT True True 20 监控项条件ID
False itemid BIGINT True False 20 监控项ID
False operator INT True False 11 操作人
False macro VARCHAR True False 64
False value VARCHAR True False 255
  1. item_discovery表

监控项自动发现表,根据模板的自动发现规则,创建自动发现的监控项。

与items表相关联。

PK Name Type Not Null Unique Len Notes
True itemdiscoveryid BIGINT True True 20 监控项自动发现ID
False itemid BIGINT True False 20 对应的监控项ID
False parent_itemid BIGINT True False 20 父监控项
False key_ VARCHAR True False 255 监控项关键字
False lastcheck INT True False 11 最后检查时间
False ts_delete INT True False 11 删除时间
  1. item_preproc表

预处理监控项表,与items表相关联。

PK Name Type Not Null Unique Len Notes
True item_preprocid BIGINT True True 20 预处理监控项ID
False itemid BIGINT True False 20 对应的监控项ID
False step INT True False 11 步骤
False type_ INT True False 11 类型
False params VARCHAR True False 255 参数
  1. items表

监控项表,保存所有监控项。

PK Name Type Not Null Unique Len Notes
True itemid BIGINT True True 20 监控项ID
False type INT True False 11 详情如下:
False snmp_community VARCHAR True False 64 snmp相关
False snmp_oid VARCHAR True False 512 snmp相关
False hostid BIGINT True False 20 关联的主机ID
False name VARCHAR True False 255 监控项名称
False key_ VARCHAR True False 255 监控项关键字表达式
False delay VARCHAR True False 1024 监控时间间隔,单位为秒
False history VARCHAR True False 255 详细监控数据保留的时间,单位为天
False trends VARCHAR True False 255 趋势保存的默认时长,单位为天
False status INT True False 11 详情如下:
False value_type INT True False 11 详情如下:
False trapper_hosts VARCHAR True False 255 主机捕获
False units VARCHAR True False 255 单位,字符串
False snmpv3_securityname VARCHAR True False 64 snmp相关配置
False snmpv3_securitylevel INT True False 11 snmp相关配置
False snmpv3_authpassphrase VARCHAR True False 64 snmp相关配置
False snmpv3_privpassphrase VARCHAR True False 64 snmp相关配置
False formula VARCHAR True False 255 公式,和multipler一起使用,比如乘倍
False error VARCHAR True False 128 错误信息
False lastlogsize BIGINT True False 64 最大日志容量
False logtimefmt VARCHAR True False 64 日志日期格式化
False templateid BIGINT False False 20 模板ID,与host表关联
False valuemapid BIGINT False False 20 监控项的值映射值的ID,与valuemap表关联
False params TEXT True False 0 参数
False ipmi_sensor VARCHAR True False 128 Ipmi传感器
False authtype INT True False 11 认证类型:define('ITEM_AUTHTYPE_PASSWORD', 0);define('ITEM_AUTHTYPE_PUBLICKEY', 1);
False username VARCHAR True False 64 用户名
False password VARCHAR True False 64 密码
False publickey VARCHAR True False 64 认证类型使用publickey的时候,该字段有效
False privatekey VARCHAR True False 64 私钥
False mtime INT True False 11
False flags INTEGER True False 11 标识
False interfaceid BIGINT False False 20 服务接口ID,与interface表关联
False port VARCHAR True False 64 端口
False description TEXT True False 0 监控项描述
False inventory_link INT True False 11 资产链接Populates host inventory field
False lifetime VARCHAR True False 255 使用周期
False snmpv3_authprotocol INT True False 11 snmp相关配置
False snmpv3_privprotocol INT True False 11 snmp相关配置
False state INT True False 11 报表
False snmpv3_contextname VARCHAR True False 255 snmp相关配置
False evaltype INT True False 11 评估类型
False jmx_endpoind VARCHAR True False 255 Jmx终止点
False master_itemid BIGINT True False 20 主监控项ID

Type:监控项类型。

define('ITEM_TYPE_ZABBIX', 0);

define('ITEM_TYPE_SNMPV1', 1);

define('ITEM_TYPE_TRAPPER', 2);

define('ITEM_TYPE_SIMPLE', 3);

define('ITEM_TYPE_SNMPV2C', 4);

define('ITEM_TYPE_INTERNAL', 5);

define('ITEM_TYPE_SNMPV3', 6);

define('ITEM_TYPE_ZABBIX_ACTIVE', 7);

define('ITEM_TYPE_AGGREGATE', 8);

define('ITEM_TYPE_HTTPTEST', 9);

define('ITEM_TYPE_EXTERNAL', 10);

define('ITEM_TYPE_DB_MONITOR', 11);

define('ITEM_TYPE_IPMI', 12);

define('ITEM_TYPE_SSH', 13);

define('ITEM_TYPE_TELNET', 14);

define('ITEM_TYPE_CALCULATED',15);

define('ITEM_TYPE_JMX', 16);

status:当前状态,分为可用,不可用,和不支持三种:

define('ITEM_STATUS_ACTIVE',0);

define('ITEM_STATUS_DISABLED',1);

define('ITEM_STATUS_NOTSUPPORTED',3);

value_type:监控项的数据格式:

define('ITEM_VALUE_TYPE_FLOAT',0);

define('ITEM_VALUE_TYPE_STR',1);

define('ITEM_VALUE_TYPE_LOG',2);

define('ITEM_VALUE_TYPE_UINT64',3);

define('ITEM_VALUE_TYPE_TEXT',4);

  1. items_applications表

监控项-应用关联表,与items、applications表相关联。

PK Name Type Not Null Unique Len Notes
True itemappid BIGINT True True 20 监控项应用的关联ID
False applicationid BIGINT True False 20 应用ID
False itemid BIGINT True False 20 监控项ID
  1. maintenances表(空)

该表记录维护策略,与maintance_host,maintance_windows,maintance_group关联.

PK Name Type Not Null Unique Len Notes
True maintenanceid BIGINT True True 20 维护ID
False name VARCHAR True False 128 维护说明的标题
False maintenance_type INT True False 0 维护类型:0:正常模式,继续收集监控数据1:期间不再收集监控数据
False description TEXT True False 11 维护的描述
False active_since INT True False 11 维护策略启用时间
False active_till INT True False 11 维护策略生效时间
  1. maintenances_groups表(空)

维护-主机组关联表,与maintenances、groups表相关联。

PK Name Type Not Null Unique Len Notes
True maintenance_groupid BIGINT True True 20 维护策略与主机组的关联ID
False maintenanceid BIGINT True False 20 维护策略ID
False groupid BIGINT True False 20 主机组ID
  1. maintenances_hosts表(空)

该表将维护策略与主机关联起来,关联表为maintances和hosts。

PK Name Type Not Null Unique Len Notes
True maintenance_hostid BIGINT True True 20 维护策略与主机的关联ID
False maintenanceid BIGINT True False 20 维护策略ID
False hostid BIGINT True False 20 主机ID
  1. maintenances_windows表(空)

维护-时间窗口关联表,将maintances与timepreriod关联起来。

PK Name Type Not Null Unique Len Notes
True maintenance_timeperiodid BIGINT True True 20 维护--时间窗口的关联ID
False maintenanceid BIGINT True False 20 维护策略ID
False timeperiodid BIGINT True False 20 时间窗口ID
  1. mappings表

映射值表,与valuemap表关联,是valuemap表的具体值表。

PK Name Type Not Null Unique Len Notes
True mappingid BIGINT True True 20 单个映射关联ID
False valuemapid BIGINT True False 20 与valuemap的ID关联,即表示valuemap的具体值
False value VARCHAR True False 64 需要被映射的值
False newvalue VARCHAR True False 64 映射后的新值
  1. media表

通知方式实例表,记录每个用户所有的通知方式。

PK Name Type Not Null Unique Len Notes
True mediaid BIGINT True True 20 通知发送的实例ID,每个用户的每个通知方式作为一条记录
False userid BIGINT True False 20 用户ID
False mediatypeid BIGINT True False 20 详情如下:
False sendto VARCHAR True False 100 发送到的地址,比如电子邮箱
False active INTEGER True False 11 是否启用,0表示启用:define('MEDIA_TYPE_STATUS_ACTIVE', 0);define('MEDIA_TYPE_STATUS_DISABLED', 1);
False severity INTEGER True False 11 接受的告警等级,使用累加方式
False period VARCHAR True False 1024 通知方式的发送时间段,形式例如:1-7,00:00-24:00

Mediatypeid:媒体类型,支持以下几种:

define('MEDIA_TYPE_EMAIL',0);

define('MEDIA_TYPE_EXEC',1);

define('MEDIA_TYPE_SMS',2);

define('MEDIA_TYPE_JABBER',3);

define('MEDIA_TYPE_EZ_TEXTING',100);

  1. media_type表

通知媒介配置表,包含短信、邮件等

PK Name Type Not Null Unique Len Notes
True mediatypeid BIGINT True True 20 媒介类型ID
False type INT True False 11 通知媒介类型
False description VARCHAR True False 100 描述
False smtp_server VARCHAR True False 255 邮箱专用:smtp服务器
False smtp_helo VARCHAR True False 255 邮件专用helo
False smtp_email VARCHAR True False 255 邮件专用配置,邮件地址(发送者)
False exec_path VARCHAR True False 255 脚本方式的执行路径
False gsm_modem VARCHAR True False 255 短信猫的设备路径
False username VARCHAR True False 255 jabber的用户名
False passwd VARCHAR True False 255 jabber的密码
False status INTEGER True False 是否启用,0表示启用,1表示未启用
False smtp_port INT True False 11 smtp端口
False smtp_security INT True False 11 smtp安全协议
False smtp_verify_peer INT True False 11 smtp平级验证
False smtp_verify_host INT True False 11 smtp主机验证
False smtp_authentication INT True False 11 smtp认证
False exec_params VARCHAR True False 255 执行参数
False maxsessions INT True False 11 最大sessions值
False maxattempts INT True False 11 最多尝试次数
False attempt_interval VARCHAR True False 32 每次尝试的间隔
  1. opcommand表(空)

操作命令实例表,记录某个action场景下面的操作。

PK Name Type Not Null Unique Len Notes
True operationid BIGINT True True 20 操作ID
False type INT True False 11 详情如下:
False scriptid BIGINT False False 20 脚本ID
False execute_on INT True False 11 在server还是agent上执行,1表示server
False port VARCHAR True False 64 执行端口
False authtype INT True False 11 认证类型:publickey or password
False username VARCHAR True False 64 当认证类型为password时有用
False password VARCHAR True False 64 当认证类型为password时有用
False publickey VARCHAR True False 64 当认证类型为publickey时有用
False privatekey VARCHAR True False 64 当认证类型为publickey时有用
False command TEXT True False 0 远程执行的命令串

Type:支持的操作类型:

define('OPERATION_TYPE_MESSAGE',0);

define('OPERATION_TYPE_COMMAND',1);

define('OPERATION_TYPE_HOST_ADD',2);

define('OPERATION_TYPE_HOST_REMOVE',3);

define('OPERATION_TYPE_GROUP_ADD',4);

define('OPERATION_TYPE_GROUP_REMOVE',5);

define('OPERATION_TYPE_TEMPLATE_ADD', 6);

define('OPERATION_TYPE_TEMPLATE_REMOVE',7);

define('OPERATION_TYPE_HOST_ENABLE',8);

define('OPERATION_TYPE_HOST_DISABLE',9);

  1. opcommand_grp表(空)

远程命令-主机组关联表,以主机组为粒度,确定执行范围。与groups表相关联。

PK Name Type Not Null Unique Len Notes
True opcommand_grpid BIGINT True True 20 关联主机组ID
False operationid BIGINT True False 20 操作ID,与opcommand表ID关联
False groupid BIGINT True False 20 主机组ID,与group表ID关联
  1. opcommand_hst表(空)

远程命令-主机关联表,以主机为粒度,确定执行范围。与hosts表相关联。

PK Name Type Not Null Unique Len Notes
True opcommand_hstid BIGINT True True 20 关联主机ID
False operationid BIGINT True False 20 操作ID,与opcommand表ID关联
False hostid BIGINT True False 20 主机ID,与host表ID关联
  1. opconditions表

操作条件表。主要用来用来记录操作类型及操作符。与conditions表相关联。

PK Name Type Not Null Unique Len Notes
True opconditionid BIGINT True True 20 操作条件主键ID
False operationid BIGINT True False 20 操作ID
False conditiontype INT True False 11 详情如下:
False operator INT True False 11 详情如下:
False value VARCHAR True False 255 条件值

Conditiontype**:条件类型,目前支持以下几种:**

define('CONDITION_TYPE_HOST_GROUP', 0);

define('CONDITION_TYPE_HOST', 1);

define('CONDITION_TYPE_TRIGGER', 2);

define('CONDITION_TYPE_TRIGGER_NAME', 3);

define('CONDITION_TYPE_TRIGGER_SEVERITY', 4);

define('CONDITION_TYPE_TRIGGER_VALUE', 5);

define('CONDITION_TYPE_TIME_PERIOD', 6);

define('CONDITION_TYPE_DHOST_IP',7);

define('CONDITION_TYPE_DSERVICE_TYPE',8);

define('CONDITION_TYPE_DSERVICE_PORT',9);

define('CONDITION_TYPE_DSTATUS',10);

define('CONDITION_TYPE_DUPTIME',11);

define('CONDITION_TYPE_DVALUE',12);

define('CONDITION_TYPE_HOST_TEMPLATE',13);

define('CONDITION_TYPE_EVENT_ACKNOWLEDGED',14);

define('CONDITION_TYPE_APPLICATION',15);

define('CONDITION_TYPE_MAINTENANCE',16);

define('CONDITION_TYPE_NODE',17);

define('CONDITION_TYPE_DRULE',18);

define('CONDITION_TYPE_DCHECK',19);

define('CONDITION_TYPE_PROXY',20);

define('CONDITION_TYPE_DOBJECT',21);

define('CONDITION_TYPE_HOST_NAME',22);

operator**:操作符,支持以下几种:**

define('CONDITION_OPERATOR_EQUAL', 0);

define('CONDITION_OPERATOR_NOT_EQUAL',1);

define('CONDITION_OPERATOR_LIKE',2);

define('CONDITION_OPERATOR_NOT_LIKE',3);

define('CONDITION_OPERATOR_IN',4);

define('CONDITION_OPERATOR_MORE_EQUAL',5);

define('CONDITION_OPERATOR_LESS_EQUAL',6);

define('CONDITION_OPERATOR_NOT_IN',7);

  1. operations表

用来记录操作对应的动作关联表。与actions表相关联。

PK Name Type Not Null Unique Len Notes
True operationid BIGINT True True 20 操作ID
False actionid BIGINT True False 20 动作场景ID
False operationtype INT True False 11 详情如下
False esc_period INT True False 255 执行时间
False esc_step_from INT True False 11 从第几步开始
False esc_step_to INT True False 11 到第几步(step)
False evaltype INT True False 11 执行类型,远程命令还是发送消息
False recovery INT True False 11 恢复

Operationtype:操作类型,支持以下几种:

define('OPERATION_TYPE_MESSAGE',0);

define('OPERATION_TYPE_COMMAND',1);

define('OPERATION_TYPE_HOST_ADD',2);

define('OPERATION_TYPE_HOST_REMOVE',3);

define('OPERATION_TYPE_GROUP_ADD',4);

define('OPERATION_TYPE_GROUP_R EMOVE',5);

define('OPERATION_TYPE_TEMPLATE_ADD',6);

define('OPERATION_TYPE_TEMPLATE_REMOVE',7);

define('OPERATION_TYPE_HOST_ENABLE',8);

define('OPERATION_TYPE_HOST_DISABLE',9);

  1. opgroup表

操作-主机组关联表,与operations、groups表相关联。

PK Name Type Not Null Unique Len Notes
True opgroupid BIGINT True True 20 操作-主机组关联ID
False operationid BIGINT True False 20 操作ID,关联operation表ID
False groupid BIGINT True False 20 主机组ID
  1. opinventory表(空)

操作记录表,用来存放详细的操作记录。与operations表相关联。

PK Name Type Not Null Unique Len Notes
True operationid BIGINT True False 20 操作ID,关联operation表ID
False inventory_mode INT True False 11 记录模式
  1. opmessage表

发送消息操作表。

PK Name Type Not Null Unique Len Notes
True operationid BIGINT True True 20 操作ID,与operation表的ID关联-
False default_msg INT True False 11 默认的短信
False subject VARCHAR True False 255 标题
False message TEXT True False 0 短信内容
False mediatypeid BIGINT False False 20 通知媒介类型
  1. opmessage_grp表

发送消息操作-用户组关联表,用于以用户组为单位发送消息。与operations、usrgrp表相关联。

PK Name Type Not Null Unique Len Notes
True opmessage_grpid BIGINT True True 20 发送消息操作-用户组关联ID
False operationid BIGINT True False 20 操作ID,与operation表关联
False usrgrpid BIGINT True False 20 用户组ID,与usergrp表ID关联
  1. opmessage_usr表

发送消息操作-用户关联表,用于以用户为单位发送消息。与operations、users表相关联。

PK Name Type Not Null Unique Len Notes
True opmessage_usrid BIGINT True True 20 发送消息操作-用户关联ID
False operationid BIGINT True False 20 操作ID,与operation表ID关联
False userid BIGINT True False 20 用户ID,与user表的ID关联
  1. optemplate表

操作-模板关联表,与host表的templateid关联。与operations、hosts表相关联。

PK Name Type Not Null Unique Len Notes
True optemplateid BIGINT True True 20 操作-模板关联ID
False operationid BIGINT True False 20 操作ID,与operation表的ID关联
False templateid BIGINT True False 20 模板ID,与host表的hostid关联
  1. problem表

用来记录事件发生的问题信息表,与events、users、correlation表相关联。

PK Name Type Not Null Unique Len Notes
True events BIGINT True True 20 事件ID
False source INT True False 11 数据源
False object INT True False 11 目标
False objectid BIGINT True False 20 目标ID
False clock INT True False 11 出现问题时间
False ns INT True False 11
False r_eventid BIGINT False False 20 恢复事件ID
False r_clock INT True False 11 恢复问题时间
False r_ns INT True False 11
False correlationid BIGINT False False 20 与correlations表相关联ID
False userid BIGINT False False 20 相关联用户ID
  1. problem_tag表(空)

用来记录事件发生的问题标识表,与events表相关联。

PK Name Type Not Null Unique Len Notes
True problemtagid BIGINT True True 20 问题标识ID
False eventid BIGINT True False 20 事件ID
False tag VARCHAR True False 255 标识
False value VARCHAR True False 255
  1. profiles表

记录用户详细配置信息表,与users表相关联。

PK Name Type Not Null Unique Len Notes
True profileid BIGINT True True 20 用户配置ID
False userid BIGINT True False 20 用户ID,与user表ID关联
False idx VARCHAR True False 96 详情如下:
False idx2 BIGINT True False 20 同idx
False value_id BIGINT True False 20 配置值,根据type字段而定
False value_int INTEGER True False 11 配置值,根据type字段而定
False value_str VARCHAR True False 255 配置值,根据type字段而定
False source VARCHAR True False 96 数据源
False type INTEGER True False 11 详情如下:

idx:配置索引,字符串显示,目前支持以下几种:

web.actionconf.eventsource 、web.actionconf.php.sort

web.actionconf.php.sortorder 、web.applications.php.sort

web.applications.php.sortorder 、web.auditlogs.filter.action

web.auditlogs.filter.alias 、web.auditlogs.filter.resourcetype

web.auditlogs.timeline.period 、web.auditlogs.timeline.stime

web.avail_report.0.groupid 、web.avail_report.0.hostid

web.avail_report.0.timesince 、web.avail_repor t.0.timetill

web.avail_report.mode 、web.cm.groupid 、web.config.groupid

web.config.hostid 、web.dashboard.hats.hat_favgrph.state

web.dashboard.hats.hat_lastiss.state

web.dashboard.hats.hat_stszbx.state

web.dashboard.rf_rate.hat_lastiss 、web.dashconf.filter.enable

web.discovery.php.sort 、web.discovery.php.sortorder

web.discoveryconf.php.sort 、web.discoveryconf.php.sortorder

web.disc_prototypes.php.sort、web.disc_prototypes.php.sortorder

web.events.filter.state

type**:用户配置数据类型**:

define('PROFILE_TYPE_UNKNOWN',0);

define('PROFILE_TYPE_ID',1);

define('PROFILE_TYPE_INT',2);

define('PROFILE_TYPE_STR',3);

define('PROFILE_TYPE_ARRAY_ID',4);

define('PROFILE_TYPE_ARRAY_INT',5);

define('PROFILE_TYPE_ARRAY_STR',6);

  1. proxy_autoreg_host表(空)

代理-自动登记-主机表,PHP前端未用。与hosts表相关联。

PK Name Type Not Null Unique Len Notes
True id BIGINT True True 20 代理主机ID
False clock INT True False 11 登记时刻,unix时间戳
False host VARCHAR True False 64 主机名称
False listen_ip VARCHAR True False 39 监听IP
False listen_port INT True False 11 监听端口
False listen_dns VARCHAR True False 64 监听DNS
False listen_dns VARCHAR True False 64 监听DNS
False listen_metadate VARCHAR True False 255 监听元数据
  1. proxy_dhistory表(空)

代理-自动发现历史表,PHP前端未用,server使用。与drules、dcheck表相关联。

PK Name Type Not Null Unique Len Notes
True id BIGINT True True 20 代理_自动发现ID
False clock INT True False 11 自动发现时间
False druleid BIGINT True False 20 规则
False type INT True False 11 类型
False ip VARCHAR True False 39 IP地址
False port INT True False 11 端口地址
False value VARCHAR True False 255
False status INT True False 11 状态
False dcheckid BIGINT False False 20 自动检查ID
False dns VARCHAR True False 64 DNS地址
  1. proxy_history表(空)

代理历史数据表,PHP前端未用,server端使用,与items表相关联。

PK Name Type Not Null Unique Len Notes
True id BIGINT True True 20 记录ID,表示哪个记录已经从proxy端被记录同步到server端
False itemid BIGINT True False 20 监控项ID
False clock INT True False 11 收集时间(使用proxy的时间)
False timestamp INT True False 11 用于widonws的时间戳
False source VARCHAR True False 64 用于windows的事件记录源
False severity INT True False 11 用于windows,记录严重程度
False value LONGTEXT True False 0 实际值
False logeventid INT True False 11 用于windows,时间ID(logeventID)
False ns INT True False 11
False status INT True False 11 状态
False lastlogsize BIGINT True False 20 最大日志大小
False mtime INT True False 11
False flags INT True False 11 标识
  1. regexps表

正则表达式信息记录表。

PK Name Type Not Null Unique Len Notes
True regexpid BIGINT True True 20 正则表达式ID
False name VARCHAR True False 128 正则表达名称
False test_string TEXT True False 0 测试字符串
  1. rights表

权限配置表,用于记录用户组(usrgrp)与主机组(group)之间的权限关联,权限分为可读可写、可读、不可读不可写三种,与groups表相关联。

PK Name Type Not Null Unique Len Notes
True rightid BIGINT True True 20 权限ID
False groupid BIGINT True False 20 与usrgrp的组ID关联
False permission INT True False 11 权限:3:可读可写2:只可读1:deny
False id BIGINT True False 20 与group的组ID关联
  1. screen_user表(空)

屏幕实例关联用户表,与users、screens表相关联。

PK Name Type Not Null Unique Len Notes
True screenuserid BIGINT True True 20 屏幕实例关联用户的ID
False screenid BIGINT True False 20 屏幕实例ID
False userid BIGINT True False 20 用户ID
False permission INT True False 11 权限
  1. screen_usrgrp表(空)

屏幕实例关联用户组表,与usrgrp、screens表相关联。

PK Name Type Not Null Unique Len Notes
True screenusrgrpid BIGINT True True 20 屏幕实例关联用户组的ID
False screenid BIGINT True False 20 屏幕实例ID
False usrgrpid BIGINT True False 20 用户组ID
False permission INT True False 11 权限
  1. screens表

屏幕实例表,用于记录一个屏幕的行数和列数,并与hosts、users表关联。

PK Name Type Not Null Unique Len Notes
True screenid BIGINT True True 20 屏幕实例ID
False name VARCHAR True False 255 屏幕实例名称
False hsize INT True False 11 列数
False vsize INT True False 11 行数
False templateid BIGINT False False 20 模板ID,与host的id关联
False userid BIGINT False False 20 用户ID
False private INT True False 11
  1. screens_items表

屏幕子元素配置表,用于配置单个屏幕里面的元素,包括大小,样式,类型等,

与screens表相关联。

PK Name Type Not Null Unique Len Notes
True screenitemid BIGINT True True 20 屏幕子元素ID
False screenid BIGINT True False 20 屏幕ID
False resourcetype INT True False 11 详情如下:
False resourceid BIGINT True False 20 资源ID,依赖于资源类型
False width INT True False 11 宽度,像素
False height INT True False 11 高度,像素
False x INT True False 11 起始的X轴坐标
False y INT True False 11 起始的Y轴坐标
False colspan INT True False 11 列扩展
False rowspan INT True False 11 行扩展
False elements INT True False 11 元素
False valign INT True False 11 垂直对齐方式
False halign INT True False 11 水平对齐方式
False style INT True False 11 样式
False url VARCHAR True False 255 当类型为url时,记录url字符串
False dynamic INT True False 11 是否动态:define('SCREEN_SIMPLE_ITEM', 0);define('SCREEN_DYNAMIC_ITEM', 1);
False sort_triggers INT True False 11 详情如下:
False application VARCHAR True False 255 对应的应用
False Max_columns INT True False 11 最大列

**Resourcetype:**资源类型,目前支持以下几种方式:

define('SCREEN_RESOURCE_GRAPH',0);

define('SCREEN_RESOURCE_SIMPLE_GRAPH',1);

define('SCREEN_RESOURCE_MAP', 2);

define('SCREEN_RESOURCE_PLAIN_TEXT',3);

define('SCREEN_RESOURCE_HOSTS_INFO',4);

define('SCREEN_RESOURCE_TRIGGERS_INFO',5);

define('SCREEN_RESOURCE_SERVER_INFO',6);

define('SCREEN_RESOURCE_CLOCK',7);

define('SCREEN_RESOURCE_SCREEN',8);

define('SCREEN_RESOURCE_TRIGGERS_OVERVIEW',9);

define('SCREEN_RESOURCE_DATA_OVERVIEW',10);

define('SCREEN_RESOURCE_URL',11);

define('SCREEN_RESOURCE_ACTIONS',12);

define('SCREEN_RESOURCE_EVENTS',13);

define('SCREEN_RESOURCE_HOSTGROUP_TRIGGERS',14);

define('SCREEN_RESOURCE_SYSTEM_STATUS',15);

define('SCREEN_RESOURCE_HOST_TRIGGERS',16);

define('SCREEN_RESOURCE_HISTORY',17);

define('SCREEN_RESOURCE_CHART',18);

sort_triggers:选择为status host trigger的时候,可以提供几种trigger的排序方式:

define('SCREEN_SORT_TRIGGERS_DATE_DESC',0);

define('SCREEN_SORT_TRIGGERS_SEVERITY_DESC',1);

define('SCREEN_SORT_TRIGGERS_HOST_NAME_ASC',2);

define('SCREEN_SORT_TRIGGERS_TIME_ASC',3);

define('SCREEN_SORT_TRIGGERS_TIME_DESC',4);

define('SCREEN_SORT_TRIGGERS_TYPE_ASC',5);

define('SCREEN_SORT_TRIGGERS_TYPE_DESC',6);

define('SCREEN_SORT_TRIGGERS_STATUS_ASC',7);

define('SCREEN_SORT_TRIGGERS_STATUS_DESC',8);

define('SCREEN_SORT_TRIGGERS_RETRIES_LEFT_ASC',9);

define('SCREEN_SORT_TRIGGERS_RETRIES_LEFT_DESC',10);

define('SCREEN_SORT_TRIGGERS_RECIPIENT_ASC',1);

define('SCREEN_SORT_TRIGGERS_RECIPIENT_DESC',2);

  1. scripts表

脚本配置表,定义脚本的执行路径和方式。与usrgrp、groups表相关联。

PK Name Type Not Null Unique Len Notes
True scriptid BIGINT True True 20 脚本ID
False name VARCHAR True False 255 脚本名称
False command VARCHAR True False 255 脚本命令
False host_access INT True False 11 需要的主机权限,2为只读即可
False usrgrpid BIGINT False False 20 用户组ID
False groupid BIGINT False False 20 主机组ID,NULL表示所有主机组均可使用
False description TEXT True False 0 脚本描述
False confirmation VARCHAR True False 255 是否使用确认功能,若启用,则该字段不为空,且为确认信息。
False type INTEGER True False 11 脚本类型,包括脚本或者IPMI,0表示脚本,1表示IPMI
False execute_on INTEGER True False 11 执行位置:1表示server2表示agent
  1. service_alarms表(空)

服务告警表。

PK Name Type Not Null Unique Len Notes
True servicealarmid BIGINT True True 20 服务告警参数ID
False serviceid BIGINT True False 20 服务ID
False clock INT True False 11 服务告警发生时间
False value INT True False 11
  1. services表(空)

服务实例表。与triggers表相关联。

PK Name Type Not Null Unique Len Notes
True serviceid BIGINT True True 20 服务ID
False name VARCHAR True False 128 服务名称
False status INT True False 11 服务状态
False algorithm INT True False 11 详情如下:
False triggerid BIGINT False False 20 触发器ID,与trigger表ID关联
False showsla INT True False 11 是否显示SLA,服务等级协议
False goodsla DOUBLE True False 16 SLA的阀值,浮点表示
False sortorder INTEGER True False 11 排序,0-999,用于服务树状结构展示

Algorithm:服务算法

define('SERVICE_ALGORITHM_NONE',0); // do not calculate

define('SERVICE_ALGORITHM_MAX',1); // problem, if one chil dren has a problem

define('SERVICE_ALGORITHM_MIN',2); // problem, if all children have problems

  1. services_links表(空)

服务依赖关系表。

PK Name Type Not Null Unique Len Notes
True linkid BIGINT True True 20 链接ID
False serviceupid BIGINT True False 20 服务启动ID
False servicedownid BIGINT True False 20 服务终止ID
False soft INT True False 11 依赖软件
  1. services_times表(空)

服务时间定义表,用于定义IT服务的开、关时间段,支持循环(按星期)或者单次。与items、services表相关联。

PK Name Type Not Null Unique Len Notes
True timeid BIGINT True True 20 时间ID
False serviceid BIGINT True False 20 服务ID,与services表关联
False type INT True False 11 详情如下:
False ts_from INT True False 11 从什么时候开始
False ts_to INT True False 11 到什么时间结束
False note VARCHAR True False 255 单次关闭的备注

Type:时间类型:

define('SERVICE_TIME_TYPE_UPTIME',0);

define('SERVICE_TIME_TYPE_DOWNTIME',1);

define('SERVICE_TIME_TYPE_ONETIME_DOWNTIME',2);

  1. sessions表

会话信息记录表。与users表相关联。

PK Name Type Not Null Unique Len Notes
True sessionid VARCHAR True True 32 会话ID
False userid BIGINT True False 20 用户ID
False lastaccess INT True False 11 最后访问事件,unix时间戳
False status INT True False 11 状态:define('ZBX_SESSION_ACTIVE', 0);define('ZBX_SESSION_PASSIVE', 1);
  1. slides表(空)

单个幻灯片配置表,记录一个幻灯片组所包含的所有单个幻灯片的配置,与screens表相关联。

PK Name Type Not Null Unique Len Notes
True slideid BIGINT True True 20 幻灯片ID
False slideshowid BIGINT True False 20 关联的幻灯展示ID
False screenid BIGINT True False 20 展示的屏幕ID
False step INT True False 11 第几步
False delay INT True False 11 延时秒
  1. slideshow_user表(空)

单个幻灯片展示实例-用户表,记录一个幻灯片组所包含的所有单个幻灯片与用户的关联关系,与slideshow、users表相关联。

PK Name Type Not Null Unique Len Notes
True slideshowuserid BIGINT True True 20 幻灯片展示关联的用户ID
False slideshowid BIGINT True False 20 关联的幻灯展示ID
False userid BIGINT True False 20 用户ID
False permission INT True False 11 权限
  1. slideshow_usrgrp表(空)

单个幻灯片展示实例-用户组表,记录一个幻灯片组所包含的所有单个幻灯片与用户组的关联关系,与slideshow、users表相关联。

PK Name Type Not Null Unique Len Notes
True slideshowusrgrpid BIGINT True True 20 幻灯片展示关联的用户组ID
False slideshowid BIGINT True False 20 关联的幻灯展示ID
False usrgrpid BIGINT True False 20 用户组ID
False permission INT True False 11 权限
  1. slideshows表(空)

幻灯展示实例表,即幻灯片组。与users表相关联。

PK Name Type Not Null Unique Len Notes
True slideshowid BIGINT True True 20 幻灯片组ID
False name VARCHAR True False 255 名称
False delay INT True False 32 两个片组间的延时
True userid BIGINT True True 20 用户ID
False private INT True False 11
  1. sysmap_element_trigger表(空)

系统地图元素触发器关联表,与triggers表相关联。

PK Name Type Not Null Unique Len Notes
True selement_triggerid BIGINT Tru e True 20 系统地图元素与触发器的关联ID
False selementid BIGINT True False 20 元素ID
False triggerid BIGINT True False 255 触发器ID
  1. sysmap_element_url表(空)

系统地图元素URL关联表

PK Name Type Not Null Unique Len Notes
True sysmapelementurlid BIGINT True True 20 系统地图元素与URL的关联ID
False selementid BIGINT True False 20 元素ID
False name VARCHAR True False 255 名称
False url VARCHAR True False 255 URL
  1. sysmap_shape表

系统地图模型表。

PK Name Type Not Null Unique Len Notes
True sysmap_shapeid BIGINT True True 20 系统地图模型ID
False sysmapid BIGINT True False 20 系统地图ID
False type INT True False 11 类型
False x INT True False 11 起始的X轴坐标
False y INT True False 11 起始的Y轴坐标
False width INT True False 11 宽度,像素
False height INT True False 11 高度,像素
False text TEXT True False 0 文本信息
False font INT True False 11 前端
False font_size INT True False 11 前端大小
False font_color VARCHAR True False 6 前端颜色
False text_valign INT True False 11 文本垂直对齐方式
False text_halign INT True False 11 文本水平对齐方式
False border_type INT True False 11 边框样式
False border_width INT True False 11 边框宽度
False border_color VARCHAR True False 6 边框颜色
False background_color VARCHAR True False 6 背景颜色
False zindex INT True False 11 首页
  1. sysmap_url表(空)

系统地图-URL关联表。

PK Name Type Not Null Unique Len Notes
True sysmapurlid BIGINT True True 20 系统地图-URL关联ID
False sysmapid BIGINT True False 20 系统地图ID
False name VARCHAR True False 255 URL名称
False url VARCHAR True False 255 URL地址
False elementtype INTEGER True False 11 详情如下:

elementtypeL元素类型,每种类型的元素都可以设定URL

define('SYSMAP_ELEMENT_TYPE_HOST',0);

define('SYSMAP_ELEMENT_TYPE_MAP',1);

define('SYSMAP_ELEMENT_TYPE_TRIGGER',2);

define('SYSMAP_ELEMENT_TYPE_HOST_GROUP',3);

define('SYSMAP_ELEMENT_TYPE_IMAGE',4);

  1. sysmap_user表(空)

系统地图关联用户表,记录用户的关联关系,与sysmap、users表相关联。

PK Name Type Not Null Unique Len Notes
True sysmapuserid BIGINT True True 20 系统地图关联的用户ID
False sysmapid BIGINT True False 20 关联的系统地图ID
False userid BIGINT True False 20 用户ID
False permission INT True False 11 权限
  1. sysmap_usrgrp表(空)

系统地图关联用户表,记录用户的关联关系,与sysmap、users表相关联。

PK Name Type Not Null Unique Len Notes
True sysmapusrgrpid BIGINT True True 20 系统地图关联的用户组ID
False sysmapid BIGINT True False 20 关联的系统地图ID
False usrgrpid BIGINT True False 20 用户组ID
False permission INT True False 11 权限
  1. sysmaps表

系统地图表。包含系统地图配置显示信息及标签属性。

PK Name Type Not Null Unique Len Notes
True sysmapid BIGINT True True 20 系统地图ID
False name VARCHAR True False 128 系统地图名称
False width INT True False 11 宽度,像素
False height INT True False 11 高度,像素
False backgroundid BIGINT False False 20 背景图像ID,引用image表
False label_type INT True False 11 详情如下:
False label_location INT True False 11 详情如下:
False highlight INT True False 11 是否高亮
False expandproblem INT True False 11 是否展开显示问题
False markelements INT True False 11 标记元素
False show_unack INT True False 11 是否显示未确认的数据
False grid_size INT True False 11 网格大小,像素
False grid_show INT True False 11 是否显示网格
False grid_align INT True False 11 网格对齐功能开启,1表示开启
False label_format INT True False 11 标签化分类
False label_type_host INT True False 11 主机标签类型
False label_type_hostgroup INT True False 11 主机组标签类型
False label_type_trigger INT True False 11 触发器标签类型
False label_type_map INT True False 11 地图标签类型
False label_type_image INT True False 11 图片标签类型
False label_string_host VARCHAR True False 255 主机字符串标签
False label_string_hostgroup VARCHAR True False 255 主机组标签字符串
False label_string_trigger VARCHAR True False 255 触发器字符串标签
False label_string_map VARCHAR True False 255 地图字符串标签
False label_string_image VARCHAR True False 255 图片字符串标签
False iconmapid BIGINT False False 图标的ID,会调用icon_map表中的数据
False expand_macros INT True False 是否启用宏

label_type:标签类型

define('MAP_LABEL_TYPE_LABEL',0);

define('MAP_LABEL_TYPE_IP',1);

define('MAP_LABEL_TYPE_NAME',2);

define('MAP_LABEL_TYPE_STATUS',3);

define('MAP_LABEL_TYPE_NOTHING',4);

define('MAP_LABEL_TYPE_CUSTOM',5)

label_location:标签位置

define('MAP_LABEL_LOC_BOTTOM',0);

define('MAP_LABEL_LOC_LEFT',1);

define('MAP_LABEL_LOC_RIGHT',2);

define('MAP_LABEL_LOC_TOP',3);

  1. sysmaps_elements表

系统地图-元素关联表。与sysmaps表相关联。

PK Name Type Not Null Unique Len Notes
True selementid BIGINT True True 20 系统元素ID
False sysmapid BIGINT True False 20 系统地图ID
False elementid BIGINT True False 20 元素ID
False elementtype INT True False 11 元素类型
False iconid_off BIGINT False False 20 关闭图标ID
False iconid_on BIGINT False False 20 开启图标ID
False label VARCHAR True False 2048 标签
False label_location INT False False 11 标签位置
False x INT True False 11 起始的X轴坐标
False y INT True False 11 起始的Y轴坐标
False iconid_disabled BIGINT False False 20 禁用的图标ID
False iconid_maintenance BIGINT False False 20 维护的图标ID
False elementsubtype INT True False 11 子元素类型
False areatype INT True False 11 区域类型
False width INT True False 11 宽度,像素
False height INT True False 11 高度,像素
False viewtype INT True False 11 视图类型
False use_iconmap INT True False 11 用户图标地图
False use_iconmap INT True False 11 用户图标地图
False application VARCHAR True False 255 关联的应用
  1. sysmaps_link_triggers表(空)

系统地图连接-触发器关联表。与triggers表相关联。

PK Name Type Not Null Unique Len Notes
True linktriggerid BIGINT True True 20 连接-触发器关联ID
False linkid BIGINT True False 20 连接ID
False triggerid BIGINT True False 20 触发器ID
False drawtype INT True False 11 详情如下:
False color VARCHAR True False 6 连接颜色

Drawtype:连接绘画形式

define('GRAPH_ITEM_DRAWTYPE_LINE', 0);

define('GRAPH_ITEM_DRAWTYPE_FILLED_REGION', 1);

define('GRAPH_ITEM_DRAWTYPE_BOLD_LINE', 2);

define('GRAPH_ITEM_DRAWTYPE_DOT', 3);

define('GRAPH_ITEM_DRAWTYPE_DASHED_LINE',4);

define('GRAPH_ITEM_DRAWTYPE_GRADIENT_LINE',5);

define('GRAPH_ITEM_DRAWTYPE_BOLD_DOT',6);

  1. sysmaps_links表(空)

系统地图链接表。与sysmaps、sysmaps_elements表相关联。

PK Name Type Not Null Unique Len Notes
True linkid BIGINT True True 20 链接ID
False sysmapid BIGINT True False 20 系统地图ID
False selementid1 BIGINT True False 20 链接的第一个元素ID,与sysmap_elements的ID关联
False selementid2 BIGINT True False 20 链接的第二个元素ID,与sysmap_elements的ID关联
False drawtype INTEGER True False 11 详情如下:
False color VARCHAR True False 6 默认颜色
False label VARCHAR True False 2048 链接标签名称

Drawtype:绘制类型

define('GRAPH_ITEM_DRAWTYPE_LINE',0);

define('GRAPH_ITEM_DRAWTYPE_FILLED_REGION',1);

define('GRAPH_ITEM_DRAWTYPE_BOLD_LINE',2);

define('GRAPH_ITEM_DRAWTYPE_DOT',3);

define('GRAPH_ITEM_DRAWTYPE_DASHED_LINE',4);

define('GRAPH_ITEM_DRAWTYPE_GRADIENT_LINE',5);

define('GRAPH_ITEM_DRAWTYPE_BOLD_DOT',6);

  1. task表(空)

任务调度表。

PK Name Type Not Null Unique Len Notes
True taskid BIGINT True True 20 任务调度ID
False type INT True False 11 任务调度类型
False status INT True False 11 状态
False clock INT True False 11 任务调度时间
False ttl INT True False 11
False proxy_hostoid VARCHAR True False 20 代理主机ID
  1. task_acknowledge表(空)

任务调度信息告警确认表,与acknowledges表相关联。

PK Name Type Not Null Unique Len Notes
True taskid BIGINT True True 20 任务调度ID
False acknowledgeid BIGINT True False 20 关联的告警确认ID
  1. task_close_problem表(空)

任务调度问题关闭表,与acknowledges表相关联。

PK Name Type Not Null Unique Len Notes
True taskid BIGINT True True 20 任务调度ID
False acknowledgeid BIGINT True False 20 关联的告警确认ID
  1. task_remote_command表(空)

任务远程命令信息记录表。与task、alerts、hosts表相关联。

PK Name Type Not Null Unique Len Notes
True taskid BIGINT True True 20 任务调度ID
False command_type INT True False 11 命令类型
False execute_on INT True False 11 开启执行权限
False port INT True False 11 端口
False authtype INT True False 11 认证类型
False username VARCHAR True False 64 用户名
False password VARCHAR True False 64 密码
False publickey VARCHAR True False 64 公钥
False privatekey VARCHAR True False 64 私钥
False command TEXT True False 0 命令
True alertid BIGINT True False 20 资产ID
False parent_taskid BIGINT True False 20 父任务调度ID
False hostid BIGINT True False 20 主机ID
  1. task_remote_command_result表(空)

任务远程命令的结果信息记录表。与task

PK Name Type Not Null Unique Len Notes
True taskid BIGINT True True 20 任务调度ID
False status INT True False 11 状态
False parent_taskid BIGINT True False 20 父任务调度ID
False info TEXT True False 0 结果信息
  1. timeperiods表(空)

时间窗口定义表。

PK Name Type Not Null Unique Len Notes
相关推荐
合方圆~小文几秒前
高清监控视频的管理与展示:从摄像头到平台的联接过程
linux·网络·人工智能·云计算·智能家居
小屁不止是运维4 分钟前
麒麟操作系统服务架构保姆级教程(八)数据库拆分静态业务拆分和负载均衡
运维·服务器·数据库·架构·负载均衡
凡人的AI工具箱13 分钟前
每天40分玩转Django:Django即时聊天应用实战
数据库·人工智能·后端·python·django·sqlite
man201715 分钟前
【2024最新】基于Python+Mysql+Django+Vue网上商城的设计与实现Lw+PPT
vue.js·mysql·django
BUG研究员_26 分钟前
微服务のGeteWay
java·数据库·微服务
计算机学无涯40 分钟前
计算机网络复习(练习题)
网络·计算机网络
ice___Cpu41 分钟前
Redis - 8 ( 10000 字 Redis 入门级教程 )
数据库·redis·缓存
Linux运维老纪42 分钟前
Nginx常用配置之详解(Detailed Explanation of Common Nginx Configurations)
计算机网络·nginx·微服务·云原生·架构·云计算·运维开发
Rk..1 小时前
数据库索引相关总结
java·数据库·sql
十子木1 小时前
Emacs 中的缓冲区(Buffer)介绍
服务器·网络·emacs