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 操作系统安装
此处省略,可以参考如下之前的文章。
基础环境预配置
修改主机名
执行命令修改主机名,修改完主机名以后需要退出重新登录一下才生效。
hostnamectl set-hostname zabbix
bash

查看主机版本信息
确认 openEuler 系统的版本。

关闭 SElinux 和防火墙。
临时关闭 SElinux。
setenforce 0
修改配置文件永久关闭。
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config

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

配置软件源(可选)
openEuler 默认是官方在线源,如果觉得安装软件的速度慢,可以修改为华为云或阿里云的软件源地址。
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.repo
dnf clean all
dnf makecache
安装服务程序
安装 MySQL 服务。
dnf install -y mysql mysql-server

安装 php 和 Apache 服务。
dnf install -y php php-fpm httpd

安装编译软件和工具。
dnf install -y libevent-devel mysql-devel pcre-devel pcre2-devel

启动和初始化数据库
启动 MySQL 并设置为开机自启。
systemctl enable mysqld --now

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

登录 MySQL。
mysql

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

下载安装 Zabbix
创建 zabbix 用户及用户组。
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

创建 zabbix 安装目录。
mkdir -p /app/zabbix
chown zabbix:zabbix -R /app/zabbix/
chmod 755 -R /app/zabbix/

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

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

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

安装 zabbix 软件。
make install

配置 Zabbix 数据库
登录 MySQL 数据库,并创建 zabbix 数据库和用户。
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;

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

配置 Apache 和 php
启动 httpd 和 php-fpm 服务并设置为开机自启。
systemctl enable httpd --now
systemctl enable php-fpm --now

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

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

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

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

重启 Apache 服务。
systemctl restart httpd

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

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

安装 Zabbix 前端
在浏览器中输入 openEuler 操作系统的 IP 地址,回车,将语言修改为“Chinese(zh_CN)”。


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

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

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

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

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

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

登录完成。

配置 Zabbix Server
创建 Zabbix Server 守护程序,并写入如下内容。
vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=postgresql.service
After=pgbouncer.service
After=postgresql-13.service
[Service]
Environment="CONFFILE=/app/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/app/zabbix/zabbix_server.pid
KillMode=control-group
ExecStart=/app/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target
修改 Zabbix Server 配置文件,完成以下条目修改。
vim /app/zabbix/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
DBUser=zabbix
DBPassword=Ictstu@123
PidFile=/app/zabbix/zabbix_server.pid
修改目录的权限。
mkdir -p /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix/
chown zabbix:zabbix -R /app/zabbix/

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

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

配置 Zabbix Agent
创建 Zabbix Agent 守护程序,并写入如下内容。
vim /usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/app/zabbix/etc/zabbix_agent.conf"
Type=simple
Restart=on-failure
PIDFile=/app/zabbix/zabbix_agentd.pid
KillMode=control-group
ExecStart=/app/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
修改 Zabbix Agent 配置文件,完成以下条目修改。
vim /app/zabbix/etc/zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.log
PidFile=/app/zabbix/zabbix_agentd.pid
启动 Zabbix Agent 服务,并设置为开机自启。
systemctl enable zabbix-agent.service --now
/app/zabbix/sbin/zabbix_agentd -c /app/zabbix/etc/zabbix_agentd.conf

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

至此,Zabbix 已经安装完成。











