Zabbix 介绍

Zabbix 由 Alexei Vladishev 创建、现由 Zabbix SIA 主导开发支持,是一款基于 AGPL-3.0 许可证的免费开源企业级分布式监控解决方案,可监控网络、服务器、虚拟机、应用程序等多类IT对象的健康与完整性,支持轮询和 trapping,具备灵活的电子邮件告警机制、优质的数据报告与可视化功能,还提供 Web 前端方便远程评估网络及服务器状态,适用于不同规模组织的 IT 基础设施监控,且源代码可免费获取。

核心功能

Zabbix 的数据收集能力强大,支持 SNMP、IPMI 等多种可用性和性能检查及自定义检查,可按自定义间隔由 server/proxy 和 agents 执行数据采集,并能通过触发器灵活定义阈值;同时具备高度可配置的告警(支持自定义通知及远程命令等自动化操作)、实时图形、网站模拟点击跟踪等网络监控功能,提供自定义图形、网络拓扑图、报表等丰富可视化选项;其数据存储于数据库且可配置历史数据保留,配置过程便捷(支持主机添加、模板应用及模板分组与继承),还拥有网络设备及资源自动发现、基于PHP的便捷web界面、用于集成的 Zabbix API、安全的权限系统,以及适用于 Linux 和Windows 系统、C 语言编写的轻量高效 agent,同时支持通过 Zabbix proxy 实现远程监控,适配复杂环境。

架构组成

Zabbix 由几个主要的软件组件组成。

  • Zabbix server: 是 agents 向其报告可用性和完整性信息和统计信息的中心组件。server 是存储所有配置、统计和操作数据的中央存储库。
  • 数据存储: Zabbix 收集的所有配置信息以及数据都存储在数据库中。
  • Web 界面: Zabbix server 的一部分,通常(但不一定)与 server 运行在同一台设备上。
  • Zabbix proxy: 是 Zabbix 部署的可选部分;但是对于分散单个 Zabbix server 的负载非常有用。可以代替 Zabbix server 收集性能和可用性数据。
  • Zabbix agent: 部署在被监控目标上,以主动监控本地资源和应用程序,并将收集到的数据报告给 Zabbix server。从 Zabbix 4.4 开始,有两种类型的 agent 可用:Zabbix agent (轻量级,在许多平台上支持,用 C 编写)和 Zabbix agent 2 (非常灵活,易于使用插件扩展,用 Go 编写)。

兼容性

Zabbix server 可运行在 Linux、Solaris、HP-UX 等主流操作系统上,Agent 适配 Windows、Linux 等系统。

安装环境

  • 操作系统: openEuler 24.03 LTS
  • Zabbix版本: 7.4.2

Zabbix 安装

openEuler 操作系统安装

此处省略,可以参考如下文章。

使用 VirtualBox 虚拟机安装 openEuler 操作系统

基础环境预配置

修改主机名

执行命令修改主机名,修改完主机名以后需要退出重新登录一下才生效。

TERMINALbash
hostnamectl set-hostname zabbixbash

images.ictstu.com

查看主机版本信息

确认 openEuler 系统的版本。

images.ictstu.com

关闭 SElinux 和防火墙

  1. 临时关闭 SElinux。
TERMINALbash
setenforce 0
  1. 修改配置文件永久关闭。
TERMINALbash
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/'  /etc/selinux/configcat  /etc/selinux/config

images.ictstu.com

  1. 关闭防火墙并设置为开机不启动。
TERMINALbash
systemctl stop firewalldsystemctl disable firewalld

images.ictstu.com

配置软件源(可选)

openEuler 默认是官方在线源,如果觉得安装软件的速度慢,可以修改为华为云或阿里云的软件源地址。

TERMINALbash
sed -i "s@http://repo.openeuler.org/openEuler-24.03-LTS-SP1/@https://mirrors.aliyun.com/openeuler/openEuler-24.03-LTS-SP1/@g" /etc/yum.repos.d/openEuler.repodnf clean alldnf makecache

安装服务程序

安装 MySQL 服务

TERMINALbash
dnf install -y mysql mysql-server

images.ictstu.com

安装 php 和 Apache 服务

TERMINALbash
dnf install -y php php-fpm httpd

images.ictstu.com

安装编译软件和工具

TERMINALbash
dnf install -y libevent-devel mysql-devel pcre-devel pcre2-devel

images.ictstu.com

启动和初始化数据库

  1. 启动 MySQL 并设置为开机自启。
TERMINALbash
systemctl enable mysqld --now

images.ictstu.com

  1. 查看 MySQL 运行状态。
TERMINALbash
systemctl status mysqld.service

images.ictstu.com

  1. 登录 MySQL。
TERMINALbash
mysql

images.ictstu.com

  1. 初始化 MySQL 和配置 root 密码。
TERMINALbash
alter user root@'localhost' identified by 'Ictstu@123';exit;

images.ictstu.com

下载安装 Zabbix

  1. 创建 zabbix 用户及用户组。
TERMINALbash
groupadd --system zabbixuseradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

images.ictstu.com

  1. 创建 zabbix 安装目录。
TERMINALbash
mkdir -p /app/zabbixchown zabbix:zabbix -R /app/zabbix/chmod 755 -R /app/zabbix/

images.ictstu.com

  1. 下载和解压 zabbix 软件包。
TERMINALbash
wget https://cdn.zabbix.com/zabbix/sources/stable/7.4/zabbix-7.4.2.tar.gztar -xvzf zabbix-7.4.2.tar.gz

images.ictstu.com

  1. 编译 zabbix 软件,并指定安装目录。
TERMINALbash
cd zabbix-7.4.2/./configure --prefix=/app/zabbix --enable-server --enable-agent --with-mysql

images.ictstu.com

  1. 出现下图所示即表示编译完成。

    images.ictstu.com

  2. 安装 zabbix 软件。

TERMINALbash
make install

images.ictstu.com

配置 Zabbix 数据库

  1. 登录 MySQL 数据库,并创建 zabbix 数据库和用户。
TERMINALbash
mysql -uroot -p'Ictstu@123'create database zabbix character set utf8mb4 collate utf8mb4_bin;create user zabbix@localhost identified by 'Ictstu@123';grant all privileges on zabbix.* to zabbix@localhost;set global log_bin_trust_function_creators = 1;exit;

images.ictstu.com

  1. 导入 zabbix 数据库文件。
TERMINALbash
mysql -uzabbix -p'Ictstu@123' zabbix < /root/zabbix-7.4.2/database/mysql/schema.sqlmysql -uzabbix -p'Ictstu@123' zabbix < /root/zabbix-7.4.2/database/mysql/images.sqlmysql -uzabbix -p'Ictstu@123' zabbix < /root/zabbix-7.4.2/database/mysql/data.sql

images.ictstu.com

配置 Apache 和 php

  1. 启动 httpd 和 php-fpm 服务并设置为开机自启。
TERMINALbash
systemctl enable httpd --nowsystemctl enable php-fpm --now

images.ictstu.com

  1. 复制 Zabbix UI 文件到 Apache 工作目录。
TERMINALbash
cp -r /root/zabbix-7.4.2/ui/* /var/www/html/

images.ictstu.com

  1. 修改 Apache 工作目录的权限。
TERMINALbash
chown apache:apache -R /var/www/html/chmod 755 -R /var/www/html/

images.ictstu.com

  1. 复制 zabbix Apache 配置文件到 Apache 的配置文件目录中。
TERMINALbash
cp /var/www/html/httpconf.php /etc/httpd/conf.d/

images.ictstu.com

  1. 修改 Apache 配置文件,在 158 行后面加入如下内容。
TERMINALbash
vim /etc/httpd/conf/httpd.conf
CONFIG.../httpd/conf/httpd.conf
    <FilesMatch \.php$>      SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"  </FilesMatch>

images.ictstu.com

  1. 重启 Apache 服务。
TERMINALbash
systemctl restart httpd

images.ictstu.com

  1. 安装 php 程序的依赖软件。
TERMINALbash
dnf -y install php-gd php-mysqlnd php-bcmath php-xml php-mbstring

images.ictstu.com

  1. 修改 php 参数,完成下列参数的修改。
TERMINALbash
vim /etc/php.ini
CONFIG/etc/php.ini
post_max_size = 16Mmax_execution_time = 300max_input_time = 300
  1. 重启 php 服务。
TERMINALbash
systemctl restart php-fpm.service

images.ictstu.com

安装 Zabbix 前端

  1. 在浏览器中输入 openEuler 操作系统的 IP 地址,回车,将语言修改为”Chinese(zh_CN)”。

    images.ictstu.com

    images.ictstu.com

  2. 点击”下一步”,进行必要条件检查。

    images.ictstu.com

  3. 所有项目通过后点击”下一步”,配置数据库连接,填写好数据库的用户名和密码。

    images.ictstu.com

  4. 填写 Zabbix 的主机名以后点击”下一步”。

    images.ictstu.com

  5. 检查参数无误后点击”下一步”。

    images.ictstu.com

  6. 点击”完成”,完成 Zabbix 前端安装。

    images.ictstu.com

  7. 使用账号:Admin,密码:zabbix 登录。

    images.ictstu.com

  8. 登录完成。

    images.ictstu.com

配置 Zabbix Server

  1. 创建 Zabbix Server 守护程序,并写入如下内容。
TERMINALbash
vim /usr/lib/systemd/system/zabbix-server.service
CONFIG.../systemd/system/zabbix-server.service
[Unit]Description=Zabbix ServerAfter=syslog.targetAfter=network.targetAfter=postgresql.serviceAfter=pgbouncer.serviceAfter=postgresql-13.service[Service]Environment="CONFFILE=/app/zabbix/etc/zabbix_server.conf"EnvironmentFile=-/etc/sysconfig/zabbix-serverType=forkingRestart=on-failurePIDFile=/app/zabbix/zabbix_server.pidKillMode=control-groupExecStart=/app/zabbix/sbin/zabbix_server -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10sTimeoutSec=0[Install]WantedBy=multi-user.target
  1. 修改 Zabbix Server 配置文件,完成以下条目修改。
TERMINALbash
vim /app/zabbix/etc/zabbix_server.conf
CONFIG.../zabbix/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.logDBUser=zabbixDBPassword=Ictstu@123PidFile=/app/zabbix/zabbix_server.pid
  1. 修改目录的权限。
TERMINALbash
mkdir -p /var/log/zabbixchown zabbix:zabbix /var/log/zabbix/chown zabbix:zabbix -R /app/zabbix/

images.ictstu.com

  1. 启动 Zabbix Server 服务,并设置为开机自启。
TERMINALbash
systemctl enable zabbix-server.service --now

images.ictstu.com

  1. 此时再刷新页面,会显示”Zabbix服务器运行中”的值为”是”。

    images.ictstu.com

配置 Zabbix Agent

  1. 创建 Zabbix Agent 守护程序,并写入如下内容。
TERMINALbash
vim /usr/lib/systemd/system/zabbix-agent.service
CONFIG.../systemd/system/zabbix-agent.service
[Unit]Description=Zabbix AgentAfter=syslog.targetAfter=network.target[Service]Environment="CONFFILE=/app/zabbix/etc/zabbix_agent.conf"Type=simpleRestart=on-failurePIDFile=/app/zabbix/zabbix_agentd.pidKillMode=control-groupExecStart=/app/zabbix/sbin/zabbix_agentd -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10sUser=zabbixGroup=zabbix[Install]WantedBy=multi-user.target
  1. 修改 Zabbix Agent 配置文件,完成以下条目修改。
TERMINALbash
vim /app/zabbix/etc/zabbix_agentd.conf
CONFIG.../zabbix/etc/zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.logPidFile=/app/zabbix/zabbix_agentd.pid
  1. 启动 Zabbix Agent 服务,并设置为开机自启。
TERMINALbash
systemctl enable zabbix-agent.service --now/app/zabbix/sbin/zabbix_agentd -c /app/zabbix/etc/zabbix_agentd.conf

images.ictstu.com

  1. 过一会再刷新页面,主机可用性变为”1可用”,并且能够显示CPU内存等参数信息了。

    images.ictstu.com

至此,Zabbix 已经安装完成。