# 第一章:监控概念及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.jiankongbao.com/)博瑞:[https://www.bonree.com/](https://www.bonree.com/)
### Zabbix介绍
Zabbix 是C语言编写的企业级开源免费的分布式监控解决方案,可监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康状况和完整性。
Zabbix 使用灵活的报警通知机制,允许用户为几乎任何事件配置基于电子邮件的警报。这允许对服务器问题做出快速反应。
Zabbix 可通过存储的数据提供出色的报告和数据可视化功能。
官网地址:[https://www.zabbix.com/](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主机操作
```plain
#安装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
```
```plain
#启用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
添加SCL仓库(提供zabbix前端所需的一些的软件包)
vim CentOS-SCLo-scl.repo
[sclo]
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/sclo/x86_64/rh
enabled=1
gpgcheck=0
#安装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](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客户端程序。
```plain
#下载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/](https://share.zabbix.com/)(也可通过界面左侧配置栏的**Share**直达)
友情提示:大部分监控模板已经在zabbix中提供,并且能够满足大部分监控需求。
### 新建模板
模版可以对监控项、触发器、图形等进行归类,当一个模版链接到一个主机后,主机会继承这个模版中的所有功能。
| **配置****(Configuration) → ****模版****(Templates)****创建模版****(Create template)** |
| :--- |
| |
所有必填字段以红色星标标示。
模版名称:名称自定义,不支持中文。
群组:模版必须属于一个组,可以自建,可以使用zabbix提供的组。
### 新建应用集
模板中的应用集我们可以理解为监控项的分组,可以将相同类型的监控项分配到同一个应用集内。
**配置 → 模板** 找到对应的模板选择 **应用集** → **创建应用集**
名称:自定义,支持中文。
### 新建监控项
监控项是Zabbix中获得数据的基础,没有监控项,就没有数据。
**配置 → 模板** 页面查找到我们自建的模板,点击模板中的 `监控项`然后 **创建监控项**
名称:名称自定义,支持中文。
CPU 1、5、15分钟平均负载监控项key
```plain
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中文乱码
安装并更新字体
```plain
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内置的用户自定义告警消息模板,用于指定发送告警的具体消息,将该内容复制到对应的参数内
```plain
故障告警:{EVENT.NAME}
告警主机: {HOST.NAME}
主机地址: {HOST.IP}
监控项目: {ITEM.NAME}
当前取值: {ITEM.LASTVALUE}
告警等级: {TRIGGER.SEVERITY}
告警时间: {EVENT.DATE}-{EVENT.TIME}
事件ID: {EVENT.ID}
```
接下来配置告警恢复操作,点击恢复操作内的 `添加`
下边是zabbix内置的用户自定义告警消息变量,用于指定故障恢复时,发送告警的具体消息,将该内容复制到对应的参数内
```plain
故障恢复:{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/](https://work.weixin.qq.com/)
在`应用管理`中查看zabbix应用ID及secret(密钥)
| |
| --- |
| |
| |
在`我的企业`中查看企业ID
在`通讯录`中查看部门ID及个人账号ID
登录微信企业接口调试网址测试zabbix应用能否访问企业微信:
[https://open.work.weixin.qq.com/wwopen/devtool/interface/combine](https://open.work.weixin.qq.com/wwopen/devtool/interface/combine)
zabbix应用ID:1000039
应用密钥:RdqTtbydSEoef5TxUEKbheHwoszwJklVNYCFpb7Rwes
企业ID:wwa78d6212da74fd51
个人账号ID: Yesir
部门ID:8
### 配置报警脚本
zabbix要求故障报警脚本必须放在指定路径,通过下边命令过滤配报警脚本的存放路径
```plain
egrep -v '^$|#' /etc/zabbix/zabbix_server.conf
...
AlertScriptsPath=/usr/lib/zabbix/alertscripts //存放报警脚本路径
```
将脚本放至该路径添加执行权限
```plain
cd /usr/lib/zabbix/alertscripts/
chmod +x wechat.py
```
修改脚本添加企业微信信息
```plain
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。
```plain
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
```
执行脚本测试:’收件人的微信账号‘ '信息标题' '信息内容'
```plain
cd /usr/lib/zabbix/alertscripts/
./wechat.py Yesir test hello
```
测试时如果出现IP地址不信任的问题,例如下方提示:
```plain
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/](https://work.weixin.qq.com/)
2)点击`应用管理`找到zabbix应用
3)在页面最下方配置`企业可信IP`(把请求返回的ip设置到可信IP中,注意:IP每天都会变动,所以每天都要重新配置到企业可信IP里)
### 创建报警媒介
媒介是Zabbix中用于发送告警的方式,可以配置多种媒介类型,如:电子邮件、短信、自定义报警脚本、Webhook。
媒介类型在 **管理** → **媒介类型** 中进行配置,点击 **创建媒介类型** 按钮来创建一个新的媒体类型。
下边三个脚本特定参数是zabbix内置,用于指定在发送消息时的收件人、消息主题、消息内容
```plain
{ALERT.SENDTO} #收件人
{ALERT.SUBJECT} #消息主题
{ALERT.MESSAGE} #消息内容
```
自定义消息模板的步骤:
+ 在 **消息模板** (Message template) 选项卡中,点击 `添加` 填写所需的 `消息类型``主题``消息`
下边是zabbix内置的问题消息模板,用于指定发送告警的具体消息。
```plain
告警信息:{EVENT.NAME}
告警主机: {HOST.NAME}
主机地址: {HOST.IP}
监控项目: {ITEM.NAME}
当前取值: {ITEM.LASTVALUE}
告警等级: {TRIGGER.SEVERITY}
告警时间: {EVENT.DATE}-{EVENT.TIME}
事件ID: {EVENT.ID}
```
完成后点击 **添加** 保存消息模板。
配置 **问题恢复** 消息
下边是zabbix内置的问题恢复消息模板,用于指定故障恢复时,发送告警的具体消息。
```plain
故障恢复:{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负载来触发这个告警动作。
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进程管理程序。
```plain
#安装Mariadb-server及相关依赖
yum install mariadb mariadb-server php php-fpm php-mysql php-gd -y
```
修改 /etc/my.cnf 文件支持中文
```plain
vim /etc/my.cnf
[mysqld]
character-set-server=utf8 --手动添加
#启动服务并设置服务随机自启
systemctl start mariadb && systemctl enable mariadb
```
修改/etc/php-fpm.d/www.conf配置文件指定用户与组,并开启状态页面用于监控服务状态。
```plain
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时区
```plain
vim /etc/php.ini
...
date.timezone ="Asia/shanghai" --指定时区
```
### 部署Nginx
通过nginx官方仓库安装软件包,并开启nginx状态页面功能
```plain
#创建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 文件(提前做好配置文件备份)
```plain
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;
}
}
```
```plain
#启动服务&设置服务随机自启
systemctl restart nginx php-fpm && systemctl enable nginx php-fpm
```
访问nginx状态页面:[http://server_ip/status](http://server_ip/status)
访问php-fpm状态页面:[http://server_ip/php_status](http://server_ip/php_status)
测试nginx与php之间的连接
```plain
vim /usr/share/nginx/html/phpinfo.php
```
访问:[http://server_ip/phpinfo.php](http://server_ip/phpinfo.php)
测试php与mysql协同方式一:
```plain
vim /usr/share/nginx/html/mysql.php
```
测试php与mysql协同方式二:
```plain
```
访问测试:[http://server_ip/mysql.php](http://server_ip/mysql.php)
### 上线Discuz项目
上线Discuz项目到nginx网页目录:/usr/share/nginx/html/
```plain
#解压项目代码
cd /usr/share/nginx/html/
#解压项目
unzip Discuz_X3.3_SC_UTF8.zip
#将项目文件移动至html
mv upload/* .
#修改项目文件归属为nginx
chown -R nginx:nginx .
```
访问Discuz:[http://server_ip/](http://server_ip/)
| |
| --- |
| |
| |
创建数据库并授权discuz用户
```plain
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源)
yum -y install redis
安装php-pecl-redis扩展模块(该模块用于php连接redis)
可提前过滤对应软件包:yum list|grep php|grep redis
```plain
#安装(需要epel源)
yum -y install php-pecl-redis.x86_64
#重启php-fpm
systemctl restart php-fpm
```
查看模块
php -m 查看所有php模块,可结合grep过滤
```plain
php -m | grep redis
redis
```
再次刷新页面可看到以支持Redis
但是现在Discuz与Redis之间还没有建立连接,接下来配置Discuz连接Redis。
修改文件:/usr/share/nginx/html/config/config_global.php
```plain
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程序
systemctl start redis && systemctl enable redis
再次刷新页面可看到Discuz已经成功与Redis连接,并且已经利用Redis存储了数据。
当Redis为论坛加速后,用户在访问速度上会大大的提升。
如需查看Redis数据,可通过命令行进入数据库查看:
```plain
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/](https://matomo.org/)
### Matomo部署
安装Matomo要求服务器至少满足以下条件:
支持 Apache、Nginx
PHP 版本至少是 5.5.9
MySQL\MariaDB版本至少是 5.5 或以上
检查nginx、php、MySQL版本是否符合安装条件
```plain
#zabbix agent端查看
mysql --version
php --version
```
默认情况下系统自带的php版本过低,需要对php进行升级, php高版本的yum源地址,有两部分,其中一部分是fedora源,另外一部分来自webtatic源。
```plain
#安装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文件指定时区
```plain
vim /etc/php.ini
...
date.timezone ="Asia/shanghai" --在文件最后增加
```
修改/etc/php-fpm.d/www.conf文件指定用户与组,并开启状态页面。
```plain
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
```plain
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站点目录并上传项目
```plain
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/](http://web.matomo.com/)
| **登陆后可修改页面语言为:****简体中文** |
| :--- |
| |
Matomo将检查以确保您的服务器符合Matomo的要求。如果一切正常,您会看到一长串这样的清单:
| |
| --- |
| 按照提示删除多余文件后,点击**下一步** |
为matomo创建数据库以及连接数据库用户
```plain
#创键库并授权用户
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客户端主机操作
```plain
#创建目录,然后将脚本上传到该目录
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
```
```plain
#修改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端操作
```plain
#服务端下载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进程管理程序,我们也需要监控它的状态。
```plain
#查看php-fpm配置文件确保已经开启状态页面功能(搜索:status)
vim /etc/php-fpm.d/www.conf
...
121 pm.status_path = /php_status
```
```plain
#查看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](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类似
```plain
#上传脚本到/etc/zabbix/script路径并添加执行权限
chmod +x phpfpm_status.sh
```
```plain
#创建自定义监控项文件
cat /etc/zabbix/zabbix_agentd.d/phpfpm_status.conf
UserParameter=phpfpm_status[*],/bin/bash /etc/zabbix/script/phpfpm_status.sh "$1"
```
```plain
#重启zabbix agent服务
systemctl restart zabbix-agent
```
Zabbix Server获取监控项数据
```plain
#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类似
```plain
#上传脚本到/etc/zabbix/script路径并添加执行权限
chmod +x redis_status.sh
```
```plain
#创建自定义监控项文件
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
```
```plain
#重启zabbix agent服务
systemctl restart zabbix-agent
```
接下来创建模板、应用集、监控项、绑定模板与前边的nginx一样,此处不在重复演示,最终效果如下图:
### 自定义MySQL监控
percona官网: [https://www.percona.com/](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](https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm)
安装percona
```plain
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界面通过 **配置→模板→导入** 将模板文件导入。
提示:默认会出现如上图问题,应为percona提供的监控模板由于版本2.0.9过低,而zabbix4.0以后版本就不支持2.0以下的模板,需要使高版本的模板。
使用更高版本模板导入:
模板的规则默认即可,点击 **导入** 可看到已导入成功
通过**配置→模板**查看(搜索:mysql)具体信息
配置percona连接数据库
percona监控插件是php编写,通过php连接mysql数据库来获取相关的数据,需要为percona指定连接数据库的用户与密码。
```plain
#修改/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用户没有密码,则留空即可
```
```plain
#重启zabbix agent服务
systemctl restart zabbix-agent
```
zabbix server 端命令行取值(具体值可从/etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf监控项文件中查看)
```plain
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](http://www.ireasoning.com/download.shtml)
**通俗总结:**
+ 想要通过Zabbix监控打印机、路由器、交换机等设备,需要通过SNMP协议获取数据
+ SNMP获取的数据来源需要从MIB信息管理库中进行获取
+ OID就是在MIB库中代表每一个可以监控的对象指标(例如:内存、CPU、网络等)
1)部署SNMP监控
本实验采用Linux系统模拟网络设备来演示SNMP监控,企业中需要网路工程师开启设备的SNMP功能即可。
准备一台新的虚拟机(或者node01)充当网络设备,安装SNMP服务
```plain
#安装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安装工具取值
```plain
#安装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
```plain
#安装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监控
```plain
#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](https://www.zabbix.com/documentation/5.0/zh/manual/config/items/itemtypes/jmx_monitoring)
启动Tomcat服务(Tomcat无需安装,直接启动服务)
```plain
#通过脚本启动服务
/usr/local/tomcat/bin/startup.sh
netstat -ntlp | grep java
```
浏览器访问测试:[http://server_ip:8080](http://server_ip:8080/)
2)zabbix server安装zabbix-java-gateway程序用于监控Java应用
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文件
```plain
vim /etc/zabbix/zabbix_java_gateway.conf
...
35 START_POLLERS=5 --取消注释,定义开启的java_gateway工作线程数量(大于客户端数量)
```
修改zabbix server配置文件指定zabbix-java-gateway地址
```plain
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
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)
```plain
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地址
```plain
vi /etc/zabbix/zabbix_agentd.conf
...
Server=server_ip #指定zabbix server地址
```
启动zabbix agent服务
```plain
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配置文件开启自动注册模式
```plain
vi /etc/zabbix/zabbix_agentd.conf
...
#指定自动注册的主机IP
160 ServerActive=192.168.0.14
#该参数用于让zabbix server区分每一个agent节点(显示在监控列表中的名称)
171 Hostname=node02
#可选参数:主机源数据方便zabbix server在注册时进行认证(名称自定义)
190 # HostMetadata=linux #取消注释
```
```plain
#重启zabbix agent服务
systemctl restart zabbix-agent
```
---
node03修改zabbix agent配置文件开启主动模式
```plain
vi /etc/zabbix/zabbix_agentd.conf
...
#指定自动注册的主机IP
160 ServerActive=192.168.0.14
#该参数用于让zabbix server区分每一个agent节点(显示在监控列表中的名称)
171 Hostname=node03
#可选参数:主机源数据方便zabbix server在注册时进行认证(名称自定义)
190 # HostMetadata=linux #取消注释
```
```plain
#重启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
```plain
#修改主机名
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
```plain
#修改主机名
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 proxy能否创建自动发现或者自动注册?
# 第六章:Zabbix可视化
### 简单图表
Zabbix提供了简单的数据图表,用户无需进行任何配置即可查看指标数据,在**监控 → 主机→最新数据**,然后单击相应监控项目的图形即可查看:
### 自定义图表
顾名思义,自定义图表提供自定义功能,如果你想更改图表样式或线条的显示方式或比较多个项目,你需要一个自定义图表。
要创建自定义图表,转到 **配置→主机**(或模板)单击所需主机或模板旁边的行中的 **图形**在图表屏幕中单击 **创建图表**
| |
| --- |
| |
| |
| **范围** | **描述** |
| :--- | :--- |
| 名称 | 唯一的图形名称,为了见名之意,通常按照具体监控类型命名。 |
| 宽 | 图形宽度(仅用于预览和饼图/分解图) |
| 高 | 图形高度 |
| 查看图例 | 以显示图形 |
| 查看工作时间 | 非工作时间将以灰色背景显示(不适用于饼图和分解饼图) |
| 查看触发器 | 如果监控项设置了触发器,会在图形中以黑色线条显示触发器(不适用于饼图和分解饼图) |
每次的调试都可以通过图形里的**预览**进行查看
当配置完成后点击**添加/更新**以完成创建。
查看图形数据方式可通过 **监测→主机** 在主机信息内的**图形**页面查看
| |
| --- |
| |
创建nginx状态图形
| |
| --- |
| 通过**检测→主机→图形**查看 |
| |
### Ad-hoc 临时图
一个**简单的图表**适合查看一个指标数据,而**自定义图表**提供了可以按照自己的需求去自建图形,但两者都不允许快速创建多个项目的比较图表,为了解决这个问题,从 Zabbix 2.4 开始,可以以非常快速的方式为多个项目创建临时图。
要创建临时图,请执行以下操作:
+ 转到 **监测→最新数据**
+ 勾选需要进行比较的监控项
+ 最下方通过 **显示堆叠图 **或 **显示图 **绘图
| |
| --- |
| |
提示:Ad-hoc可以快速为项目创建临时的对比图,无法永久保存。
### 聚合图形
聚合图形的用途是可以将多个图形聚合在一个图形中展示,在 **监测 → 聚合图形** 可以配置、管理、查看Zabbix 聚合图形,如果要创建新的聚合图形,点击屏幕右上角的 **创建聚合图形**(Create screen)也可从XML文件导入现成的局和图形。
| |
| --- |
| |
| |
| |
| |
本案例将前边的`cpu平均负载`与`nginx状态`创建成了一个聚合图形,如上图:
### 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** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | timeperiodid | BIGINT | True | True | 20 | 时间窗口ID |
| False | timeperiod_type | INT | True | False | 11 | 详情如下: |
| False | every | INT | True | False | 11 | 每多少单位时间执行一次 |
| False | month | INT | True | False | 11 | 月份 |
| False | dayofweek | INT | True | False | 11 | 星期 |
| False | day | INT | True | False | 11 | 日子 |
| False | start_time | INT | True | False | 11 | 开始时间 |
| False | period | INT | True | False | 11 | 窗口时间长度,秒 |
| False | start_date | INT | True | False | 11 | 开始日期,用于单次执行 |
**timeperiod_type****:目前支持4种时间窗口**
define(‘TIMEPERIOD_TYPE_ONETIME’,0); //单次执行
define(‘TIMEPERIOD_TYPE_HOURLY’,1);//按小时
define(‘TIMEPERIOD_TYPE_DAILY’,2);//按天算
define(‘TIMEPERIOD_TYPE_WEEKLY’,3);//每周
define(‘TIMEPERIOD_TYPE_MONTHLY’,4);//按月算
define(‘TIMEPERIOD_TYPE_YEARLY’,5); //按年算,目前不支持
1. trends表
趋势表,浮点型,每个小时统计数
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | itemid | BIGINT | True | True | 20 | 监控项ID |
| True | clock | INT | True | True | 11 | 时间 |
| False | num | INT | True | False | 11 | 已经收集的数据量 |
| False | value_min | DOUBLE | True | False | 16 | 该监控项的最小值 |
| False | value_avg | DOUBLE | True | False | 16 | 该监控项的平均值 |
| False | value_max | DOUBLE | True | False | 16 | 该监控项的最大值 |
1. trends_uint表
趋势长整型表,每个小时。与items表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | itemid | BIGINT | True | True | 20 | 监控项ID |
| True | clock | INT | True | True | 11 | 趋势时刻 |
| False | num | INT | True | False | 1 | 第几个趋势值 |
| False | value_min | BIGINT | True | False | 20 | 趋势最小值 |
| False | value_avg | BIGINT | True | False | 20 | 趋势平均值 |
| False | value_max | BIGINT | True | False | 20 | 趋势最大值 |
1. trigger_depends表
触发器依赖表。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | triggerdepid | BIGINT | True | True | 20 | 触发器依赖ID |
| False | triggerid_down | BIGINT | True | False | 20 | 依赖的触发器ID |
| False | triggerid_up | BIGINT | True | False | 20 | 被依赖的触发器 |
1. trigger_discovery表
触发器自动发现表,与triggers表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| False | triggerid | BIGINT | True | False | 20 | 触发器ID |
| False | parent_triggerid | BIGINT | True | False | 20 | 父触发器ID |
1. trigger_tag表(空)
触发器标签标识信息记录表,与triggers表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | triggertagid | BIGINT | True | False | 20 | 触发器标识ID |
| False | triggerid | BIGINT | True | False | 20 | 触发器ID |
| False | tag | VARCHAR | True | False | 255 | 标签标识 |
| False | value | VARCHAR | True | False | 255 | 值 |
1. triggers表
触发器实例表。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | triggerid | BIGINT | True | True | 20 | 触发器ID |
| False | expression | VARCHAR | True | False | 2048 | 触发器表达式 |
| False | description | VARCHAR | True | False | 255 | 触发器描述 |
| False | url | VARCHAR | True | False | 255 | url地址 |
| False | status | INT | True | False | 11 | 0 表示Trigger is active1表示r is disabled |
| False | value | INT | True | False | 11 | 0表示OK1表示PROBLEM2表示UNKNOWN |
| False | priority | INT | True | False | 11 | 0表示Not classified1表示 Information2表示Warning3表示Average4表示High5表示 Disaster |
| False | lastchange | INT | True | False | 11 | 最后更改时间 |
| False | comments | TEXT | True | False | 0 | 注释 |
| False | error | VARCHAR | True | False | 2048 | 错误信息 |
| False | templateid | BIGINT | False | False | 20 | 模板ID |
| False | type | INT | True | False | 11 | 0表示Normal event generation1表示 Generate multiple PROBLEM event |
| False | recovery_mode | INT | True | False | 11 | 恢复模式 |
| False | recovery_expression | VARCHAR | True | False | 2048 | 恢复表达式 |
| False | correlation_mode | INT | True | False | 11 | 关联模式 |
| False | correlation_mode | VARCHAR | True | False | 255 | 关联标识 |
| False | manual_close | INT | True | False | 11 | 是否手动关闭 |
1. users表
用户实例表,用于记录单个用户信息。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | userid | BIGINT | True | True | 20 | 用户ID |
| False | alias | VARCHAR | True | False | 100 | 用户别名,用于显示 |
| False | name | VARCHAR | True | False | 100 | 用户名 |
| False | surname | VARCHAR | True | False | 100 | 超级用户 |
| False | passwd | CHAR | True | False | 32 | 密码 |
| False | url | VARCHAR | True | False | 255 | 登录后的URL |
| False | autologin | INT | True | False | 11 | 是否自动登录 |
| False | autologout | INT | True | False | 32 | 是否自动登出 |
| False | lang | VARCHAR | True | False | 5 | 使用的语言,需要安装 |
| False | refresh | INTEGER | True | False | 32 | 自动刷新间隔,单位秒 |
| False | type | INTEGER | True | False | 11 | 用户类型,分为超级管理员、普通管理员和普通用户define(‘USER_TYPE_ZABBIX_USER’, 1);define(‘USER_TYPE_ZABBIX_ADMIN’, 2);define(‘USER_TYPE_SUPER_ADMIN’, 3); |
| False | theme | VARCHAR | True | False | 128 | 使用的主题 |
| False | attempt_failed | INTEGER | True | False | 11 | 尝试失败的次数 |
| False | attempt_ip | VARCHAR | True | False | 39 | 尝试IP |
| False | attempt_clock | INTEGER | True | False | 11 | 最后尝试时间 |
| False | rows_per_page | INTEGER | True | False | 11 | 每页显示多少行(或记录) |
1. users_groups表
用户-用户组关联表。与usrgrp、users表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | id | BIGINT | True | True | 20 | 关联ID |
| False | usrgrpid | BIGINT | True | False | 20 | 用户组ID |
| False | userid | BIGINT | True | False | 20 | 用户ID |
1. usrgrp表
用户组表,支持用户组状态和debug模式配置。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | usrgrpid | BIGINT | True | True | 20 | 用户组ID |
| False | name | VARCHAR | True | False | 64 | 用户组名称 |
| False | gui_access | INT | True | False | 11 | 详情如下: |
| False | users_status | INT | True | False | 11 | 0表示启用,1表示disable |
| False | debug_mode | INT | True | False | 11 | 是否使用debug模式1表示开启,0表示未开启 |
**Gui_access:**界面访问:
define(‘GROUP_GUI_ACCESS_SYSTEM’, 0);
define(‘GROUP_GUI_ACCESS_INTERNAL’, 1);
define(‘GROUP_GUI_ACCESS_DISABLED’, 2);
System default- use default authentication
Internal - use Zabbix authentication. Ignored if HTTP authentication is set
Disabled - access to Zabbix GUI is forbidden
1. valuemaps表
值映射组表,用于记录单个映射实例,不包含映射具体的值(具体值在mapping表中记录)
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | valuemapid | BIGINT | True | True | 20 | 值映射ID |
| False | name | VARCHAR | True | False | 64 | 映射组名称 |
1. widget表
仪表盘面板工具配置信息记录表,与dashboard表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | widgetid | BIGINT | True | True | 20 | 工具ID |
| False | dashboardid | BIGINT | True | False | 20 | 仪表盘ID |
| False | type | VARCHAR | True | False | 255 | 工具类型 |
| False | name | VARCHAR | True | False | 255 | 工具名称 |
| 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 | 高度,像素 |
1. widget_field表
仪表盘面板工具域配置信息记录表,与dashboard、widget、groups、hosts、items、graphs、sysmaps表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | widget_fieldid | BIGINT | True | True | 20 | 工具域ID |
| True | widgetid | BIGINT | True | True | 20 | 工具ID |
| False | type | INT | True | False | 11 | 工具类型 |
| False | name | VARCHAR | True | False | 255 | 工具名称 |
| False | value_int | BIGINT | True | False | 11 | 整数类型的值 |
| False | value_str | BIGINT | True | False | 255 | 字符串类型的值 |
| False | value_groupid | BIGINT | True | False | 20 | 主机组ID的值 |
| False | value_hostid | BIGINT | True | False | 20 | 主机ID的值 |
| False | value_itemid | BIGINT | True | False | 20 | 监控项ID的值 |
| False | value_graphid | BIGINT | True | False | 20 | 图形实例ID值 |
| False | value_sysmapid | BIGINT | True | False | 20 | 系统地图ID值 |
更加详细内容请参考:[https://www.zabbix.com/documentation/5.0/zh/manual/appendix/performance_tuning](https://www.zabbix.com/documentation/5.0/zh/manual/appendix/performance_tuning))
# 第一章:监控概念及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.jiankongbao.com/)博瑞:[https://www.bonree.com/](https://www.bonree.com/)
### Zabbix介绍
Zabbix 是C语言编写的企业级开源免费的分布式监控解决方案,可监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康状况和完整性。
Zabbix 使用灵活的报警通知机制,允许用户为几乎任何事件配置基于电子邮件的警报。这允许对服务器问题做出快速反应。
Zabbix 可通过存储的数据提供出色的报告和数据可视化功能。
官网地址:[https://www.zabbix.com/](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主机操作
```plain
#安装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
```
```plain
#启用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
添加SCL仓库(提供zabbix前端所需的一些的软件包)
vim CentOS-SCLo-scl.repo
[sclo]
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/sclo/x86_64/rh
enabled=1
gpgcheck=0
#安装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](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客户端程序。
```plain
#下载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/](https://share.zabbix.com/)(也可通过界面左侧配置栏的**Share**直达)
友情提示:大部分监控模板已经在zabbix中提供,并且能够满足大部分监控需求。
### 新建模板
模版可以对监控项、触发器、图形等进行归类,当一个模版链接到一个主机后,主机会继承这个模版中的所有功能。
| **配置****(Configuration) → ****模版****(Templates)****创建模版****(Create template)** |
| :--- |
| |
所有必填字段以红色星标标示。
模版名称:名称自定义,不支持中文。
群组:模版必须属于一个组,可以自建,可以使用zabbix提供的组。
### 新建应用集
模板中的应用集我们可以理解为监控项的分组,可以将相同类型的监控项分配到同一个应用集内。
**配置 → 模板** 找到对应的模板选择 **应用集** → **创建应用集**
名称:自定义,支持中文。
### 新建监控项
监控项是Zabbix中获得数据的基础,没有监控项,就没有数据。
**配置 → 模板** 页面查找到我们自建的模板,点击模板中的 `监控项`然后 **创建监控项**
名称:名称自定义,支持中文。
CPU 1、5、15分钟平均负载监控项key
```plain
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中文乱码
安装并更新字体
```plain
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内置的用户自定义告警消息模板,用于指定发送告警的具体消息,将该内容复制到对应的参数内
```plain
故障告警:{EVENT.NAME}
告警主机: {HOST.NAME}
主机地址: {HOST.IP}
监控项目: {ITEM.NAME}
当前取值: {ITEM.LASTVALUE}
告警等级: {TRIGGER.SEVERITY}
告警时间: {EVENT.DATE}-{EVENT.TIME}
事件ID: {EVENT.ID}
```
接下来配置告警恢复操作,点击恢复操作内的 `添加`
下边是zabbix内置的用户自定义告警消息变量,用于指定故障恢复时,发送告警的具体消息,将该内容复制到对应的参数内
```plain
故障恢复:{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/](https://work.weixin.qq.com/)
在`应用管理`中查看zabbix应用ID及secret(密钥)
| |
| --- |
| |
| |
在`我的企业`中查看企业ID
在`通讯录`中查看部门ID及个人账号ID
登录微信企业接口调试网址测试zabbix应用能否访问企业微信:
[https://open.work.weixin.qq.com/wwopen/devtool/interface/combine](https://open.work.weixin.qq.com/wwopen/devtool/interface/combine)
zabbix应用ID:1000039
应用密钥:RdqTtbydSEoef5TxUEKbheHwoszwJklVNYCFpb7Rwes
企业ID:wwa78d6212da74fd51
个人账号ID: Yesir
部门ID:8
### 配置报警脚本
zabbix要求故障报警脚本必须放在指定路径,通过下边命令过滤配报警脚本的存放路径
```plain
egrep -v '^$|#' /etc/zabbix/zabbix_server.conf
...
AlertScriptsPath=/usr/lib/zabbix/alertscripts //存放报警脚本路径
```
将脚本放至该路径添加执行权限
```plain
cd /usr/lib/zabbix/alertscripts/
chmod +x wechat.py
```
修改脚本添加企业微信信息
```plain
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。
```plain
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
```
执行脚本测试:’收件人的微信账号‘ '信息标题' '信息内容'
```plain
cd /usr/lib/zabbix/alertscripts/
./wechat.py Yesir test hello
```
测试时如果出现IP地址不信任的问题,例如下方提示:
```plain
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/](https://work.weixin.qq.com/)
2)点击`应用管理`找到zabbix应用
3)在页面最下方配置`企业可信IP`(把请求返回的ip设置到可信IP中,注意:IP每天都会变动,所以每天都要重新配置到企业可信IP里)
### 创建报警媒介
媒介是Zabbix中用于发送告警的方式,可以配置多种媒介类型,如:电子邮件、短信、自定义报警脚本、Webhook。
媒介类型在 **管理** → **媒介类型** 中进行配置,点击 **创建媒介类型** 按钮来创建一个新的媒体类型。
下边三个脚本特定参数是zabbix内置,用于指定在发送消息时的收件人、消息主题、消息内容
```plain
{ALERT.SENDTO} #收件人
{ALERT.SUBJECT} #消息主题
{ALERT.MESSAGE} #消息内容
```
自定义消息模板的步骤:
+ 在 **消息模板** (Message template) 选项卡中,点击 `添加` 填写所需的 `消息类型``主题``消息`
下边是zabbix内置的问题消息模板,用于指定发送告警的具体消息。
```plain
告警信息:{EVENT.NAME}
告警主机: {HOST.NAME}
主机地址: {HOST.IP}
监控项目: {ITEM.NAME}
当前取值: {ITEM.LASTVALUE}
告警等级: {TRIGGER.SEVERITY}
告警时间: {EVENT.DATE}-{EVENT.TIME}
事件ID: {EVENT.ID}
```
完成后点击 **添加** 保存消息模板。
配置 **问题恢复** 消息
下边是zabbix内置的问题恢复消息模板,用于指定故障恢复时,发送告警的具体消息。
```plain
故障恢复:{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负载来触发这个告警动作。
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进程管理程序。
```plain
#安装Mariadb-server及相关依赖
yum install mariadb mariadb-server php php-fpm php-mysql php-gd -y
```
修改 /etc/my.cnf 文件支持中文
```plain
vim /etc/my.cnf
[mysqld]
character-set-server=utf8 --手动添加
#启动服务并设置服务随机自启
systemctl start mariadb && systemctl enable mariadb
```
修改/etc/php-fpm.d/www.conf配置文件指定用户与组,并开启状态页面用于监控服务状态。
```plain
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时区
```plain
vim /etc/php.ini
...
date.timezone ="Asia/shanghai" --指定时区
```
### 部署Nginx
通过nginx官方仓库安装软件包,并开启nginx状态页面功能
```plain
#创建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 文件(提前做好配置文件备份)
```plain
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;
}
}
```
```plain
#启动服务&设置服务随机自启
systemctl restart nginx php-fpm && systemctl enable nginx php-fpm
```
访问nginx状态页面:[http://server_ip/status](http://server_ip/status)
访问php-fpm状态页面:[http://server_ip/php_status](http://server_ip/php_status)
测试nginx与php之间的连接
```plain
vim /usr/share/nginx/html/phpinfo.php
```
访问:[http://server_ip/phpinfo.php](http://server_ip/phpinfo.php)
测试php与mysql协同方式一:
```plain
vim /usr/share/nginx/html/mysql.php
```
测试php与mysql协同方式二:
```plain
```
访问测试:[http://server_ip/mysql.php](http://server_ip/mysql.php)
### 上线Discuz项目
上线Discuz项目到nginx网页目录:/usr/share/nginx/html/
```plain
#解压项目代码
cd /usr/share/nginx/html/
#解压项目
unzip Discuz_X3.3_SC_UTF8.zip
#将项目文件移动至html
mv upload/* .
#修改项目文件归属为nginx
chown -R nginx:nginx .
```
访问Discuz:[http://server_ip/](http://server_ip/)
| |
| --- |
| |
| |
创建数据库并授权discuz用户
```plain
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源)
yum -y install redis
安装php-pecl-redis扩展模块(该模块用于php连接redis)
可提前过滤对应软件包:yum list|grep php|grep redis
```plain
#安装(需要epel源)
yum -y install php-pecl-redis.x86_64
#重启php-fpm
systemctl restart php-fpm
```
查看模块
php -m 查看所有php模块,可结合grep过滤
```plain
php -m | grep redis
redis
```
再次刷新页面可看到以支持Redis
但是现在Discuz与Redis之间还没有建立连接,接下来配置Discuz连接Redis。
修改文件:/usr/share/nginx/html/config/config_global.php
```plain
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程序
systemctl start redis && systemctl enable redis
再次刷新页面可看到Discuz已经成功与Redis连接,并且已经利用Redis存储了数据。
当Redis为论坛加速后,用户在访问速度上会大大的提升。
如需查看Redis数据,可通过命令行进入数据库查看:
```plain
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/](https://matomo.org/)
### Matomo部署
安装Matomo要求服务器至少满足以下条件:
支持 Apache、Nginx
PHP 版本至少是 5.5.9
MySQL\MariaDB版本至少是 5.5 或以上
检查nginx、php、MySQL版本是否符合安装条件
```plain
#zabbix agent端查看
mysql --version
php --version
```
默认情况下系统自带的php版本过低,需要对php进行升级, php高版本的yum源地址,有两部分,其中一部分是fedora源,另外一部分来自webtatic源。
```plain
#安装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文件指定时区
```plain
vim /etc/php.ini
...
date.timezone ="Asia/shanghai" --在文件最后增加
```
修改/etc/php-fpm.d/www.conf文件指定用户与组,并开启状态页面。
```plain
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
```plain
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站点目录并上传项目
```plain
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/](http://web.matomo.com/)
| **登陆后可修改页面语言为:****简体中文** |
| :--- |
| |
Matomo将检查以确保您的服务器符合Matomo的要求。如果一切正常,您会看到一长串这样的清单:
| |
| --- |
| 按照提示删除多余文件后,点击**下一步** |
为matomo创建数据库以及连接数据库用户
```plain
#创键库并授权用户
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客户端主机操作
```plain
#创建目录,然后将脚本上传到该目录
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
```
```plain
#修改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端操作
```plain
#服务端下载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进程管理程序,我们也需要监控它的状态。
```plain
#查看php-fpm配置文件确保已经开启状态页面功能(搜索:status)
vim /etc/php-fpm.d/www.conf
...
121 pm.status_path = /php_status
```
```plain
#查看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](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类似
```plain
#上传脚本到/etc/zabbix/script路径并添加执行权限
chmod +x phpfpm_status.sh
```
```plain
#创建自定义监控项文件
cat /etc/zabbix/zabbix_agentd.d/phpfpm_status.conf
UserParameter=phpfpm_status[*],/bin/bash /etc/zabbix/script/phpfpm_status.sh "$1"
```
```plain
#重启zabbix agent服务
systemctl restart zabbix-agent
```
Zabbix Server获取监控项数据
```plain
#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类似
```plain
#上传脚本到/etc/zabbix/script路径并添加执行权限
chmod +x redis_status.sh
```
```plain
#创建自定义监控项文件
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
```
```plain
#重启zabbix agent服务
systemctl restart zabbix-agent
```
接下来创建模板、应用集、监控项、绑定模板与前边的nginx一样,此处不在重复演示,最终效果如下图:
### 自定义MySQL监控
percona官网: [https://www.percona.com/](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](https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm)
安装percona
```plain
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界面通过 **配置→模板→导入** 将模板文件导入。
提示:默认会出现如上图问题,应为percona提供的监控模板由于版本2.0.9过低,而zabbix4.0以后版本就不支持2.0以下的模板,需要使高版本的模板。
使用更高版本模板导入:
模板的规则默认即可,点击 **导入** 可看到已导入成功
通过**配置→模板**查看(搜索:mysql)具体信息
配置percona连接数据库
percona监控插件是php编写,通过php连接mysql数据库来获取相关的数据,需要为percona指定连接数据库的用户与密码。
```plain
#修改/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用户没有密码,则留空即可
```
```plain
#重启zabbix agent服务
systemctl restart zabbix-agent
```
zabbix server 端命令行取值(具体值可从/etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf监控项文件中查看)
```plain
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](http://www.ireasoning.com/download.shtml)
**通俗总结:**
+ 想要通过Zabbix监控打印机、路由器、交换机等设备,需要通过SNMP协议获取数据
+ SNMP获取的数据来源需要从MIB信息管理库中进行获取
+ OID就是在MIB库中代表每一个可以监控的对象指标(例如:内存、CPU、网络等)
1)部署SNMP监控
本实验采用Linux系统模拟网络设备来演示SNMP监控,企业中需要网路工程师开启设备的SNMP功能即可。
准备一台新的虚拟机(或者node01)充当网络设备,安装SNMP服务
```plain
#安装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安装工具取值
```plain
#安装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
```plain
#安装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监控
```plain
#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](https://www.zabbix.com/documentation/5.0/zh/manual/config/items/itemtypes/jmx_monitoring)
启动Tomcat服务(Tomcat无需安装,直接启动服务)
```plain
#通过脚本启动服务
/usr/local/tomcat/bin/startup.sh
netstat -ntlp | grep java
```
浏览器访问测试:[http://server_ip:8080](http://server_ip:8080/)
2)zabbix server安装zabbix-java-gateway程序用于监控Java应用
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文件
```plain
vim /etc/zabbix/zabbix_java_gateway.conf
...
35 START_POLLERS=5 --取消注释,定义开启的java_gateway工作线程数量(大于客户端数量)
```
修改zabbix server配置文件指定zabbix-java-gateway地址
```plain
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
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)
```plain
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地址
```plain
vi /etc/zabbix/zabbix_agentd.conf
...
Server=server_ip #指定zabbix server地址
```
启动zabbix agent服务
```plain
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配置文件开启自动注册模式
```plain
vi /etc/zabbix/zabbix_agentd.conf
...
#指定自动注册的主机IP
160 ServerActive=192.168.0.14
#该参数用于让zabbix server区分每一个agent节点(显示在监控列表中的名称)
171 Hostname=node02
#可选参数:主机源数据方便zabbix server在注册时进行认证(名称自定义)
190 # HostMetadata=linux #取消注释
```
```plain
#重启zabbix agent服务
systemctl restart zabbix-agent
```
---
node03修改zabbix agent配置文件开启主动模式
```plain
vi /etc/zabbix/zabbix_agentd.conf
...
#指定自动注册的主机IP
160 ServerActive=192.168.0.14
#该参数用于让zabbix server区分每一个agent节点(显示在监控列表中的名称)
171 Hostname=node03
#可选参数:主机源数据方便zabbix server在注册时进行认证(名称自定义)
190 # HostMetadata=linux #取消注释
```
```plain
#重启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
```plain
#修改主机名
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
```plain
#修改主机名
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 proxy能否创建自动发现或者自动注册?
# 第六章:Zabbix可视化
### 简单图表
Zabbix提供了简单的数据图表,用户无需进行任何配置即可查看指标数据,在**监控 → 主机→最新数据**,然后单击相应监控项目的图形即可查看:
### 自定义图表
顾名思义,自定义图表提供自定义功能,如果你想更改图表样式或线条的显示方式或比较多个项目,你需要一个自定义图表。
要创建自定义图表,转到 **配置→主机**(或模板)单击所需主机或模板旁边的行中的 **图形**在图表屏幕中单击 **创建图表**
| |
| --- |
| |
| |
| **范围** | **描述** |
| :--- | :--- |
| 名称 | 唯一的图形名称,为了见名之意,通常按照具体监控类型命名。 |
| 宽 | 图形宽度(仅用于预览和饼图/分解图) |
| 高 | 图形高度 |
| 查看图例 | 以显示图形 |
| 查看工作时间 | 非工作时间将以灰色背景显示(不适用于饼图和分解饼图) |
| 查看触发器 | 如果监控项设置了触发器,会在图形中以黑色线条显示触发器(不适用于饼图和分解饼图) |
每次的调试都可以通过图形里的**预览**进行查看
当配置完成后点击**添加/更新**以完成创建。
查看图形数据方式可通过 **监测→主机** 在主机信息内的**图形**页面查看
| |
| --- |
| |
创建nginx状态图形
| |
| --- |
| 通过**检测→主机→图形**查看 |
| |
### Ad-hoc 临时图
一个**简单的图表**适合查看一个指标数据,而**自定义图表**提供了可以按照自己的需求去自建图形,但两者都不允许快速创建多个项目的比较图表,为了解决这个问题,从 Zabbix 2.4 开始,可以以非常快速的方式为多个项目创建临时图。
要创建临时图,请执行以下操作:
+ 转到 **监测→最新数据**
+ 勾选需要进行比较的监控项
+ 最下方通过 **显示堆叠图 **或 **显示图 **绘图
| |
| --- |
| |
提示:Ad-hoc可以快速为项目创建临时的对比图,无法永久保存。
### 聚合图形
聚合图形的用途是可以将多个图形聚合在一个图形中展示,在 **监测 → 聚合图形** 可以配置、管理、查看Zabbix 聚合图形,如果要创建新的聚合图形,点击屏幕右上角的 **创建聚合图形**(Create screen)也可从XML文件导入现成的局和图形。
| |
| --- |
| |
| |
| |
| |
本案例将前边的`cpu平均负载`与`nginx状态`创建成了一个聚合图形,如上图:
### 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** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | timeperiodid | BIGINT | True | True | 20 | 时间窗口ID |
| False | timeperiod_type | INT | True | False | 11 | 详情如下: |
| False | every | INT | True | False | 11 | 每多少单位时间执行一次 |
| False | month | INT | True | False | 11 | 月份 |
| False | dayofweek | INT | True | False | 11 | 星期 |
| False | day | INT | True | False | 11 | 日子 |
| False | start_time | INT | True | False | 11 | 开始时间 |
| False | period | INT | True | False | 11 | 窗口时间长度,秒 |
| False | start_date | INT | True | False | 11 | 开始日期,用于单次执行 |
**timeperiod_type****:目前支持4种时间窗口**
define(‘TIMEPERIOD_TYPE_ONETIME’,0); //单次执行
define(‘TIMEPERIOD_TYPE_HOURLY’,1);//按小时
define(‘TIMEPERIOD_TYPE_DAILY’,2);//按天算
define(‘TIMEPERIOD_TYPE_WEEKLY’,3);//每周
define(‘TIMEPERIOD_TYPE_MONTHLY’,4);//按月算
define(‘TIMEPERIOD_TYPE_YEARLY’,5); //按年算,目前不支持
1. trends表
趋势表,浮点型,每个小时统计数
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | itemid | BIGINT | True | True | 20 | 监控项ID |
| True | clock | INT | True | True | 11 | 时间 |
| False | num | INT | True | False | 11 | 已经收集的数据量 |
| False | value_min | DOUBLE | True | False | 16 | 该监控项的最小值 |
| False | value_avg | DOUBLE | True | False | 16 | 该监控项的平均值 |
| False | value_max | DOUBLE | True | False | 16 | 该监控项的最大值 |
1. trends_uint表
趋势长整型表,每个小时。与items表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | itemid | BIGINT | True | True | 20 | 监控项ID |
| True | clock | INT | True | True | 11 | 趋势时刻 |
| False | num | INT | True | False | 1 | 第几个趋势值 |
| False | value_min | BIGINT | True | False | 20 | 趋势最小值 |
| False | value_avg | BIGINT | True | False | 20 | 趋势平均值 |
| False | value_max | BIGINT | True | False | 20 | 趋势最大值 |
1. trigger_depends表
触发器依赖表。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | triggerdepid | BIGINT | True | True | 20 | 触发器依赖ID |
| False | triggerid_down | BIGINT | True | False | 20 | 依赖的触发器ID |
| False | triggerid_up | BIGINT | True | False | 20 | 被依赖的触发器 |
1. trigger_discovery表
触发器自动发现表,与triggers表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| False | triggerid | BIGINT | True | False | 20 | 触发器ID |
| False | parent_triggerid | BIGINT | True | False | 20 | 父触发器ID |
1. trigger_tag表(空)
触发器标签标识信息记录表,与triggers表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | triggertagid | BIGINT | True | False | 20 | 触发器标识ID |
| False | triggerid | BIGINT | True | False | 20 | 触发器ID |
| False | tag | VARCHAR | True | False | 255 | 标签标识 |
| False | value | VARCHAR | True | False | 255 | 值 |
1. triggers表
触发器实例表。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | triggerid | BIGINT | True | True | 20 | 触发器ID |
| False | expression | VARCHAR | True | False | 2048 | 触发器表达式 |
| False | description | VARCHAR | True | False | 255 | 触发器描述 |
| False | url | VARCHAR | True | False | 255 | url地址 |
| False | status | INT | True | False | 11 | 0 表示Trigger is active1表示r is disabled |
| False | value | INT | True | False | 11 | 0表示OK1表示PROBLEM2表示UNKNOWN |
| False | priority | INT | True | False | 11 | 0表示Not classified1表示 Information2表示Warning3表示Average4表示High5表示 Disaster |
| False | lastchange | INT | True | False | 11 | 最后更改时间 |
| False | comments | TEXT | True | False | 0 | 注释 |
| False | error | VARCHAR | True | False | 2048 | 错误信息 |
| False | templateid | BIGINT | False | False | 20 | 模板ID |
| False | type | INT | True | False | 11 | 0表示Normal event generation1表示 Generate multiple PROBLEM event |
| False | recovery_mode | INT | True | False | 11 | 恢复模式 |
| False | recovery_expression | VARCHAR | True | False | 2048 | 恢复表达式 |
| False | correlation_mode | INT | True | False | 11 | 关联模式 |
| False | correlation_mode | VARCHAR | True | False | 255 | 关联标识 |
| False | manual_close | INT | True | False | 11 | 是否手动关闭 |
1. users表
用户实例表,用于记录单个用户信息。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | userid | BIGINT | True | True | 20 | 用户ID |
| False | alias | VARCHAR | True | False | 100 | 用户别名,用于显示 |
| False | name | VARCHAR | True | False | 100 | 用户名 |
| False | surname | VARCHAR | True | False | 100 | 超级用户 |
| False | passwd | CHAR | True | False | 32 | 密码 |
| False | url | VARCHAR | True | False | 255 | 登录后的URL |
| False | autologin | INT | True | False | 11 | 是否自动登录 |
| False | autologout | INT | True | False | 32 | 是否自动登出 |
| False | lang | VARCHAR | True | False | 5 | 使用的语言,需要安装 |
| False | refresh | INTEGER | True | False | 32 | 自动刷新间隔,单位秒 |
| False | type | INTEGER | True | False | 11 | 用户类型,分为超级管理员、普通管理员和普通用户define(‘USER_TYPE_ZABBIX_USER’, 1);define(‘USER_TYPE_ZABBIX_ADMIN’, 2);define(‘USER_TYPE_SUPER_ADMIN’, 3); |
| False | theme | VARCHAR | True | False | 128 | 使用的主题 |
| False | attempt_failed | INTEGER | True | False | 11 | 尝试失败的次数 |
| False | attempt_ip | VARCHAR | True | False | 39 | 尝试IP |
| False | attempt_clock | INTEGER | True | False | 11 | 最后尝试时间 |
| False | rows_per_page | INTEGER | True | False | 11 | 每页显示多少行(或记录) |
1. users_groups表
用户-用户组关联表。与usrgrp、users表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | id | BIGINT | True | True | 20 | 关联ID |
| False | usrgrpid | BIGINT | True | False | 20 | 用户组ID |
| False | userid | BIGINT | True | False | 20 | 用户ID |
1. usrgrp表
用户组表,支持用户组状态和debug模式配置。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | usrgrpid | BIGINT | True | True | 20 | 用户组ID |
| False | name | VARCHAR | True | False | 64 | 用户组名称 |
| False | gui_access | INT | True | False | 11 | 详情如下: |
| False | users_status | INT | True | False | 11 | 0表示启用,1表示disable |
| False | debug_mode | INT | True | False | 11 | 是否使用debug模式1表示开启,0表示未开启 |
**Gui_access:**界面访问:
define(‘GROUP_GUI_ACCESS_SYSTEM’, 0);
define(‘GROUP_GUI_ACCESS_INTERNAL’, 1);
define(‘GROUP_GUI_ACCESS_DISABLED’, 2);
System default- use default authentication
Internal - use Zabbix authentication. Ignored if HTTP authentication is set
Disabled - access to Zabbix GUI is forbidden
1. valuemaps表
值映射组表,用于记录单个映射实例,不包含映射具体的值(具体值在mapping表中记录)
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | valuemapid | BIGINT | True | True | 20 | 值映射ID |
| False | name | VARCHAR | True | False | 64 | 映射组名称 |
1. widget表
仪表盘面板工具配置信息记录表,与dashboard表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | widgetid | BIGINT | True | True | 20 | 工具ID |
| False | dashboardid | BIGINT | True | False | 20 | 仪表盘ID |
| False | type | VARCHAR | True | False | 255 | 工具类型 |
| False | name | VARCHAR | True | False | 255 | 工具名称 |
| 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 | 高度,像素 |
1. widget_field表
仪表盘面板工具域配置信息记录表,与dashboard、widget、groups、hosts、items、graphs、sysmaps表相关联。
| **PK** | **Name** | **Type** | **Not Null** | **Unique** | **Len** | **Notes** |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| True | widget_fieldid | BIGINT | True | True | 20 | 工具域ID |
| True | widgetid | BIGINT | True | True | 20 | 工具ID |
| False | type | INT | True | False | 11 | 工具类型 |
| False | name | VARCHAR | True | False | 255 | 工具名称 |
| False | value_int | BIGINT | True | False | 11 | 整数类型的值 |
| False | value_str | BIGINT | True | False | 255 | 字符串类型的值 |
| False | value_groupid | BIGINT | True | False | 20 | 主机组ID的值 |
| False | value_hostid | BIGINT | True | False | 20 | 主机ID的值 |
| False | value_itemid | BIGINT | True | False | 20 | 监控项ID的值 |
| False | value_graphid | BIGINT | True | False | 20 | 图形实例ID值 |
| False | value_sysmapid | BIGINT | True | False | 20 | 系统地图ID值 |
更加详细内容请参考:[https://www.zabbix.com/documentation/5.0/zh/manual/appendix/performance_tuning](https://www.zabbix.com/documentation/5.0/zh/manual/appendix/performance_tuning))