很多企业在内部分了互联网区域和非互联网区域,导致安装Zabbix比较麻烦,所以该篇文章教你如何搭建zabbix的私有库。
正文
环境
- 系统版本:CentOS 8.3
- 目标库Zabbix版本:5.2
- 私有库设备需要能访问外网
前提准备
- dnf -y install httpd yum-utils createrepo
创建相yum库的文件夹
- mkdir -p /var/www/html/zabbix/
安装Zabbix 5.2官方源
- rpm -Uvh https://repo.zabbix.com/zabbix/5.2/rhel/8/x86_64/zabbix-release-5.2-1.el8.noarch.rpm
解析各组件依赖并传递到仓库目录
- yumdownloader zabbix-agent --resolve --destdir=/var/www/html/zabbix/8/
- yumdownloader zabbix-server-mysql --resolve --destdir=/var/www/html/zabbix/8/
- yumdownloader mariadb-server --resolve --destdir=/var/www/html/zabbix/8/
- yumdownloader zabbix-web-mysql --resolve --destdir=/var/www/html/zabbix/8/
- yumdownloader zabbix-apache-conf --resolve --destdir=/var/www/html/zabbix/8/
剩下都是如此
制作镜像仓库
- createrepo /var/www/html/zabbix/8/
启动web服务
- systemctl start httpd && systemctl enable httpd
测试
1.备份原有yum源文件
- cd /etc/yum.repo.d/
- mkdir bak
- mv Cent* bak/
2.创建yum源文件
- vi kasar.repo
- [kasar]
- name=kasar
- baseurl=kasar
- enabled=1
- gpgcheck=0
3.安装mariadb
- dnf -y install mariadb-server
在安装mariadb-server的时候会遇到如下情况,缺少perl环境,此时需要把阿里的base源给同步过来
- mkdir -p /var/www/html/base
- wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
- reposync --rpeoid base -p /var/www/html/base
- creatrepo /var/www/html/base
- vi /etc/yum.repo.d/base.repo
- [base]
- name=base
- baseurl=http://192.168.31.14/base
- enabled=1
- gpgcheck=0
出现perl环境问题
弄完之后会遇到另外一个问题,此时需要解决元数据不可用问题
安装modular metadata生成工具
- dnf install python3-devel python3 gcc git -y
- dnf install python3-createrepo_c -y
- dnf install python3-libdnf -y
- dnf install python3-libmodulemd -y
- git clone https://github.com/rpm-software-management/modulemd-tools.git
- cd modulemd-tools/repo2module/
- python3 setup.py install --user
创建repodata和modular metadata
- cd /var/www/html/zabbix/8/
- createrepo_c .
- /root/.local/bin/repo2module -s stable . modules.yaml
- modifyrepo_c --mdtype=modules modules.yaml repodata/
在测试机器yum clean all,再进行安装,此时已经正常。
安装Zabbix其他组件
- dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent -y
此时会遇到下面的问题,这种再次同步appstream的库(约7G大小)
- mkdir /var/www/html/app
- reposync --repoid AppStream -p /var/www/html/app/
- createrepo /var/www/html/app/
创建新repo文件即可
安装正常
写在最后
其实这个过程还是比较复杂的,因为涉及到的源比较多,建议还是直接将zabbix、阿里官方的源全部同步下来最好,如果遇到元数据问题,就执行modular metadata生成,其实不仅仅是Zabbix的安全,其他的程序也可以这么做,这么做的好处就是避免一些机器无法访问外网的情况,如果都能正常访问,且访问非国外的,那么此内容的意义就没那么大了。