Centos7安装部署zabbix5
2026-02-05
运维
00
请注意,本文编写于 58 天前,最后修改于 5 天前,其中某些信息可能已经过时。

目录

CentOS7安装部署zabbix5.0
zabbix的架构理念
Server 服务端
数据库存储
Web 界面
Proxy 代理端
Agent 客户端
zabbix核心知识点理念
安装部署zabbix5.0 server端
1.关闭防火墙、seliunx,并设置主机名
2.获取zabbix的下载yum源
3.更换为阿里云源
4.下载zabbix-server和zabbix-agentd,监控本机
5.修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
6.安装zabbix需要的数据库
7.初始化数据库,并设置密码123456
8.添加数据库用户和zabbix所需的数据库信息
9.导入数据库信息
10.修改zabbix server配置文件,修改数据库的密码
11.修改zabbix的php配置文件
12.启动zabbix相关服务
13.打开浏览器访问192.168.88.100/zabbix(自己的IP地址)
添加监控主机zabbix-agent
1.关闭防火墙、seliunx,并设置主机名
2.获取zabbix的下载yum源
3.更换为阿里云源
4.下载zabbix-agent
5.三种添加监控主机方式
5.1说明
5.1.1通用参数配置
5.1.2被动模式(Passive checks related)
5.1.3主动模式(Active checks related)
5.2手动添加
5.2.1说明
5.2.2实操
5.3自动发现
5.3.1说明
5.3.2实操
5.4自动注册
5.4.1说明
5.4.2实操
zabbix监控主机常见故障及解决方法
1、zabbix被重新启动
1.1、 检查服务日志
1.2、检查系统资源
1.3、检查数据库连接
1.4、检查配置文件
1.5、检查服务状态
1.6、检查计划任务
1.7、检查系统更新
1.8、检查Zabbix Server的启动脚本
2、zabbix服务器发现进程利用率超过75%的问题
调整配置文件
3、Zabbix poller processes more than 75% busy

CentOS7安装部署zabbix5.0

zabbix的架构理念

Server 服务端

Zabbix Server 是 Zabbix 的核心组件,其功能为将 Agent 采集到的数据持久化 存储到数据库里。

数据库存储

存储所有由 Agent 采集到的数据,Zabbix 支持多种数据存储,例如

,Oracle,PostgreSQL,Elasticsearch 等。

Web 界面

Zabbix 提供了友好的 Web 界面方便我们操作,Web 界面的运行环境可以是 Nginx+PHP或者Apache+PHP服务组成。Web界面也是ZabbixServer的一部分。

Proxy 代理端

对于分布式环境,Zabbix 也提供了代理的方案,可以代替 Zabbie Server 收集 多个 Agent 的数据,然后在将收集到的数据汇总到 Zabbix Server,Proxy 可以 起到分担 Zabbix Server 负载的作用。

Agent 客户端

Zabbix Agent 被部署在需要监控主机上,用于采集监控数据并发送到 Zabbix Server 端。

zabbix核心知识点理念

主机 ( HOST ) : 就是具体的一个监控对象,某一个被监控的实例,可以是一个数据库,也可以是一个操作系统。

模板 ( Template ):定义了具体一类监控对象的抽象,比如 Windows 模板,就是用来专门在监控Windows的时候,直接选择这个模板就可以实现开箱即用的数据采集。

监控项 ( ITEM ):监控项定义了具体的某一项采集指标,比如 CPU使用率,设备温度等,采集方式可以是多种支持的采集协议。

触发器 ( Trigger ):触发器是基于监控项存在的,通过WEB页面定义触发器表达式创建。比如 CPU温度大于90度,可以定义为:last(/zabbix_server/cpu_temp) > 90

动作 ( Action ):动作是基于触发器存在的,创建动作时可以选择具体的某个触发器,当触发器表达式满足要求时,会触发对应的Action执行,具体的动作定义可以执行 JavaScript,Shell脚本 等。

安装部署zabbix5.0 server端

1.关闭防火墙、seliunx,并设置主机名

展开代码
systemctl disable --now firewalld setenforce 0 hostnamectl set-hostname zbx-server

2.获取zabbix的下载yum源

展开代码
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

3.更换为阿里云源

展开代码
cd /etc/yum.repos.d sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo yum clean all && yum makecache

4.下载zabbix-server和zabbix-agentd,监控本机

展开代码
yum install -y zabbix-server-mysql zabbix-agent yum install -y centos-release-scl

5.修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下

进入zabbix.repo,修改【zabbix-frontend】下的enable=1

同时在这里我们需要修改两个源地址

编辑CentOS-SCLo-scl.repo文件,将[centos-sclo-sclo]的baseurl修改为国内镜像源的地址

展开代码
[centos-sclo-sclo] name=CentOS-7 - SCLo sclo baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/ gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

编辑CentOS-SCLo-scl-rh.repo文件,将[centos-sclo-sclo]的baseurl修改为国内镜像源的地址

展开代码
[centos-sclo-rh] name=CentOS-7 - SCLo rh baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/ gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

安装连接数据库和连接apache前端页面的连接工具

展开代码
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

6.安装zabbix需要的数据库

展开代码
yum install -y mariadb-server mariadb systemctl enable --now mariadb

7.初始化数据库,并设置密码123456

展开代码
mysql_secure_installation

8.添加数据库用户和zabbix所需的数据库信息

展开代码
mysql -uroot -p123456 CREATE DATABASE zabbix character set utf8 collate utf8_bin; GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix'; flush privileges;

9.导入数据库信息

查询sql文件的位置

展开代码
rpm -ql zabbix-server-mysql

展开代码
zcat /usr/share/doc/zabbix-server-mysql-5.0.47/create.sql.gz | mysql -uroot -p123456 zabbix

10.修改zabbix server配置文件,修改数据库的密码

展开代码
vim /etc/zabbix/zabbix_server.conf

11.修改zabbix的php配置文件

展开代码
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

12.启动zabbix相关服务

展开代码
systemctl restart zabbix-server zabbix-agent.service httpd rh-php72-php-fpm.service systemctl enable zabbix-server zabbix-agent.service httpd rh-php72-php-fpm.service

13.打开浏览器访问192.168.88.100/zabbix(自己的IP地址)

进入配置页面

点击Nest step进入下一步检查zabbix的配置,需要所有状态都为OK,若有问题则需要去服务器检查配置(看下前面几步有没有错)

没有错误,则下一步使用zabbix账号登录数据库

连接数据库后下一步配置zabbix信息

配置完成zabbix后,检查配置项,没有问题后直接下一步保存安装

信息检查完后,结束安装

登录验证,默认账号密码:Admin/zabbix

修改zabbix语言为中文

14.解决zabbix中文乱码问题

展开代码
yum install -y wqy-microhei-fonts \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

添加监控主机zabbix-agent

上面安装部署zabbix server端的时候,让它自己本身也被监控了,相当于192.168.88.100即为服务端,也为客户端。现在来添加监控主机,添加的方法有三种,分别为主动添加,自动发现、自动注册。我们按步骤一步一步来。

这里我重新拿一台虚拟机来用,IP地址为192.168.88.101

1.关闭防火墙、seliunx,并设置主机名

这里设置主机名,因为有三种添加监控主机方式,所以分为三个主机名,手动添加:zbx-agent-1,自动发现:zbx-agent-2,自动注册:zbx-agent-3。当时就只有主机名的变化,主机IP地址还是192.168.88.101。

展开代码
systemctl disable --now firewalld setenforce 0 hostnamectl set-hostname zbx-agent-1

2.获取zabbix的下载yum源

展开代码
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

3.更换为阿里云源

展开代码
cd /etc/yum.repos.d sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo yum clean all && yum makecache

4.下载zabbix-agent

展开代码
yum install -y zabbix-agent

到了这一步之后,后面就可以像我之前说的那样,有三种配置方式,主要是在客户端的**/etc/zabbix/zabbix_agentd.con**配置文件和服务端的配置项中实现

5.三种添加监控主机方式

5.1说明

5.1.1通用参数配置

配置文件zabbix_agentd.conf里面有很多的注释,都是一些配置zabbix_agent进程的进程编号文件路径,存储日志方式,日志文件位置,日志滚动阈值等常用设定。但是这些参数大多数都和zabbix-server的常用参数意义相同,所以我们这里选择默认,不去修改配置

5.1.2被动模式(Passive checks related)
展开代码
(1)Server:用于指定允许哪台服务器拉取当前服务器的数据, 当agent端工作于被动模式,则代表server端会主动拉取agent端数据, 那么server端的IP必须与此参数的IP对应,此参数用于实现基于IP的访问控制, 如果有多个IP ,可以使用逗号隔开。 (2)ListenPort:用于指定当agent端工作于被动模式时所监听的端口号, 默认端口为10050,也就是说,server端默认访问10050端口,从而拉取数据。 (3)ListenIP:用于指定agent端工作于被动模式时所监听的IP地址, 默认值为0.0.0.0,表示监听本机的所有IP地址。 (4)StartAgents:用于指定预生成的agent进程数量。
5.1.3主动模式(Active checks related)
展开代码
(1)ServerActive:此参数用于指定当agent端工作于主动模式时, 将信息主动推送到哪台server上,当有多个IP时,可以用逗号隔开。 (2)Hostname:此参数用于指定当前主机的主机名, server端通过此参数对应的主机名识别当前主机。 (3)RefreshActiveChecks: 此参数用于指明agent端每多少秒主动将采集到的数据发往server端。

5.2手动添加

5.2.1说明
  • 安装 Zabbix Agent:根据操作系统类型,选择合适的安装方式。对于 Linux 系统,可以通过 YUM 源安装。例如,在 CentOS 系统上,先安装 Zabbix YUM 源文件,然后使用 yum install -y zabbix-agent 命令进行安装。
  • 配置 Zabbix Agent:编辑 /etc/zabbix/zabbix_agentd.conf 配置文件,设置 ServerServerActiveHostname 等参数。其中,Server 指定 Zabbix Server 的 IP 地址,ServerActive 指定主动模式下 Zabbix Server 或 Proxy 的地址,Hostname 设置被监控主机的名称。
  • 启动 Zabbix Agent 服务:使用 systemctl start zabbix-agent 命令启动服务,并通过 systemctl enable zabbix-agent 设置开机自启。
  • 在 Zabbix Server 端添加主机:登录 Zabbix Web 界面,进入“配置”->“主机”,点击“创建主机”,填写主机名称、IP 地址等信息,并选择相应的模板。
5.2.2实操

在服务端192.168.88.100的web界面上新建主机

(注意,如果没有主机群组的话,要新建一个主机群组先)

现在可以注意到该主机并没有监控任何东西,我们可以为他添加一个监控模板

手动添加成功

接下来,在客户端192.168.88.101修改该参数如下:

展开代码
vim /etc/zabbix/zabbix_agentd.conf Server=192.168.88.100 ServerActive=192.168.88.100 Hostname=zbx-agent-1

该配置文件修改完之后,就可以启动agent端进程并设置开机自启

展开代码
systemctl start zabbix-agent systemctl enable zabbix-agent netstat -antlp|grep zabbix

手动添加就到这里,之后在网页端刷新网页,就会出现可用了

提示:如果图中绿色的ZBX,你的是红色的话,可以查看监测主机中的问题选项,是不是提示Zabbix agent is not available (for 3m),这是监控主机新开机,服务端没有获取到连接之前3分钟的信息,等待3分钟之后,再次刷新,不出意外就会变绿,提示已解决该问题

5.3自动发现

5.3.1说明
  • 定义:自动发现是一种机制,Zabbix Server 会主动扫描指定的网络范围,查找符合特定条件的设备,并将这些设备添加为监控对象。
  • 工作原理
    • 配置发现规则:在 Zabbix Server 的 Web 界面中,进入“配置”->“自动发现”,创建自动发现规则。设置发现条件,如 IP 范围、端口、服务类型等。
    • 扫描网络:Zabbix Server 按照配置的规则定期扫描指定的网络范围,查找符合条件的设备。
    • 添加监控对象:一旦发现符合条件的设备,Zabbix Server 会自动将其添加为监控对象,并应用预设的监控模板。
  • 适用场景
    • 大规模网络监控:适用于需要监控大量设备的环境,如数据中心、大型企业网络等。
    • 动态环境:适用于设备频繁变化的环境,如云环境、虚拟化环境等。
  • 自动发现:Zabbix Server 主动扫描网络,发现并添加监控对象。
5.3.2实操

在服务端上配置自动发现动作

配置自动发现规则

这里为了更快的找到并添加监控主机,就设置的更新时间为30s,实际工作的时候是有标准的

至于客户端的配置是一样的

接下来,在客户端192.168.88.101修改该参数如下:

展开代码
vim /etc/zabbix/zabbix_agentd.conf Server=192.168.88.100 ServerActive=192.168.88.100 Hostname=zbx-agent-2

该配置文件修改完之后,就可以启动agent端进程并设置开机自启

展开代码
systemctl start zabbix-agent systemctl enable zabbix-agent netstat -antlp|grep zabbix

刷新网页之后,可以看到有新的主机自动添加进去,但是有没有发现一个问题,之前我们设置了主机名是zbx-agent-2,但是这里添加的主机是192.168.88.101。

为了解决这个问题,我们可以删除刚刚自动获取的监控主机,然后在服务端的**/etc/hosts**文件上添加客户端主机名和IP地址。

再次刷新网页端,我们就可以看到出现了我们想要的主机名

5.4自动注册

5.4.1说明
  • 定义:自动注册是一种机制,Zabbix Agent 会主动向 Zabbix Server 注册,请求将其添加为监控对象。

  • 工作原理

    • 配置自动注册规则:在 Zabbix Server 的 Web 界面中,进入“配置”->“自动注册”,创建自动注册规则。设置主机名模式、主机群组等参数。
    • 安装并配置 Zabbix Agent:在被监控主机上安装 Zabbix Agent,并在配置文件中设置 Hostname 参数。
    • 启动 Zabbix Agent 服务:启动 Zabbix Agent 服务后,它会自动向 Zabbix Server 注册,并根据自动注册规则被添加为监控主机。
  • 适用场景

    • 小型到中型网络:适用于设备数量较少且相对稳定的环境。
    • 快速部署:适用于需要快速部署监控的场景,特别是在设备已经安装了 Zabbix Agent 的情况下。
  • 自动注册:Zabbix Agent 主动向 Zabbix Server 注册,请求添加为监控对象。

5.4.2实操

因为上面配置了自动发现的规则,所以配置自动注册的时候,需要先删除自动发现的规则,或者停用,请自行完成

接下来是配置自动注册的规则

至于客户端的配置是一样的

接下来,在客户端192.168.88.101修改该参数如下:

展开代码
vim /etc/zabbix/zabbix_agentd.conf Server=192.168.88.100 ServerActive=192.168.88.100 Hostname=zbx-agent-3 HostMetadata=node

该配置文件修改完之后,就可以启动agent端进程并设置开机自启

展开代码
systemctl start zabbix-agent systemctl enable zabbix-agent netstat -antlp|grep zabbix

最后再刷新下网页端

zabbix监控主机常见故障及解决方法

1、zabbix被重新启动

问题:[Zabbix server has been restarted (uptime < 10m)]

当Zabbix Server显示“已重启(运行时间 < 10分钟)”时,这通常意味着Zabbix Server服务最近被重新启动了。这种情况可能是由多种原因引起的,包括计划的维护、意外的崩溃或系统更新等。

1.1、 检查服务日志

服务日志是诊断问题的第一步。查看Zabbix Server的日志文件,了解重启的具体原因。日志文件通常位于/var/log/zabbix/目录下。

展开代码
cat /var/log/zabbix/zabbix_server.log

在日志中,查找与重启相关的条目,例如“Starting Zabbix Server”或“Zabbix Server stopped”。确定服务是正常重启还是因为错误而崩溃。

1.2、检查系统资源

如果系统资源不足(如内存或CPU),可能会导致Zabbix Server崩溃。使用以下命令检查系统资源使用情况

展开代码
top 或 htop

如果发现资源使用过高,可能需要优化Zabbix配置或升级硬件。

1.3、检查数据库连接

如果Zabbix Server无法连接到数据库,它可能会崩溃或自动重启。检查数据库连接设置,并确保数据库服务正常运行。

展开代码
systemctl status mysql 或者 systemctl status postgresql
1.4、检查配置文件

检查Zabbix Server的配置文件(通常是/etc/zabbix/zabbix_server.conf),确保配置正确,特别是DBHostDBNameDBUserDBPassword等参数。

1.5、检查服务状态

确保Zabbix Server服务正在运行。可以使用以下命令检查服务状态:

展开代码
systemctl status zabbix-server

如果服务未运行,尝试重新启动它:

展开代码
systemctl restart zabbix-server
1.6、检查计划任务

检查是否有计划任务(如cron作业)可能导致Zabbix Server重启。查看/etc/cron.d//etc/crontab文件。

展开代码
cat /etc/crontab
1.7、检查系统更新

如果系统最近进行了更新,可能会导致Zabbix Server重启。检查系统更新日志:

展开代码
cat /var/log/yum.log 或者 cat /var/log/apt/history.log
1.8、检查Zabbix Server的启动脚本

检查Zabbix Server的启动脚本(通常是/etc/init.d/zabbix-server/usr/lib/systemd/system/zabbix-server.service),确保没有错误或异常配置。

2、zabbix服务器发现进程利用率超过75%的问题

问题:[Zabbix server: Utilization of discoverer processes over 75%]

在Zabbix监控系统中,如果发现进程(discoverer processes)的利用率超过75%,这通常意味着发现任务(discovery tasks)的数量超过了服务器配置的处理能力。这可能导致性能问题或者监控数据的延迟。为了解决这个问题,可以通过调整Zabbix服务器的配置来增加发现进程的数量,从而提高处理能力。

调整配置文件

首先,需要编辑Zabbix服务器的配置文件zabbix_server.conf*,这个文件通常位于**/etc/zabbix/***目录下。可以使用文本编辑器打开并修改配置文件,例如使用vim:

展开代码
vim /etc/zabbix/zabbix_server.conf

在配置文件中,找到*StartDiscoverers*参数,这个参数控制着启动的发现进程数量。如果这个值被注释或设置得太低,就可能导致发现进程的利用率过高。建议将此值设置为3或5,这样可以根据监控任务的数量适当增加处理能力。例如:

展开代码
StartDiscoverers=5

另外,*UnavailableDelay*参数控制着在发现任务失败后,服务器等待重新尝试的时间。如果这个时间设置得太短,可能会导致发现进程频繁重试,增加系统负担。可以适当增加这个值,例如设置为360秒:

展开代码
UnavailableDelay=360

修改完配置文件后,需要重启Zabbix服务器使配置生效:

展开代码
systemctl restart zabbix-server

观察效果

重启服务器后,观察一段时间,检查Zabbix的web界面或者相关的监控指标,确保发现进程的利用率已经降低,并且监控任务能够正常运行。如果问题解决,发现进程的利用率应该会降到75%以下,这意味着服务器现在有足够的处理能力来处理所有的发现任务。

总结

通过调整StartDiscoverers*UnavailableDelay*参数,可以有效地解决Zabbix服务器发现进程利用率过高的问题。这样不仅可以避免性能问题,还能确保监控数据的准确性和及时性。

3、Zabbix poller processes more than 75% busy

线上部署的zabbix监控环境运行一段时间后,突然出现了报警“Zabbix poller processes more than 75% busy“ 。其实,Zabbix的监控警报有很多种,比较常见的几个莫过于内存耗尽,网络不通,IO太慢还有这个“Zabbix poller processes more than 75% busy”了。一开始的时候因为这个即不影响使用也持续一会儿就自行解决就没有多在意。然后随着数据库的增大,Zabbix消耗的内存可是越来越多,Poller processes(轮询)开始天天Busy了.

最后,发现解决这个问题很简单。可以增加Zabbix Server启动时初始化的进程数量,但这样做直接增加了轮询的负载量,内存配置充足的情况下完全可以这么做。

具体编辑Zabbix Server的配置文件**/etc/zabbix/zabbix_server.conf**,找到配置StartPollers的段落

展开代码
StartPollers=5

取消StartPollers前的#号注释,修改5为10或者更大【由于线上机器内存64G的,我此处修改成60或80】

修改后,重启zabbix_server

展开代码
pkill -9 zabbix_server /usr/local/zabbix/sbin/zabbix-server

过一会儿就发现触发器里已经没有类似的警告了。

本文作者:zzz

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!