一文学会zabbix

文章目录

概要

Zabbix 是一款开源的企业级监控解决方案,支持对服务器、网络设备、应用程序等 IT 基础设施的全面监控。

核心作用

  1. 实时监控状态采集 CPU、内存、磁盘、网络带宽等硬件指标,以及服务(如 MySQL、Nginx)、应用的运行状态,直观展示 IT 资源的健康情况。
  2. 自动告警通知当监控指标超过预设阈值(如服务器 CPU 利用率过高、服务宕机),会通过邮件、短信、钉钉等渠道自动发送告警,帮助运维人员及时排查问题。
  3. 数据可视化与分析通过图表、仪表盘展示监控数据的历史趋势,支持分析资源瓶颈、预测系统负载变化,为容量规划提供依据。
  4. 支持分布式部署可监控跨地域的大规模 IT 架构,适配中小企业到大型企业的不同监控需求

核心组件

一、 服务端核心组件

  1. Zabbix Server

    • 核心作用:整个监控系统的核心,负责收集客户端上报的数据、处理监控项逻辑、触发告警、执行动作。
    • 关键功能:接收 Agent/Proxy 的数据、计算触发器阈值、关联告警媒介、管理监控配置。
    • 实践要点:部署时需关注 CPU 和内存资源,高并发场景建议集群化部署。
  2. Zabbix Proxy

    • 核心作用:代理 Server 的功能,用于分布式监控场景,减轻 Server 的负载。
    • 关键功能:收集被监控节点数据并缓存,定期同步给 Server;可独立处理本地监控逻辑。
    • 适用场景:跨机房、跨网段的大规模监控(如分公司机房、边缘节点)。

二、 客户端核心组件

  1. Zabbix Agent

    • 核心作用:轻量级客户端程序,采集被监控主机的系统级指标(CPU、内存、磁盘、网络)。
    • 两种模式
      • 主动模式(Active):Agent 主动向 Server/Proxy 上报数据,适合大规模监控,减少 Server 压力。
      • 被动模式(Passive):Server/Proxy 主动向 Agent 发起请求获取数据,适合小型环境。
  2. 特殊监控客户端(无 Agent )

    • SNMP:用于监控网络设备(路由器、交换机),无需安装 Agent,通过 SNMP 协议采集数据。
    • IPMI:用于监控服务器硬件状态(温度、风扇、电源),直接通过硬件接口采集。
    • JMX:通过 Java Gateway 监控 Java 应用,无需在应用服务器安装额外 Agent。

三、 数据存储组件

负责存储监控配置数据和采集到的历史数据。

  1. 关系型数据库
    • 核心作用:存储监控配置信息(主机、监控项、触发器)、历史数据(指标快照、告警日志)。
    • 支持类型:MySQL/MariaDB(推荐)、PostgreSQL、Oracle
    • 实践要点:历史数据量较大时,需配置数据分区和清理策略,避免数据库性能下降。

四、 可视化与交互组件

  1. Zabbix Web UI

    • 核心作用:基于 PHP 的 Web 管理界面,是用户与 Zabbix 系统交互的入口。
    • 关键功能:配置主机和监控项、查看监控图表、配置告警媒介、管理用户权限。
    • 实践要点:需与 Web 服务器(Apache/Nginx)和 PHP 环境配合部署。
  2. Zabbix AlertScript(告警脚本)

    • 核心作用:实现告警信息的推送,是 Web UI 配置的告警媒介的底层支撑。
    • 支持类型:可通过 Shell/Python 脚本对接邮件、短信、钉钉、企业微信等平台。

整体架构流程

核心组件工作流程(应试必背)

  1. Agent 采集被监控主机指标,主动上报或被动响应 Server/Proxy 的请求;
  2. Proxy 汇总区域内数据,同步给 Server;
  3. Server 将数据写入数据库,并根据触发器阈值判断是否触发告警;
  4. 告警信息通过 AlertScript 推送给用户,用户可通过 Web UI 查看监控图表和处理告警。

部署流程

1.两台集群linux主机

zabbix-server 192.168.118.99

zabbix-agent 192.168.118.100

2.关闭防火墙、selinux

复制代码
[root@zabbix-server ~]# systemctl stop firewalld 
[root@zabbix-server ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@zabbix-server ~]# setenforce 0
[root@zabbix-server ~]# getenforce
Permissive
[root@zabbix-server ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

3.安装mariadb数据库

复制代码
[root@zabbix-server ~]#dnf install -y mariadb-server mariadb
[root@zabbix-server ~]#systemctl enable --now mariadb

4.创建zabbix数据库以及用户

复制代码
[root@zabbix-server ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.29-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> EXIT;
Bye

5.下载zabbix官方仓库

复制代码
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-1.el9.noarch.rpm
[root@zabbix-server ~]# dnf clean all

6.安装zabbix-server,zabbix-agent,webui

复制代码
[root@zabbix-server ~]# dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent

7.导入zabbix初始数据库

复制代码
[root@zabbix-server ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p123456 zabbix

8.配置zabbix server配置文件参数

复制代码
[root@zabbix-server ~]# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456

9.重新加载zabbix

复制代码
[root@zabbix-server ~]# systemctl enable --now zabbix-server zabbix-agent httpd php-fpm
[root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent httpd php-fpm

10.访问前端网页http://192.168.118.99/zabbix

  • 默认账号:Admin
  • 默认密码:zabbix

11.zabbix-agent需要做的操作

复制代码
[root@zabbix-agent ~]# systemctl stop firewalld
[root@zabbix-agent ~]# systemctl disable firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@zabbix-agent ~]# setenforce 0

[root@zabbix-agent ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-1.el9.noarch.rpm
[root@zabbix-agent ~]# dnf install zabbix-agent -y
[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.118.99  # 允许谁来拉取数据(被动模式)
ServerActive=192.168.118.99 # 主动模式上报地址
Hostname=zabbix-agent-1 # 必须与 Web UI 中创建的主机名完全一致!
[root@zabbix-agent ~]# sudo systemctl restart zabbix-agent
[root@zabbix-agent ~]# sudo systemctl enable --now zabbix-agent

12.在Zabbix Web UI 中添加该主机

13.设置监控cpu相关配置

更改监控cpu率到达50%触发告警

更改cpu过载时间为1分钟,方便观察

进行压力测试

root@zabbix-agent \~\]# tar -cJvf 6.tar.xz / ![](https://i-blog.csdnimg.cn/direct/d2991db036604605a7668c18f5b6ff91.png) **14.邮箱配置** 下载s-nail [root@zabbix-server ~]# dnf install s-nail -y 获取邮箱授权码 ![](https://i-blog.csdnimg.cn/direct/d034f1f346cc4ec1ba7321550ee9d07a.png) 邮箱配置文件并测试 [root@zabbix-server ~]# vim /etc/s-nail.rc set from="pan_lin_feng@163.com" set mta=smtps://pan_lin_feng%40163.com:QTkyL34AMN5Jd7cY@smtp.163.com:465 set mime-encoding=base64 set charset=utf-8 set v15-compat [root@zabbix-server ~]# echo "111111111111"|mail -s "邮件主题" 269721235@qq.com ### 邮件测试成功![](https://i-blog.csdnimg.cn/direct/62abf27bafa4494fa58391008825f0c3.png) **15.告警邮箱** 告警设置 ![](https://i-blog.csdnimg.cn/direct/ce286ca7347e47048769e9ca578300f7.png) 告警测试 ![](https://i-blog.csdnimg.cn/direct/8700a7bfb2934562aaf9f0e53929df6c.png) 设置动作,添加目标主机 ![](https://i-blog.csdnimg.cn/direct/d451373c28af4a52bab1637b6ba19ba9.png) 设置当出现故障后,触发邮件 ![](https://i-blog.csdnimg.cn/direct/e62ed27c75d44460bc6cf8578b020b3d.png) 设置当故障恢复后,触发邮件 ![](https://i-blog.csdnimg.cn/direct/f62da11d67e24b17bdd7f056444a5d3a.png) 去用户设置邮件地址 ![](https://i-blog.csdnimg.cn/direct/b8edcef21c0a4d4e8445c3f3590f8b47.png) ![](https://i-blog.csdnimg.cn/direct/3bbaca0eacb94bdbb7eb553a9c0eadf0.png) ![](https://i-blog.csdnimg.cn/direct/1b382614bfd64b9993dfc1ca17aa436f.png) 继续压力测试 tar -cJvf 6.tar.xz / 测试成功 ![](https://i-blog.csdnimg.cn/direct/c0c20acace8f4475b6da6e565b320c83.png) 恢复成功 ![](https://i-blog.csdnimg.cn/direct/3a0a65491f6c4df084730cd43c69b8e1.png) ### 小结 **环境准备**:部署 CentOS 系统,安装 MySQL/MariaDB(建库授权)、Apache+PHP(Web 环境); **安装组件**:通过 DNF 安装 Zabbix Server(MySQL 版)、Web 前端、Agent、数据库脚本包; **初始化配置**:执行 SQL 脚本初始化 Zabbix 数据库,配置 Server 的数据库连接,启动 Server、Agent、Apache 服务; **Web 配置 + 监控**:通过浏览器访问 Zabbix Web 完成初始化,关联主机与系统模板,配置告警(如邮件通知)。

相关推荐
乐维_lwops8 小时前
利用Zabbix监控指定IP列表的ping
网络·tcp/ip·zabbix
何以不说话7 天前
zabbix部署及nginx的监控
运维·nginx·zabbix
成为你的宁宁8 天前
【Zabbix + 睿象云实现电话告警(附图文教程):从监控项与触发器配置到睿象云电话报警通道部署全流程】
zabbix·电话报警
成为你的宁宁8 天前
【Zabbix 监控 Redis 实战教程(附图文教程):从 Zabbix-Server 部署、Agent2 安装配置到自带监控模板应用全流程】
数据库·redis·zabbix
释怀不想释怀14 天前
Zabbix框架(含相关的面试题)
zabbix
释怀不想释怀14 天前
Zabbix(安装模式)
运维·云原生·zabbix
何以不说话14 天前
记录一下学习日常⑨(ansible、Open-V、zabbix)
学习·ansible·zabbix
成为你的宁宁15 天前
【Zabbix运维监控实战(附图文教程):Nginx 服务可用性、连接请求状态、CPU 内存占用与 JVM(Jar 包 / Tomcat)全维度监控】
运维·jvm·nginx·zabbix
释怀不想释怀15 天前
Zabbix入门介绍和与BMC比较(面试回答)
zabbix