RHEL封闭环境部署zabbix

**背景:**client端操作系统升级.然后安装了该操作系统基础版本的zabbix-client,与原来的zabbix-server版本不匹配,需要重新部署一台zabbix-server

zabbix-server GUI上该client采集不到系统数据

说明:下文的 x.x.x.x 代表服务端的IP,y.y.y.y 代表客户端的IP

Received empty response from Zabbix Agent at [y.y.y.y]. Assuming that agent dropped connection because of access permissions.

log里报错是

3038724:20250106:110900.510 active check configuration update from [127.0.0.1:10051] started to fail (cannot connect to [[127.0.0.1]:10051]: [111] Connection refused)

3038723:20250106:110918.618 Message from x.x.x.x is missing header. Message ignored.

问了chatGTP老师,列举了一些原因,其中一条是服务端zabbix和客户端版本不匹配

服务端的版本是3.4,客户端是zabbix 4.0

Zabbix Official Repository 在官网找rpm包发现 3.4最高到rhel7,client端是rhel8,服务端不方便动,所以决定基于rhel8再装一台zabbix-server

封闭环境部署zabbix-server遇到的难点

(1)最大的难点是离线环境寻找、安装依赖包,服务器不允许连外网真心酸......

如果能连接互联网,按如下装包即可,数据库和web的包安装方法类似

添加 Zabbix 官方仓库:
sudo yum install -y https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-3.el8.noarch.rpm
sudo yum clean all

安装 Zabbix Server 和相关组件:
sudo yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent

官方安装文档传送门

1 Red Hat Enterprise Linux and derivatives

总结离线安装需要的包可以通过以下途径找到

  • 挂载rhel8 iso (mariadb相关的包,php相关包,net-snmp,net-snmp-libs,OpenIPMI,OpenIPMI-libs等等)

  • Zabbix Official Repository Zabbix Official Repository (zabbix相关的包能在此找到)

  • rpm2html/rpmfind (没有用上)

(2)第一次知道原来两个rpm包可以互相依赖。。如果用rpm装,一起装就可以解决此问题。。

[root@RHEL8-xxx zabbix]# rpm -ivh zabbix-web-mysql-6.0.0-1.el8.noarch.rpm
warning: zabbix-web-mysql-6.0.0-1.el8.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
error: Failed dependencies:
        zabbix-web-deps = 6.0.0-1.el8 is needed by zabbix-web-mysql-6.0.0-1.el8.noarch
[root@RHEL8-xxx zabbix]# rpm -ivh zabbix-web-deps-6.0.0-1.el8.noarch.rpm
warning: zabbix-web-deps-6.0.0-1.el8.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
error: Failed dependencies:
        zabbix-web-database = 6.0.0-1.el8 is needed by zabbix-web-deps-6.0.0-1.el8.noarch
[root@RHEL8-xxx zabbix]# 
[root@RHEL8-xxx zabbix]# rpm -ivh zabbix-web-mysql-6.0.0-1.el8.noarch.rpm zabbix-web-deps-6.0.0-1.el8.noarch.rpm
warning: zabbix-web-mysql-6.0.0-1.el8.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-web-deps-6.0.0-1.el8      ################################# [ 50%]
   2:zabbix-web-mysql-6.0.0-1.el8     ################################# [100%]
[root@RHEL8-xxx zabbix]#

值得一提的是,上述提示中的依赖 zabbix-web-database并不是一个包名,database可以是mysql,psql等等,一开始没反应过来,到处找这个包。。也因此把别的包装完了才发现这里有两个包是互相依赖的。

(3)需要注意 mariadb-server版本有要求

对于RHEL8上安装zabbix 6.0(Zabbix 6.0 LTS 长期支持到2026), chatGPT老师对数据库版本的建议是 "推荐使用 MySQL 8.0MariaDB 10.5+(RHEL 8 默认提供 MariaDB 10.3,但可能需要升级)"。

我试了装RHEL 8 iso里的默认版本 10.3 日志里会报错,后来把数据库卸载重装了10.5。

/var/log/zabbix/zabbix_server.log

2272091:20250110:153936.207 Unable to start Zabbix server due to unsupported MariaDB database server version (10.03.39)
2272091:20250110:153936.207 Must be at least (10.05.00)
2272091:20250110:153936.207 Use of supported database version is highly recommended.

部署可参考的帖子

别的帖主写的安装过程

RHEL 8.8 安装部署 Zabbix 6.4 详细过程_红帽8安装zabbix-CSDN博客

RedHat9 | Zabbix-Server监控服务部署_redhat部署zabbix-CSDN博客

========================================================================

以下自己留用

https://www.zabbix.com/download?zabbix=6.0\&os_distribution=red_hat_enterprise_linux\&os_version=8\&components=server_frontend_agent\&db=mysql\&ws=apache

1.Zabbix 前端要求 PHP 7.4 或更高版本。RHEL 8 默认支持 PHP 7.4,可以直接安装

关闭 SELinux(建议关闭,或正确配置)

临时关闭: sudo setenforce 0
永久关闭: sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

配置防火墙: 开放所需端口(10050、10051,HTTP 服务端口80或HTTPS端口443):
sudo firewall-cmd --permanent --add-port=10050-10051/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

  1. 安装 Zabbix Server 和相关组件

开发环境安装命令参考 # dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

实际使用的命令:
rpm -ivh zabbix-agent-6.0.0-1.el8.x86_64.rpm
rpm -ivh zabbix-apache-conf-6.0.0-1.el8.noarch.rpm
rpm -ivh dejavu-sans-fonts-2.35-7.el8.noarch.rpm
rpm -ivh zabbix-web-6.0.0-1.el8.noarch.rpm
yum --disablerepo=* --enablerepo=rhel-source install php-bcmath php-fpm php-gd php-json php-ldap php-mbstring php-xml

#fping is needed by zabbix-server-mysql-6.0.0-1.el8.x86_64
#libOpenIPMI.so.0()(64bit) is needed by zabbix-server-mysql-6.0.0-1.el8.x86_64
#libOpenIPMIposix.so.0()(64bit) is needed by zabbix-server-mysql-6.0.0-1.el8.x86_64
#libnetsnmp.so.35()(64bit) is needed by zabbix-server-mysql-6.0.0-1.el8.x86_64
#fping 提供网络可用性检查
#OpenIPMI 提供 IPMI 支持库
#Net-SNMP 提供 SNMP 协议支持

rpm -ivh fping-4.2-2.el8.x86_64.rpm
yum --disablerepo=* --enablerepo=rhel-baseos --enablerepo=rhel-appstream install net-snmp net-snmp-libs
yum --disablerepo=* --enablerepo=rhel-baseos --enablerepo=rhel-appstream install OpenIPMI OpenIPMI-libs
rpm -ivh zabbix-server-mysql-6.0.0-1.el8.x86_64.rpm

#php-mysqlnd is needed by zabbix-web-mysql-6.0.0-1.el8.noarch,安装php-mysqlnd
yum --disablerepo=* --enablerepo=rhel-baseos --enablerepo=rhel-appstream install php-mysqlnd

#以下两个包互相依赖,需要一起安装
rpm -ivh zabbix-web-mysql-6.0.0-1.el8.noarch.rpm zabbix-web-deps-6.0.0-1.el8.noarch.rpm
rpm -ivh zabbix-apache-conf-6.0.0-1.el8.noarch.rpm
rpm -ivh zabbix-sql-scripts-6.0.0-1.el8.noarch.rpm

本地yum源配置(已将RHEL8.10 iso 挂载至 /mnt)

[rhel-baseos]
name=RHEL8
baseurl=file:///mnt/BaseOS
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-appstream]
name=RHEL8
baseurl=file:///mnt/AppStream
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

  1. 安装和配置数据库
    安装 MariaDB: RHEL 8 默认提供 MariaDB 10.3。需要更高版本MariaDB 10.5+。

开放环境参考命令 sudo yum install -y mariadb-server

实际使用的命令:

rpm -ivh mariadb-10.5.22-1.module+el8.8.0+20134+a92c7654.x86_64.rpm mariadb-backup-10.5.22-1.module+el8.8.0+20134+a92c7654.x86_64.rpm mariadb-common-10.5.22-1.module+el8.8.0+20134+a92c7654.x86_64.rpm mariadb-errmsg-10.5.22-1.module+el8.8.0+20134+a92c7654.x86_64.rpm mariadb-gssapi-server-10.5.22-1.module+el8.8.0+20134+a92c7654.x86_64.rpm mariadb-server-10.5.22-1.module+el8.8.0+20134+a92c7654.x86_64.rpm mariadb-server-utils-10.5.22-1.module+el8.8.0+20134+a92c7654.x86_64.rpm

rpm -ivh mysql-selinux-1.0.10-1.el8.noarch.rpm

sudo systemctl start mariadb
sudo systemctl enable mariadb

配置数据库并创建用户:

mysql -uroot -p
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
导入初始数据库结构:
zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

  1. 配置 Zabbix Server

编辑配置文件: 修改 /etc/zabbix/zabbix_server.conf,设置数据库信息:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix_password
启动 Zabbix 服务:
sudo systemctl start zabbix-server zabbix-agent
sudo systemctl enable zabbix-server zabbix-agent

  1. 配置 Zabbix Web 前端
    配置 PHP: 修改 /etc/php.ini,设置 PHP 参数:
    max_execution_time = 300
    memory_limit = 128M
    post_max_size = 16M
    upload_max_filesize = 2M
    date.timezone = Asia/Shanghai
    启动 Apache:
    sudo systemctl restart httpd
    sudo systemctl enable httpd
    访问 Zabbix Web 界面: 打开浏览器,访问 http://<your_server_ip>/zabbix,按照向导完成配置。

6.服务端安装 zabbix-agent,编辑配置文件, 启动 zabbix-agent

服务端配置文件 /etc/zabbix/zabbix_agentd.conf

Server=<zabbix server IP>
SourceIP=<zabbix agent IP>
ListenIP= <zabbix agent IP>

systemctl start zabbix-agent
systemctl enable zabbix-agent

  1. 登录 Zabbix

默认管理员账户:Admin
默认密码:zabbix

添加监控的服务器

点击Graph可以查看监控的系统数据

可以指定时间区间

Filter可以筛选指标

Configuration -> Host 里Items可以创建要观察的指标,Trigger可以创建告警,具体可参考官网安装步骤 3.Start using Zabbix

Download and install Zabbix

相关推荐
自信不孤单几秒前
网络编程套接字(上)
服务器·网络·udp·socket·ip地址·端口号
yimenren几秒前
docker desktop使用ollama在GPU上运行deepseek r1大模型
运维·docker·容器
阿猿收手吧!2 小时前
【Docker】Docker入门了解
linux·运维·服务器·docker·云原生·容器·eureka
Mr_Xuhhh10 小时前
进程间通信
android·java·服务器·开发语言·数据库
_zwy11 小时前
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
linux·运维·c++·深度学习·神经网络
别致的影分身11 小时前
Linux网络 应用层协议 HTTP
运维·网络·网络协议·http
ccnnlxc12 小时前
日志收集Day007
运维·jenkins
鲁子狄12 小时前
[笔记] 极狐GitLab实例 : 手动备份步骤总结
linux·运维·笔记·ubuntu·centos·gitlab
Xam_d_LM12 小时前
【Linux】列出所有连接的 WiFi 网络的密码
linux·服务器·网络