离线环境下源码编译安装部署 Zabbix 6.4 LTS 详细教程

前言

在严格隔离的生产环境中,无法使用包管理器(如 yum/apt)直接安装软件。本文将详细介绍如何在完全离线的 Linux 环境下,通过源码编译的方式,手动部署一套完整的 Zabbix 6.4 LTS 监控系统(包括 Server、Web 前端和 Agent)。

准备工作

1. 环境规划

  • Zabbix Server & Web 前端: 192.168.80.100 (CentOS 7)
  • 数据库 (mysql): 192.168.80.100 (CentOS 7)
  • Zabbix Agent (被监控主机): 192.168.80.101 (CentOS 7)
  • 网络: 服务器之间网络互通,防火墙已配置。

2. zabbix源码下载,环境准备

( 前面的文章有相关的安装教程,可参考)

步骤一、在离线 Zabbix Server 上源码编译安装

## 安装依赖
yum install libevent-devel net-snmp-devel mysql-devel   -y
## 解压文件
tar -zxvf  zabbix-6.4.21.tar.gz
cd zabbix-6.4.21
## 编译安装
./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-net-snmp --with-mysql
make install

步骤二、配置信息

1. 创建相关用户

## 创建用户组、创建用户
groupadd zabbix
useradd -g zabbix -M -s /sbin/nologin zabbix

2. 创建数据库,导入初始架构和数据

## 创建zabbix数据库
create database zabbix character set utf8 collate utf8_bin;
## 创建zabbix用户,用于本地和远程连接
create user zabbix@localhost identified by 'Zabbix@123';
create user 'zabbix'@'%' identified by 'Zabbix@123';
grant all privileges on zabbix.* to zabbix@'%';
grant all privileges on *.* to zabbix@localhost;
set global log_bin_trust_function_creators = 0;
#修改加密方式(重要)
ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Zabbix@123';
flush privileges;

导入数据文件

cd database/mysql/
mysql -uzabbix -pZabbix@123 zabbix < schema.sql
mysql -uzabbix -pZabbix@123 zabbix < images.sql
mysql -uzabbix -pZabbix@123 zabbix < data.sql

3. 修改zabbix配置文件

vi /usr/local/zabbix/etc/zabbix_server.conf
## 找到DBPassword,设置为刚刚创建zabbix用户时设置的密码
DBPassword = Zabbix@123

步骤三、启动zabbix_server

cd /usr/local/zabbix/sbin/
./zabbix_server
#日志
tail -200f /tmp/zabbix_server.log

## 可注册成系统服务
cat /etc/systemd/system/zabbix-server.service << 'EOF'
[Unit]
Description=Zabbix Server
After=network.target

[Service]
Type=simple
PIDFile=/tmp/zabbix_server.pid
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable zabbix-server
sudo systemctl start zabbix-server

步骤四、配置前端

# 在解压目录下找到前端文件
cd zabbix-6.4.10
cp -r ui/* /usr/local/nginx/html
cd /usr/local/nginx/sbin
./nginx -s reload

步骤五、访问 Zabbix Web 安装向导

打开浏览器,访问 http://192.168.80.100/zabbix.php?action=dashboard.view
根据提示下一步即可
初始密码:Admin/zabbix

步骤六、安装zabbix-agent2

rpm包下载:
依赖包:
pcre2:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/pcre2-10.23-2.el7.x86_64.rpm
zabbix-agent:https://mirrors.aliyun.com/zabbix/zabbix/6.4/rhel/7/x86_64/zabbix-agent2-6.4.21-release1.el7.x86_64.rpm

## rpm或者用yum安装
# rpm
rpm -ivh pcre2-10.23-2.el7.x86_64.rpm
rpm -ivh zabbix-agent2-6.4.21-release1.el7.x86_64.rpm
# yum (自动解决依赖问题)
yum localinstall zabbix-agent2-6.4.21-release1.el7.x86_64.rpm
## 配置连接zabbix-server的地址
sed -i "s/Server=.*/Server=192.168.80.100/" /etc/zabbix/zabbix_agent2.conf
systemctl start zabbix-agent2
## 日志
tail -f /var/log/zabbix/zabbix_agent2.log 

常见问题

  • 解决中文乱码问题:
## 上传中文字体(可从window电脑找到字体包simkai.ttf)至zabbix前端路径:/usr/local/nginx/html/assets/fonts 
## 重命名 
mv simkai.ttf DejaVuSans.ttf

总结

源码编译安装在离线环境下提供了最大的灵活性,但也带来了巨大的复杂性,主要体现在依赖管理上。此方法适合对 Linux 系统和软件编译有较深理解的管理员。对于生产环境,如果条件允许,建议优先考虑使用离线 RPM 仓库的方式,更为稳定和可维护。