ZABBIX 使用教程

ZABBIX 基础介绍

zabbix 是采用 C 语言开发的一个开源的企业级监控解决方案,可以实现对各种 IT 组件的实时监控,包括服务器、网络设备、虚拟机、数据库、IOT设备等。

zabbix 采用 C/S 架构设计,服务端负责收集 受控节点(客户端)采集到的数据,然后根据采集到的数据和定义好的规则来触发对应的告警动作。

zabbix 中文官网:https://www.zabbix.com/cn

所以 zabbix 可以简单理解为由以下三大组件组成

关键组件功能说明
服务端(Server)负责接收客户端上传的监控数据并存储数据、分析是否触发告警、执行定义好的动作(如发送告警邮件、执行脚本等)。
客户端(Agent)部署在被监控主机上的代理程序,负责定期采集本地资源状态(如 CPU、内存、磁盘、进程等),并将数据上报给服务端。
展示端(Frontend)基于 PHP 开发的 Web 界面,供用户配置监控项、触发器、动作等规则,并可实时查看各类图表、事件和告警信息。需要 LAMP 或 LNMP 环境支持。

zabbix 具有以下特点

  1. 支持使用多种方式采集节点数据:如SNMP、Agent、IPMI、HTTP、自定义等方式。
  2. 支持邮件、短信、脚本、Webhook (企业微信、飞书、钉钉)等告警通知。
  3. 没有内置数据库,需要单独安装MySQL、MariaDB、PostgreSQL等数据库管理系统来存储数据。
  4. 前端(Zabbix Web UI )基于 PHP 开发,因此需要 LAMP/LNMP 架构,且原生支持中文,对国内用户比较友好。

zabbix 两种安装方式

安装方式特点
源码编译安装通过下载源码,然后编译安装,一般情况下没必要,因为很麻烦。
二进制包安装官方打包好了对应的rpm或deb格式的包,导入软件源后,在联网环境下可以进行安装。

ZABBIX 服务部署

说明:纯净系统下二进制包安装zabbix可以参考官方文档: https://www.zabbix.com/cn/download


例如在Ubuntu 2004 环境上提前搭建好了 LAMP 环境后,再安装 Zabbix6.0

1、先选择需要安装的zabbix版本,操作系统类型,系统使用的数据库类型,以及web服务器的类型。这样才会显示对应的下载连接。

下载链接:https://www.zabbix.com/cn/download

在这里插入图片描述

2、 选择好指定的版本后,会提供对应的下载链接,下载到操作系统然后安装即可配置好软件源。

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu20.04_all.deb

sudo dpkg -i zabbix-release_latest_6.0+ubuntu20.04_all.deb

sudo apt update

3、 安装 zabbix 服务端和 zabbix agent 软件

官方安装步骤还推荐安装了zabbix-frontend-php(前端软件包) 和 zabbix-apache-conf (前端apache配置文件),因为我们已经搭建好 LAMP 环境了,如果再安装这两个软件包,zabbix 会在我们环境里面再安装一套 PHP 环境,这样可能会出问题。

所以服务端采用zabbix提供的二进制包安装,前端采用源码编译安装,并且自定义apache的配置文件。

  • zabbix-server-mysql:zabbix 使用MySQL存储数据时候的服务端软件包名称。
  • zabbix-sql-scripts:zabbix初始化数据库的sql脚本文件
  • zabbix-agent:zabbix主机也要装一个agent工具,这样才能获取到主机的状态信息。
sudo apt install zabbix-server-mysql  zabbix-sql-scripts zabbix-agent

4、在MySQL数据库数据库中创建zabbix数据库,以及创建一个供zabbix服务端连接的账户

注意:zabbix6.0版本要使用 MySQL 8.0 以上的环境。zabbix 5.x及其以下版本要使用MySQL5.7,否则会有很多不兼容

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;

mysql> create user zabbix@localhost identified by 'eHIGH2014';

mysql> grant all privileges on zabbix.* to zabbix@localhost;

mysql> set global log_bin_trust_function_creators = 1;

5、将zabbix的基础数据导入zabbix数据库

安装 zabbix-sql-scripts 后,在 /usr/share/zabbix-sql-scripts/mysql/目录下有zabbix的数据库初始化sql文件。

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

6、mysql 配置中关闭 log_bin_trust_function_creators 配置

mysql> set global log_bin_trust_function_creators = 0;	

7、修改zabbix配置中和服务启动的基础配置项

sudo vim /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=eHIGH2014

8、下载zabbix 6.0 的源码包,然后解压到服务器

下载地址https://www.zabbix.com/cn/download_sources
在这里插入图片描述

9、在解压的源码包目录下,有一个名为 ui 的目录,存放的就是zabbix的前端文件。所以直接将这个目录下的所有文件拷贝到apache的根目录下指定位置即可。
在这里插入图片描述

cp -a ui/* ~/work/html/zabbix

sudo chown -R ehigh.ehigh ~/work/html/zabbix

在这里插入图片描述

10、编写apahce的配置文件,单独使用一个虚拟主机管理zabbix

# 1. 让apache监听一个端口
Listen 8080

# 2. 编写zabbix的虚拟主机文件
<VirtualHost *:8080>
    DocumentRoot /home/ehigh/work/html/zabbix
    <Directory /home/ehigh/work/html/zabbix>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/zabbix_error.log
    CustomLog ${APACHE_LOG_DIR}/zabbix_access.log combine
</VirtualHost>

# 3. 重启apache生效
sudo systemctl restart apache2

在这里插入图片描述

11、配置完成后重启zabbix-server 和 zabbix-agent服务

sudo systemctl restart zabbix-server.service

sudo systemctl restart zabbix-agent.service 

12、页面访问8080端口进行初始化界面
说明:页面初始化的时候,会检查当前安装的PHP环境,如果PHP中的一些配置不满足要求,则需要手动修改PHP配置文件,然后重启apache
在这里插入图片描述

13、配置完成后,即可登录管理页面
在这里插入图片描述

14、zabbix原生支持中文,所以可以直接切换到中文。
在这里插入图片描述

ZABBIX 数据展示

1、需要现在受监控的主机上安装 Agent 软件,安装方式就是先配置软件源,然后进行安装

sudo apt insatll zabbix-agent

2、修改 zabbix_agent 的配置文件,设置将数据推送到哪个zabbix服务端,并重启agent服务

$ sudo vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.28.14

sudo systemctl restart zabbix-agent.service

3、在 zabbix 服务端添加受监控的主机,后续才能获取到该主机的状态信息。
在这里插入图片描述

在这里插入图片描述

4、使用一个模板和特定的主机进行绑定,这样后续才能定义展示的数据内容。

模板有三种类型

模板类型特点
官方自带模板自带的模板很多,但是可能模板里面的很多数据信息不一定是我们想看的。
自定义的模板可以根据实际情况,定义需要zabbix显示哪些数据。
预定义的模板定义好的模板可以导出为xml文件,可以将对应的xml文件导入使用。

例如:新建一个名为 Linux Monitor的模板
在这里插入图片描述

在这里插入图片描述

模板创建后,在模板列表可以查看。
在这里插入图片描述
说明如果有现成的模板,直接导入就行了

5、给模板创建对应的监控项,监控项就是指定了 监控哪些数据,一个模板里面包含若干个监控项

例如:监控一分钟 CPU 的负载情况
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6、将模板和特定的主机进行绑定,然后等一分钟就有数据更新了。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

等待ZBX变绿,说明主机可用,监控指标检查已成功
在这里插入图片描述

7、点击最新数据即可查看获取到的数据信息
在这里插入图片描述

ZABBIX 配置告警

zabbix 的告警是通过触发器来实现的,触发器定义好某种规则,然后如果特定的数据和这个规则匹配上了,就会产生指定级别的告警。

1、先创建好一个触发器。创建触发器有两种方式

创建方式特点
基于指定主机创建触发器在某个指定主机上直接创建触发器,这个触发器只会应用在该主机上;如果其他主机也需要使用此触发器规则,则必须在每个主机上单独创建或复制相同的触发器。适合对单台主机做个性化监控。
基于指定模板创建触发器在某个监控模板上创建触发器,该触发器会自动应用于所有关联了该模板的主机。适合批量管理大规模主机的统一监控策略,提升管理效率、易于维护。

例如:基于模板创建一个触发器,这样使用该模板的所有主机都会生效
在这里插入图片描述

在这里插入图片描述

2、创建完成后,所有主机都有了这个触发器,在检测/主机 中可以查看是否被触发
在这里插入图片描述

在这里插入图片描述

当触发后,会自动生成对应的问题清单:
在这里插入图片描述

说明:例如一分钟采集一次数据,如果新采集到的数据不满足触发器的触发条件了,则告警就会自动恢复。

ZABBIX 告警推送

通过触发器产生告警数据后,默认就在zabbix的页面显示,但是zabbix支持配置告警推送,就是将告警信息通过邮件或短信、webhook等方式推送到指定的平台。实现告警推送功能是通过 动作 来实现的。即产生告警了后,执行什么样的工作。

例如:将告警信息通过邮件进行推送的配置方法

1、先添加一个动作,和特定的触发器进行绑定。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

时间点说明
第 0 分钟触发器第一次触发,立刻执行第 1 步,发送一次告警
第 5 分钟如果触发器还处于问题状态,执行第 2 步,再次发送一次告警
第 10 分钟如果仍未恢复,执行第 3 步,再发一次告警
第 15 分钟及之后不再执行任何动作,不再发送告警,直到触发器恢复(如果设置了恢复操作,则恢复时会再通知)

2、设置zabbix的报警媒介为Email

说明:zabbix 6.x 版本 和 QQ邮箱不兼容,如果配置为QQ邮箱,会出现 login denied 的提示

在这里插入图片描述

在这里插入图片描述

配置项作用给介绍
SMTP服务器用于发送邮件的SMTP服务器地址
SMTP服务器端口邮件服务器的端口号,不加密就使用25端口。
SMTP HELO发起 SMTP 会话时使用的主机名标识,一般随意指定
SMTP电邮也就是“发件人”地址
安全连接邮件传输的加密方式,一般选择不加密
认证“使用用户名和密码”表示需要登录验证,密码是邮箱的授权号,不是邮箱密码
用户名称发件人的邮箱地址
消息格式纯文本:只有文字,兼容性更好, HTML:支持富文本邮件,能嵌入图片、样式等

自定义告警消息模板,指定发送告警的具体消息:
在这里插入图片描述

故障告警:{EVENT.NAME}

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

自定义告警消息变量,用于指定故障恢复时,发送告警的具体消息:

在这里插入图片描述

故障恢复:{EVENT.NAME}

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

3、配置好后找个邮箱进行发送邮件测试,查看是否能正常发送邮件
在这里插入图片描述

4、添加收件人的邮箱地址,后续相关邮件会发送往指定的地址
在这里插入图片描述

ZABBIX 发现注册

1、自动发现功能

首先需要在服务端配置一个 IP地址范围,然后 Zabbix Server 会按照配置定期扫描,并尝试在这些地址上执行各种“探测动作”。如:进行Zabbix Agent 检测,检查是否运行了 Zabbix agent。一旦发现某个 IP 满足配置的条件,就会指定预定义的操作,如:自动添加主机、自动绑定模板等。

Zabbix 自动发现的配置流程

1、创建自动发现规则:用于定义 IP地址范围和探测的间隔时间。

在这里插入图片描述

例如

在这里插入图片描述

2、创建发现动作:探测到满足条件的主机后,就执行对应的操作。
在这里插入图片描述

创建发现动作时,条件部分就是创建的自动探测规则,这样就实现了探测到对应主机满足条件,触发动作的执行。
在这里插入图片描述

操作就是满足发现规则后就会触发这个动作,这个工作具体要做的事。
在这里插入图片描述

3、查看具体自动发现的设备信息
在这里插入图片描述

2、自动注册功能

在受控节点的 Agent 配置文件中上指定服务端的地址和端口,Agent 会主动向服务端注册并发送监控数据。当服务端收到注册请求后,会根据预定义规则自动把它加入到监控系统中,并执行相应操作(比如分配模板、加群组等)。

ZABBIX 自动注册配置流程

1、在客户端运行的 zabbix_agent 配置文件中指定以下配置:

Server=Zabbix_Server_IP
Hostname=唯一主机名 # 自动注册时用于唯一识别主机的关键字段
HostMetadata=linux  # 主机源数据方便zabbix server在注册时进行认证,名称自定义(一般不用加)

2、在服务端的自动注册中创建对应的动作
在这里插入图片描述

:主机的元数据中如果包含linux字样(通过 Agent 的 HostMetadata 字段传过来),就触发对应的操作
在这里插入图片描述

一般的操作就是添加主机,然后关联特定模板:
在这里插入图片描述

ZABBIX 图形图表

自定义图表方式

可以根据特定的监控项来创建一个对应的图表。

例如:给某个主机的CPU负载状态创建一个图标

1、给指定主机新增一个图形
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、添加需要使用图表显示的对应监控项
在这里插入图片描述

3、添加完成后即可进行查看
在这里插入图片描述

在这里插入图片描述

ZABBIX 优化策略

1、停止掉无用的监控项,这样可以减少服务器处理资源时的资源利用。

2、增加监控项的取值间隔,一些不重要的监控项可以将间隔调大,从而降低频率。

3、减少历史数据保存周期,一些历史告警数据等不重要的数据,降低保留时间。

4、如果主机过多,例如超过500台,就需要考虑监控模式的调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小爪子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值