文章目录
前言
在严格隔离的生产环境中,无法使用包管理器(如 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源码下载,环境准备
( 前面的文章有相关的安装教程,可参考)
- 数据库:mysql8.0.36 安装教程
- nginx:nginx1.20.2 安装教程
- php:php8.0 安装教程
- zabbix源码下载地址:https://cdn.zabbix.com/zabbix/sources/oldstable/6.4/zabbix-6.4.21.tar.gz
步骤一、在离线 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 仓库的方式,更为稳定和可维护。