各位运维的朋友们都有可能遇到过在公司内网环境下无法访问外网情况,无法访问外网 yum 源部署 ZABBIX 对于 rpm 包依赖问题比较头疼。本文将会进行离线部署实战。同时大家也可以写成一份 shell 脚本直接离线安装一键部署就可以了。
离线安装的话就需要 rpm 包和依赖包,那么这时候我们首先就要先在有外网的环境下载下来,完了之后,可以将 rpm 打包起来,再写个执行脚本,就可以一键部署了;测试的话就可以找一个内网环境来测试了。
在有外网的环境中操作并下载离线安装包
1、获取 zabbix 源
#没有wget命令的可以先下载一个wget命令
yum -y install wget
#接着下载zabbix-release-5.0-1.el7.noarch.rpm包
wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
复制代码
显示 200ok 即下载成功,然后我们安装;
rpm -ivh zabbix-release-5.0-1.el7.noarch.rpm
复制代码
#看一下/etc/yum.repos.d目录下多了一个zabbix.repo
ls /etc/yum.repos.d
复制代码
这就相当于下载了一个 zabbix 的源;
2、修改 zabbix.repo 文件
#进入zabbix.repo文件中
vim /etc/yum.repos.d/zabbix.repo
复制代码
将 zabbix-frontend 下面的 enabled = 0 更改为 enabled = 1
3、修改 yum 源为阿里源
[root@zabbix-5 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@zabbix-5 ~]# yum makecache fast
复制代码
4、下载安装 zabbix5.0 所需的 rpm 包
使用 yum --downloadonly 进行下载 rpm 包和相关依赖包--downloaddir 参数可进行设置下载保存路径
下载 mariadb(mysql)数据库
yum install mariadb-server.x86_64 --downloadonly --downloaddir=/tmp/offline_rpm
复制代码
下载 zabbix 主服务
yum install zabbix-server-mysql zabbix-agent --downloadonly --downloaddir=/tmp/offline_rpm
复制代码
下载 Red Hat Software Collections
yum install centos-release-scl --downloadonly --downloaddir=/tmp/offline_rpm
复制代码
安装 Red Hat Software Collections
yum -y install centos-release-scl
复制代码
下载 Zabbix web 服务
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl --downloadonly --downloaddir=/tmp/offline_rpm
复制代码
下载 zabbix_get 服务
yum install zabbix-get --downloadonly --downloaddir=/tmp/offline_rpm
复制代码
5、创建本地 yum 仓库
使用 createrepo 来创建 repository 仓库,如果系统里没有该命令的话需要先进行 createrepo 的安装 yum -y install createrepo
#安装createrepo
yum -y install createrepo
#使用createrepo来创建repository仓库
createrepo /tmp/offline_rpm
复制代码
完了会生成一个 repodata 子目录
将 /tmp/offline_rpm/下面全部可以打个 tar 包,后续直接用脚本安装即可;
在内网中离线安装(使用脚本一键安装)
大家可以边做边写成脚本
1、准备 yum 仓库
将 offline_rpm.tar 安装包下载下来,然后传到内网服务器中,解压,并且放到/tmp 目录下。
/将 etc/yum.repos.d 下面所有 repo 文件进行转移至 bak 文件夹下
#移动offline_rpm.tar到/tmp目录下
mv offline_rpm.tar /tmp/
#切换到/tmp目录下
cd /tmp
#解压offline_rpm.tar
tar xf offline_rpm.tar
复制代码
就可以看到这个目录
#将/etc/yum.repos.d 下面所有repo文件进行转移至bak文件夹下
mv /etc/yum.repos.d/*.repo bak/
复制代码
1.1、新建一个 repo 源文件
#在/etc/yum.repos.d/新建一个repo源文件
[root@localhost tmp]# vim /etc/yum.repos.d/new.repo
[New]
name=New
baseurl=file:///tmp/offline_rpm
gpgcheck=0
enabled=1
:wq保存退出
#清除元数据缓存
yum clean all
#加载元数据缓存
yum makecache
复制代码
2、安装 Zabbix server 和 agent
yum -y install zabbix-server-mysql zabbix-agent
复制代码
3、安装 mysql 数据库
yum -y install mariadb-server.x86_64
复制代码
4、安装 RHEL Software collections(SCLs)
Software collections 是一个 Linux 软件多版本共存的解决方案。
yum -y install centos-release-scl
复制代码
5、安装前端组件
yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
复制代码
6、安装 zabbix-get,调试组件
yum -y install zabbix-get
复制代码
7、配置数据库
7.1、启动 mariadb 并设置开机自启
#启动mariadb
systemctl start mariadb.service
#设置开机自启
systemctl enable mariadb.service
复制代码
7.2、mysql 安全配置向导(可忽略)
--为root用户设置密码
--删除匿名账号
--取消root用户远程登录
--删除test库和对test库的访问权限
--刷新授权表使修改生效
mysql_secure_installation
复制代码
7.3、设置 mysql 的登录密码
mysqladmin -u root password "123456"
复制代码
7.4、设置 mysql 用户相关的操作
#登录mysql
mysql -uroot -p123456
#修改数据库字符集
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#创建数据库
MariaDB [(none)]> create user zabbix@localhost identified by '123456';
#用户授权
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
#退出数据库
MariaDB [(none)]> quit;
复制代码
7.5、导入初始架构和数据
#查看sql文件路径
rpm -ql zabbix-server-mysql
#切换到/usr/share/doc/zabbix-server-mysql-5.0.25/目录
cd /usr/share/doc/zabbix-server-mysql-5.0.25/
#解压create.sql.gz
gzip -d create.sql.gz
#导入数据
mysql -uzabbix -p123456 zabbix <create.sql
复制代码
完了之后可以自己进入数据库查验一下:
#登录、进入mysql
mysql -uroot -p123456
#查看所有数据库
MariaDB [(none)]> show databases;
#查看数据库表
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
#就会看到很多表,这就说明导入成功了;
复制代码
就会看到一个 zabbix 目录
8、修改 zabbix-server 和 php 配置文件
8.1、编辑 zabbix_server.conf
#进入zabbix_server.conf配置文件中
vim /etc/zabbix/zabbix_server.conf
#找到对应项有注释则取消;没有的则添加;
DBHost= localhost
DBPassword = 123456
复制代码
8.2、编辑 php 配置文件
#进入php的配置文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#删除第25行,也就是最后一行;
dd就可以删除了
#更改时区为上海时区
php_value[date.timezone] = Asia/Shanghai
复制代码
保存退出,启动服务就可以;
9、启动所有服务并设置开机自启
#启动zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
#设置开机自启
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
复制代码
10、如果存在问题请检查日志
vim /var/log/zabbix_server.log
复制代码
常见问题:
问题 1:cannot start preprocessing service: Cannot bind socket to“/var/run/zabbix/zabbix_server_preprocessing.sock”: [13] Permission denied. 解决: 关闭系统防火墙:
systemctl stop firewalld.service #停止 firewallsystemctl disable firewalld.service #禁止 firewall 开机启动重启 zabbix 服务: systemctl start zabbix-server zabbix-agent httpd
问题 2:cannot start alert manager service: Cannot bind socket to“/var/run/zabbix/zabbix_server_alerter.sock”: [13] Permission denied.解决:关闭 selinux: 修改 etc/selinux/config 设置 SELINUX=disabled 重启系统 setenforce 0(如果不想重启服务器可以运行此命令)。#使配置升效。 重启 zabbix 服务: systemctl startzabbix-server zabbix-agent httpd
页面访问
ip/zabbix
一路 next step,到这个要输入密码,密码是 123456
下一步,需要你给这个监控起一个名字;
一直下一步,直到登录(默认的账号是:Admin 密码是:zabbix)
登录进入页面就可以了;
重要:
需要脚本安装一键部署的:zabbix5.0离线脚本一键安装(包含服务端、客户端、脚本和使用说明)
评论