zabbix/zabbix分布式监控.md
2025-06-25 10:17:50 +08:00

1.3 MiB
Raw Blame History

第一章监控概念及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
  • Zabbix2012年诞生的一款分布式监控系统功能完善例如数据存储、数据可视化、故障告警等目前主要应用在传统的物理服务器、虚拟机、路由交换领域的监控
  • Promethues2016年崛起的一款监控系统功能完善例如数据存储、数据可视化、故障告警等目前主要应用在容器领域的监控系统

付费的监控软件:

监控宝:https://www.jiankongbao.com/博瑞:https://www.bonree.com/

Zabbix介绍

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

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

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

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

Zabbix的版本介绍

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

Zabbix组件

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

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

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

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

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

Zabbix5.0安装步骤

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

平台选择

配置zabbix的仓库

提示zbx-server主机操作

#安装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
#启用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前端URLhttp://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客户端程序。

#下载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以添加新的主机。

查看主机

检测→主机

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">灰色</font> 表示主机状态尚未建立,尚未发生监控指标检查

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

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

模板概述

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

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

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

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

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

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

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

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

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

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

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

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

新建模板

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

配置Configuration模版Templates创建模版****Create template

所有必填字段以红色星标标示。

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

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

新建应用集

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

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

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

新建监控项

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

配置 → 模板 页面查找到我们自建的模板,点击模板中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">监控项</font>然后 创建监控项

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

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

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 按钮

绑定模板

点击 配置 → 主机 找到你的主机,然后选择<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">模板</font>,选择好模板后,点击更新

监控数据

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

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

图表

当监控项运行了一段时间后,可以查看可视化图表,点击监控项后的<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">图形Graph</font>以查看图表。

解决Zabbix中文乱码

安装并更新字体

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点击列表中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Email</font> 设置表单如下图:

解释:

  • 名称Email为报警媒介类型名称
  • SMTP服务器用于发送邮件的服务器
  • SMTP HELO向服务器标识用户身份
  • SMTP电邮用于发送邮件的账户

添加触发器

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

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

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

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

2表达式<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font> 按钮内选择具体的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">监控项</font>以及触发的条件。

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

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

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

测试触发器

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

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

在练习添加一个CPU的触发器配置主机 点击 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">触发器</font>创建触发器

触发器的名称使用 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">CPU 1分钟负载过高</font>

表达式具体写法如下图:

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

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

新建动作

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

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

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

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

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

先配置第一个操作,点击操作内的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font>

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

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

故障告警:{EVENT.NAME}

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

接下来配置告警恢复操作,点击恢复操作内的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font>

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

故障恢复:{EVENT.NAME}

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

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

检查对应的动作的状态为 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">已启用</font> 状态

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

定义收件人

我们在定义一个外界的收件人邮箱,选择用户基本资料报警媒介<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font> 收件人的邮箱,这个可以是实际工作中管理员的具体邮箱地址。

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

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

小结:

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

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

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

4收件人用于接收告警消息

验证告警信息

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

监测Monitoring问题Problems可以看到闪烁 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">问题</font>

验证是否会收到邮件通知你的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/

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">应用管理</font>中查看zabbix应用ID及secret密钥

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">我的企业</font>中查看企业ID

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">通讯录</font>中查看部门ID及个人账号ID

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

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

zabbix应用ID1000039

应用密钥RdqTtbydSEoef5TxUEKbheHwoszwJklVNYCFpb7Rwes

企业IDwwa78d6212da74fd51

个人账号ID Yesir

部门ID8

配置报警脚本

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

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

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

cd /usr/lib/zabbix/alertscripts/
chmod +x wechat.py

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

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。

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

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

cd /usr/lib/zabbix/alertscripts/
./wechat.py Yesir test hello

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

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

解决方法:

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

2点击<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">应用管理</font>找到zabbix应用

3在页面最下方配置<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">企业可信IP</font>把请求返回的ip设置到可信IP中注意IP每天都会变动所以每天都要重新配置到企业可信IP里

创建报警媒介

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

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

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

{ALERT.SENDTO}        #收件人
{ALERT.SUBJECT}       #消息主题
{ALERT.MESSAGE}       #消息内容

自定义消息模板的步骤:

  • 消息模板 (Message template) 选项卡中,点击 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font> 填写所需的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">消息类型</font>``<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">主题</font>``<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">消息</font>

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

告警信息:{EVENT.NAME}

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

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

配置 问题恢复 消息

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

故障恢复:{EVENT.NAME}

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

点击 添加 保存消息模板。

媒介类型测试

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

获取通知

由于前边在学习邮件报警时已经配置过触发器及动作,可从 配置 → 主机<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">触发器</font>页面查看前边配置的触发器。

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

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

点击 更新

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

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

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

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

问题确认

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

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

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

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

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

配置CPU告警

由于前边已经配置了CPU 1分钟负载的触发器配置→主机对应主机中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">触发器</font> 查看。

新建动作

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

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">操作</font> 中,添加报警操作细节。

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">恢复操作</font> 中,添加恢复操作细节。

配置完成后,点击 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">更新</font>

验证告警信息

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

while :; do echo hello; done

第三章Zabbix项目监控实战

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

实现步骤:

  1. 部署LNMP架构
  2. 上线Discuz项目到LNMP架构

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

  1. redis为Discuz提供缓存
  2. 网站数据统计
    • 网站 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进程管理程序。

#安装Mariadb-server及相关依赖
yum install mariadb mariadb-server php php-fpm php-mysql php-gd -y

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

vim /etc/my.cnf
[mysqld]
character-set-server=utf8  --手动添加

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

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

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时区

vim /etc/php.ini   
...
date.timezone ="Asia/shanghai"  --指定时区

部署Nginx

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

#创建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 文件(提前做好配置文件备份)

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;
    }
}
#启动服务&设置服务随机自启
systemctl restart nginx php-fpm && systemctl enable nginx php-fpm

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

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

测试nginx与php之间的连接

vim /usr/share/nginx/html/phpinfo.php
<?php
phpinfo();
?>

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

测试php与mysql协同方式一

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

测试php与mysql协同方式二

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

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

上线Discuz项目

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

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

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

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

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

访问Discuzhttp://server_ip/

创建数据库并授权discuz用户

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

#安装需要epel源
yum -y install php-pecl-redis.x86_64

#重启php-fpm
systemctl restart php-fpm

查看模块

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

php -m | grep redis
redis

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

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

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

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数据可通过命令行进入数据库查看

redis-cli
127.0.0.1:6379> keys *

网站数据统计

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

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

Matomo介绍

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

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

Matomo官网 https://matomo.org/

Matomo部署

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

支持 Apache、Nginx

PHP 版本至少是 5.5.9

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

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

#zabbix agent端查看
mysql --version
php --version

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

#安装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文件指定时区

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

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

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

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站点目录并上传项目

mkdir /usr/share/nginx/matomo
cd /usr/share/nginx/matomo
unzip matomo-latest.zip
mv matomo/* .
chown -R nginx:nginx .

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

配置格式server_ip web.matomo.com

Matomo页面初始化

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

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

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

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

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

#创键库并授权用户
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客户端主机操作

#创建目录,然后将脚本上传到该目录
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
#修改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端操作

#服务端下载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   --客户端正在等待服务器的响应数量

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

配置→模板 页面创建新的模板
配置 → 模板 页面找到我们自建的模板,点击模板中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">应用集</font>
然后 创建应用集
点击模板中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">监控项</font>
然后 创建监控项

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

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

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

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

自定义php-fpm监控

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

#查看php-fpm配置文件确保已经开启状态页面功能搜索status
vim /etc/php-fpm.d/www.conf 
...
121 pm.status_path = /php_status
#查看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

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

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

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

Zabbix Server获取监控项数据

#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类似

#上传脚本到/etc/zabbix/script路径并添加执行权限
chmod +x redis_status.sh
#创建自定义监控项文件
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
#重启zabbix agent服务
systemctl restart zabbix-agent

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

自定义MySQL监控

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

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

安装percona

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指定连接数据库的用户与密码。

#修改/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用户没有密码则留空即可
#重启zabbix agent服务
systemctl restart zabbix-agent

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

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介绍

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

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

通俗总结:

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

1部署SNMP监控

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

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

#安装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

2zabbix server安装工具取值

#安装net-snmp-utils客户端工具
yum -y install net-snmp-utils

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

3Web界面添加监控

配置→主机→创建主机
提示指定IP地址后其余参数默认即可随后绑定监控模板。

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

Zabbix的Java监控

JMX监控可用于监控和管理Java应用程序例如常见的Tomcat服务从zabbix 2.0开始JMX监视器<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Zabbix Java gateway</font>专门用于监控Java程序本实验已Tomcat程序为监控对象来演示JMX监控。

1部署Tomcat服务

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

#安装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监控

#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链接tomcatfalse表示不开启

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

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

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

启动Tomcat服务Tomcat无需安装直接启动服务

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

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

2zabbix 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文件

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

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

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

3zabbix添加JMX监控

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

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

第五章Zabbix监控方式

Zabbix自动发现

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

环境准备:

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

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

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地址

vi /etc/zabbix/zabbix_agentd.conf
...
Server=server_ip          #指定zabbix server地址

启动zabbix agent服务

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配置文件开启自动注册模式

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

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

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

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

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

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

#可选参数主机源数据方便zabbix server在注册时进行认证名称自定义
190 # HostMetadata=linux     #取消注释
#重启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

#修改主机名
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

#修改主机名
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文件导入现成的局和图形。

本案例将前边的<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">cpu平均负载</font><font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">nginx状态</font>创建成了一个聚合图形,如上图:

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该表记录动作相关属性。

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

2status:0代表OK1代表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 动作所关联的事件ID0指来源为触发器trigger1指来源为自动发现descover2指来源为自动登记auto_register3为网络发现产生的事件源
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的标识0ip地址1system.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 规则IDdrule表
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 函数名称包括difflastmin等
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_PIE2);

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 主机IDzabbix中主机、模板都使用该表记录唯一区别是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无认证方式1MD2认证2MD5加密认证4直接认证5OEM认证6RMCP_PLUS认证方式
False ipmi_privilege INT True False 11 IPMI的授权1回调权限2用户权限3操作权限4管理权限5OEM权限
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基本认证

2NTML认证

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监控场景IDhttptest表
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_PRIMARY1);

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

define(INTERFACE_TYPE_ANY,-1);

define(INTERFACE_TYPE_UNKNOWN,0);

define(INTERFACE_TYPE_AGENT1);

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_IP7);

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_NODE17);

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_ID4);

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时间IDlogeventID
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只可读1deny
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_ASC1);

define(SCREEN_SORT_TRIGGERS_RECIPIENT_DESC2);

  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 主机组IDNULL表示所有主机组均可使用
False description TEXT True False 0 脚本描述
False confirmation VARCHAR True False 255 是否使用确认功能,若启用,则该字段不为空,且为确认信息。
False type INTEGER True False 11 脚本类型包括脚本或者IPMI0表示脚本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)

第一章监控概念及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
  • Zabbix2012年诞生的一款分布式监控系统功能完善例如数据存储、数据可视化、故障告警等目前主要应用在传统的物理服务器、虚拟机、路由交换领域的监控
  • Promethues2016年崛起的一款监控系统功能完善例如数据存储、数据可视化、故障告警等目前主要应用在容器领域的监控系统

付费的监控软件:

监控宝:https://www.jiankongbao.com/博瑞:https://www.bonree.com/

Zabbix介绍

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

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

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

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

Zabbix的版本介绍

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

Zabbix组件

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

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

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

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

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

Zabbix5.0安装步骤

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

平台选择

配置zabbix的仓库

提示zbx-server主机操作

#安装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
#启用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前端URLhttp://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客户端程序。

#下载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以添加新的主机。

查看主机

检测→主机

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">灰色</font> 表示主机状态尚未建立,尚未发生监控指标检查

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

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

模板概述

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

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

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

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

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

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

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

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

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

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

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

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

新建模板

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

配置Configuration模版Templates创建模版****Create template

所有必填字段以红色星标标示。

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

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

新建应用集

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

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

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

新建监控项

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

配置 → 模板 页面查找到我们自建的模板,点击模板中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">监控项</font>然后 创建监控项

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

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

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 按钮

绑定模板

点击 配置 → 主机 找到你的主机,然后选择<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">模板</font>,选择好模板后,点击更新

监控数据

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

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

图表

当监控项运行了一段时间后,可以查看可视化图表,点击监控项后的<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">图形Graph</font>以查看图表。

解决Zabbix中文乱码

安装并更新字体

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点击列表中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Email</font> 设置表单如下图:

解释:

  • 名称Email为报警媒介类型名称
  • SMTP服务器用于发送邮件的服务器
  • SMTP HELO向服务器标识用户身份
  • SMTP电邮用于发送邮件的账户

添加触发器

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

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

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

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

2表达式<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font> 按钮内选择具体的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">监控项</font>以及触发的条件。

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

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

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

测试触发器

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

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

在练习添加一个CPU的触发器配置主机 点击 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">触发器</font>创建触发器

触发器的名称使用 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">CPU 1分钟负载过高</font>

表达式具体写法如下图:

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

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

新建动作

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

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

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

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

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

先配置第一个操作,点击操作内的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font>

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

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

故障告警:{EVENT.NAME}

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

接下来配置告警恢复操作,点击恢复操作内的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font>

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

故障恢复:{EVENT.NAME}

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

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

检查对应的动作的状态为 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">已启用</font> 状态

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

定义收件人

我们在定义一个外界的收件人邮箱,选择用户基本资料报警媒介<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font> 收件人的邮箱,这个可以是实际工作中管理员的具体邮箱地址。

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

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

小结:

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

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

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

4收件人用于接收告警消息

验证告警信息

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

监测Monitoring问题Problems可以看到闪烁 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">问题</font>

验证是否会收到邮件通知你的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/

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">应用管理</font>中查看zabbix应用ID及secret密钥

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">我的企业</font>中查看企业ID

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">通讯录</font>中查看部门ID及个人账号ID

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

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

zabbix应用ID1000039

应用密钥RdqTtbydSEoef5TxUEKbheHwoszwJklVNYCFpb7Rwes

企业IDwwa78d6212da74fd51

个人账号ID Yesir

部门ID8

配置报警脚本

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

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

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

cd /usr/lib/zabbix/alertscripts/
chmod +x wechat.py

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

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。

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

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

cd /usr/lib/zabbix/alertscripts/
./wechat.py Yesir test hello

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

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

解决方法:

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

2点击<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">应用管理</font>找到zabbix应用

3在页面最下方配置<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">企业可信IP</font>把请求返回的ip设置到可信IP中注意IP每天都会变动所以每天都要重新配置到企业可信IP里

创建报警媒介

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

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

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

{ALERT.SENDTO}        #收件人
{ALERT.SUBJECT}       #消息主题
{ALERT.MESSAGE}       #消息内容

自定义消息模板的步骤:

  • 消息模板 (Message template) 选项卡中,点击 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">添加</font> 填写所需的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">消息类型</font>``<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">主题</font>``<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">消息</font>

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

告警信息:{EVENT.NAME}

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

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

配置 问题恢复 消息

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

故障恢复:{EVENT.NAME}

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

点击 添加 保存消息模板。

媒介类型测试

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

获取通知

由于前边在学习邮件报警时已经配置过触发器及动作,可从 配置 → 主机<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">触发器</font>页面查看前边配置的触发器。

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

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

点击 更新

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

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

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

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

问题确认

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

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

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

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

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

配置CPU告警

由于前边已经配置了CPU 1分钟负载的触发器配置→主机对应主机中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">触发器</font> 查看。

新建动作

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

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">操作</font> 中,添加报警操作细节。

<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">恢复操作</font> 中,添加恢复操作细节。

配置完成后,点击 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">更新</font>

验证告警信息

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

while :; do echo hello; done

第三章Zabbix项目监控实战

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

实现步骤:

  1. 部署LNMP架构
  2. 上线Discuz项目到LNMP架构

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

  1. redis为Discuz提供缓存
  2. 网站数据统计
    • 网站 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进程管理程序。

#安装Mariadb-server及相关依赖
yum install mariadb mariadb-server php php-fpm php-mysql php-gd -y

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

vim /etc/my.cnf
[mysqld]
character-set-server=utf8  --手动添加

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

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

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时区

vim /etc/php.ini   
...
date.timezone ="Asia/shanghai"  --指定时区

部署Nginx

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

#创建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 文件(提前做好配置文件备份)

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;
    }
}
#启动服务&设置服务随机自启
systemctl restart nginx php-fpm && systemctl enable nginx php-fpm

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

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

测试nginx与php之间的连接

vim /usr/share/nginx/html/phpinfo.php
<?php
phpinfo();
?>

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

测试php与mysql协同方式一

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

测试php与mysql协同方式二

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

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

上线Discuz项目

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

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

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

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

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

访问Discuzhttp://server_ip/

创建数据库并授权discuz用户

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

#安装需要epel源
yum -y install php-pecl-redis.x86_64

#重启php-fpm
systemctl restart php-fpm

查看模块

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

php -m | grep redis
redis

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

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

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

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数据可通过命令行进入数据库查看

redis-cli
127.0.0.1:6379> keys *

网站数据统计

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

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

Matomo介绍

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

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

Matomo官网 https://matomo.org/

Matomo部署

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

支持 Apache、Nginx

PHP 版本至少是 5.5.9

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

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

#zabbix agent端查看
mysql --version
php --version

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

#安装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文件指定时区

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

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

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

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站点目录并上传项目

mkdir /usr/share/nginx/matomo
cd /usr/share/nginx/matomo
unzip matomo-latest.zip
mv matomo/* .
chown -R nginx:nginx .

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

配置格式server_ip web.matomo.com

Matomo页面初始化

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

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

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

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

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

#创键库并授权用户
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客户端主机操作

#创建目录,然后将脚本上传到该目录
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
#修改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端操作

#服务端下载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   --客户端正在等待服务器的响应数量

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

配置→模板 页面创建新的模板
配置 → 模板 页面找到我们自建的模板,点击模板中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">应用集</font>
然后 创建应用集
点击模板中的 <font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">监控项</font>
然后 创建监控项

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

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

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

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

自定义php-fpm监控

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

#查看php-fpm配置文件确保已经开启状态页面功能搜索status
vim /etc/php-fpm.d/www.conf 
...
121 pm.status_path = /php_status
#查看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

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

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

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

Zabbix Server获取监控项数据

#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类似

#上传脚本到/etc/zabbix/script路径并添加执行权限
chmod +x redis_status.sh
#创建自定义监控项文件
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
#重启zabbix agent服务
systemctl restart zabbix-agent

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

自定义MySQL监控

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

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

安装percona

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指定连接数据库的用户与密码。

#修改/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用户没有密码则留空即可
#重启zabbix agent服务
systemctl restart zabbix-agent

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

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介绍

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

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

通俗总结:

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

1部署SNMP监控

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

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

#安装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

2zabbix server安装工具取值

#安装net-snmp-utils客户端工具
yum -y install net-snmp-utils

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

3Web界面添加监控

配置→主机→创建主机
提示指定IP地址后其余参数默认即可随后绑定监控模板。

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

Zabbix的Java监控

JMX监控可用于监控和管理Java应用程序例如常见的Tomcat服务从zabbix 2.0开始JMX监视器<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">Zabbix Java gateway</font>专门用于监控Java程序本实验已Tomcat程序为监控对象来演示JMX监控。

1部署Tomcat服务

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

#安装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监控

#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链接tomcatfalse表示不开启

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

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

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

启动Tomcat服务Tomcat无需安装直接启动服务

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

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

2zabbix 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文件

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

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

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

3zabbix添加JMX监控

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

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

第五章Zabbix监控方式

Zabbix自动发现

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

环境准备:

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

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

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地址

vi /etc/zabbix/zabbix_agentd.conf
...
Server=server_ip          #指定zabbix server地址

启动zabbix agent服务

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配置文件开启自动注册模式

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

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

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

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

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

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

#可选参数主机源数据方便zabbix server在注册时进行认证名称自定义
190 # HostMetadata=linux     #取消注释
#重启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

#修改主机名
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

#修改主机名
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文件导入现成的局和图形。

本案例将前边的<font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">cpu平均负载</font><font style="color:rgb(51, 51, 51);background-color:rgb(243, 244, 244);">nginx状态</font>创建成了一个聚合图形,如上图:

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该表记录动作相关属性。

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

2status:0代表OK1代表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 动作所关联的事件ID0指来源为触发器trigger1指来源为自动发现descover2指来源为自动登记auto_register3为网络发现产生的事件源
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的标识0ip地址1system.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 规则IDdrule表
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 函数名称包括difflastmin等
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_PIE2);

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 主机IDzabbix中主机、模板都使用该表记录唯一区别是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无认证方式1MD2认证2MD5加密认证4直接认证5OEM认证6RMCP_PLUS认证方式
False ipmi_privilege INT True False 11 IPMI的授权1回调权限2用户权限3操作权限4管理权限5OEM权限
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基本认证

2NTML认证

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监控场景IDhttptest表
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_PRIMARY1);

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

define(INTERFACE_TYPE_ANY,-1);

define(INTERFACE_TYPE_UNKNOWN,0);

define(INTERFACE_TYPE_AGENT1);

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_IP7);

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_NODE17);

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_ID4);

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时间IDlogeventID
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只可读1deny
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_ASC1);

define(SCREEN_SORT_TRIGGERS_RECIPIENT_DESC2);

  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 主机组IDNULL表示所有主机组均可使用
False description TEXT True False 0 脚本描述
False confirmation VARCHAR True False 255 是否使用确认功能,若启用,则该字段不为空,且为确认信息。
False type INTEGER True False 11 脚本类型包括脚本或者IPMI0表示脚本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)