849 字
4 分钟
Zabbix6源码编译-openEuler24

一、环境准备#

1.1 配置主机名#

Terminal window
hostnamectl set-hostname zabbix-server
logout
# 重新登录后提示符变为
[root@zabbix-server ~]#

1.2 安装编译工具及依赖库#

Terminal window
dnf install -y gcc make tar gcc-c++
dnf install -y mariadb-devel pcre-devel libevent-devel OpenIPMI-devel

此处未安装 net-snmp-devel,因为编译时会禁用 SNMP 以避免符号冲突。若确实需要 SNMP 监控,请自行安装 net-snmp-devel 并移除编译参数中的 --without-net-snmp

1.3 安装 Web 服务基础包#

Terminal window
dnf install -y httpd mariadb-server mariadb
systemctl enable --now httpd

1.4 创建 Zabbix 用户与目录#

Terminal window
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
mkdir -p /app/zabbix/logs
chown -R zabbix:zabbix /app/zabbix

二、数据库安装与配置#

2.1 启动 MariaDB#

Terminal window
systemctl enable --now mariadb

2.2 创建 Zabbix 数据库和用户#

Terminal window
mysql

执行以下 SQL:

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
quit;

三、编译安装 Zabbix Server 与 Agent#

3.1 下载源码#

Terminal window
cd /usr/src
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.44.tar.gz
tar -xzf zabbix-6.0.44.tar.gz
cd zabbix-6.0.44

3.2 配置编译参数#

Terminal window
./configure --prefix=/app/zabbix \
--enable-server --enable-agent \
--with-mysql --without-net-snmp --with-openipmi

若提示缺少依赖,根据错误信息安装对应的 -devel 包。

3.3 编译并安装#

Terminal window
make && make install

四、导入数据库架构#

Terminal window
cd /usr/src/zabbix-6.0.44/database/mysql
mysql -uzabbix -p'zabbix' zabbix < schema.sql
mysql -uzabbix -p'zabbix' zabbix < images.sql
mysql -uzabbix -p'zabbix' zabbix < data.sql

五、配置 Zabbix Server#

编辑 /app/zabbix/etc/zabbix_server.conf

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

其他参数保持默认即可。

六、配置本机 Zabbix Agent#

编辑 /app/zabbix/etc/zabbix_agentd.conf

Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix-server

七、创建 systemd 服务#

7.1 Zabbix Server#

/usr/lib/systemd/system/zabbix-server.service

[Unit]
Description=Zabbix Server
After=network.target mariadb.service
[Service]
User=zabbix
Group=zabbix
Type=forking
ExecStart=/app/zabbix/sbin/zabbix_server -c /app/zabbix/etc/zabbix_server.conf
ExecStop=/bin/kill -SIGTERM $MAINPID
PIDFile=/tmp/zabbix_server.pid
Restart=on-failure
[Install]
WantedBy=multi-user.target

7.2 Zabbix Agent#

/usr/lib/systemd/system/zabbix-agent.service

[Unit]
Description=Zabbix Agent
After=network.target
[Service]
User=zabbix
Group=zabbix
Type=forking
ExecStart=/app/zabbix/sbin/zabbix_agentd -c /app/zabbix/etc/zabbix_agentd.conf
ExecStop=/bin/kill -SIGTERM $MAINPID
PIDFile=/tmp/zabbix_agentd.pid
Restart=on-failure
[Install]
WantedBy=multi-user.target

八、启动与验证#

Terminal window
systemctl daemon-reload
systemctl enable --now zabbix-server
systemctl enable --now zabbix-agent

检查端口:

Terminal window
netstat -ntpl | grep 10051 # Server
netstat -ntpl | grep 10050 # Agent

九、部署 Web 前端#

9.1 安装 PHP 与 PHP-FPM#

Terminal window
dnf install -y php php-fpm php-gd php-mysqlnd php-bcmath php-xml php-mbstring

9.2 配置 PHP 时区#

编辑 /etc/php.ini

[Date]
date.timezone = PRC

9.3 配置 PHP-FPM 池#

/etc/php-fpm.d/zabbix.conf

[zabbix]
user = apache
group = apache
listen = /run/php-fpm/zabbix.sock
listen.acl_users = apache
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[date.timezone] = Asia/Shanghai

9.4 启动 PHP-FPM#

Terminal window
systemctl enable --now php-fpm

9.5 部署前端#

Terminal window
cp -rf /usr/src/zabbix-6.0.44/ui/* /var/www/html/
chmod 777 /var/www/html/conf
chown -R apache:apache /var/www/html/

9.6 配置 Apache#

/etc/httpd/conf.d/zabbix.conf

Alias /zabbix /var/www/html
<Directory "/var/www/html">
Options FollowSymLinks
AllowOverride None
Require all granted
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/zabbix.sock|fcgi://localhost"
</FilesMatch>
</Directory>

重启 httpd:

Terminal window
systemctl restart httpd

十、完成 Web 安装向导#

  1. 浏览器访问 http://服务器IP/zabbix
  2. 按向导检查环境
  3. 数据库连接:
    • 类型:MySQL
    • 主机:localhost
    • 数据库名:zabbix
    • 用户:zabbix / 密码:zabbix
  4. 完成向导
  5. 默认登录:用户名 Admin,密码 zabbix

十一、添加被监控节点(Agent 源码编译版)#

11.1 安装依赖#

在 agent 节点上:

Terminal window
dnf install -y gcc make tar gcc-c++ pcre-devel

11.2 创建用户与目录#

Terminal window
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin zabbix
mkdir -p /app/zabbix
chown -R zabbix:zabbix /app/zabbix

11.3 编译安装 Agent#

Terminal window
cd /usr/src
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.44.tar.gz
tar -xzf zabbix-6.0.44.tar.gz
cd zabbix-6.0.44
./configure --prefix=/app/zabbix --enable-agent
make install

11.4 配置 Agent#

编辑 /app/zabbix/etc/zabbix_agentd.conf

Server=192.168.200.10
ServerActive=192.168.200.10
Hostname=Zabbix-agent

11.5 创建 systemd 服务#

同 7.2,保存为 /usr/lib/systemd/system/zabbix-agent.service,然后启动:

Terminal window
systemctl daemon-reload
systemctl enable --now zabbix-agent
netstat -ntpl | grep 10050

11.6 在 Web 界面添加主机#

登录 Zabbix 前端 → 配置 → 主机 → 创建主机,主机名需与 Agent 配置文件 Hostname 一致,IP 填实际地址,端口 10050,套用模板(如 Linux by Zabbix agent)。

注意事项#

  • 数据库密码 zabbix 仅为演示,生产环境务必使用强密码并限制远程访问
  • 防火墙需放行 80、10050、10051 端口
  • 如需 SNMP 监控,需重新编译并带上 --with-net-snmp
  • 首次登录后立即修改 Admin 默认密码
Zabbix6源码编译-openEuler24
https://blog.xeu.asia/posts/zabbix6-compile-openeuler/
作者
Xeu
发布于
2026-02-15
许可协议
CC BY-NC-SA 4.0