
#云原生征文# Zabbix 6.0 源码安装以及 HA 配置 原创 精华
Zabbix 6.0 已经发布,现在版本发布到了 6.0.6 ,其中新增加了原生的 HA 功能,这个功能解决了 Zabbix Server 单点的问题,算是 Zabbix 6.0 比较大的一个功能点,我们来看看这个功能怎么配置。
另外 Zabbix 6.0 发布以后,官方支持推荐的操作系统是 CentOS 8 或者以上,CentOS 8 以下不在提供编译好的安装包,需要自己进行编译,而且数据库的版本也要求最低是 MySQL 8.0 ,PHP 的版本要求最低是 7.2.5 ,但是不支持 8.0 。
环境介绍
这次安装我们需要 3 台机器,操作系统是 CentOS 7.4 ,数据库选择了 MySQL 8.0.28 ,PHP 选择了 7.4.30,机器的 IP 和用途分别是
- 192.168.1.10 : 用来部署 MySQL 数据库
- 192.168.1.11 : 用来部署 Zabbix Server Master、Zabbix Web
- 192.168.1.12 : 用来部署 Zabbix Server Slave
Zabbix 6.0 源码安装
源码安装需要先准备 MySQL 环境,然后进行编译,编译好以后进行修改配置文件。
准备 MySQL 数据库环境
首先,我们在 192.168.1.10 机器上部署 MySQL 8.0 数据库,用来给 Zabbix Server 提供数据存储。
这次部署 MySQL 8.0.28 ,需要准备如下安装包:
如果需要安装其他版本的 MySQL 版本,可以在 MySQL 的归档地址 https://downloads.mysql.com/archives/community/ 中选择版本进行下载。
下载上边 MySQL 8.0.28 的 8 个软件依赖包到指定目录,然后使用 yum 进行统一安装
安装好以后修改一下数据库配置文件 /etc/my.cnf
中的最大连接数,否则连接太多,默认值不够用,在文件的最后一行添加如下字符串:
然后启动数据库实例
启动好以后在 /var/log/mysqld.log
日志文件中搜索 password 关键字,找到 MySQL 的初始 Password,存储Password的字段大概这个样子,初次登陆的时候会被强制修改这个Password。
数据库启动好以后,接下来我们就可以初始化数据库了,一共两个步骤,一个是创建库和用户,另一个是导入 SQL 文件。
先创建数据库和用户:
接下来我们下载 Zabbix Server 的源码文件,因为数据库初始化脚本在源码文件中,
解压这个压缩文件,然后进入到目录下,把 schema.sql、images.sql、data.sql 3 个文件导入即可。
这个时候数据库就可以使用了,我们先记录好数据库的库名、用户名、Password、IP 地址,稍后在配置 Zabbix Server 的时候会用到。
注:Zabbix Server 的数据库在实验或者其他一些不太重要的地方可以自己搭建,在企业的生产环境中建议邀请公司的 DBA 同学来搭建,我们提供初始化的 SQL 文件就好,DBA 会对数据库有一些规范的要求以及适当的调优,这些对我们是有利的。如果没有 DBA 支持的话,那就自己来吧。所以本文中并不涉及任何的数据库优化项目。
准备编译环境
接下来在 192.168.1.11 上进行编译部署 Zabbix Server。
CentOS 7 默认安装了 MariaDB 的 lib 包,我们因为要统一使用 MySQL,所以先卸载掉这个包。
接下来安装编译需要的工具
其中 net-snmp-devel 是监控使用 snmp 的时候要用的,如果不需要可以不安装。
其中 unixODBC unixODBC-devel mysql-connector-odbc freetds 是通过 ODBC 监控数据库使用的,如果不需要可以不安装。
接下来创建目录结构
安装好这些编译依赖创建好部署目录以后,下载 Zabbix 源码包。
解压压缩包
接下来进入目录开始编译:
如果需要可以添加下边的编译选项
--with-net-snmp
监控中要使用 snmp--enable-java
监控中要使用 Java 的 JMX--with-unixodbc=/usr/bin/odbc_config
要通过 ODBC 监控数据库。
编译好了会提示如下,如果没有那就是编译有问题,解决遇到的问题就好。
接下来执行 make install
,等待执行结束就可以了,执行结束整个编译过程就结束了。
修改 Zabbix Server 配置
编译好以后配置文件是在 /opt/zabbix-server/etc/zabbix_server.conf
,修改这个文件,将上边的数据库的 IP 地址、数据库名称、数据库的用户名和 Password 配置进去,就基本可以了。
zabbix_server.conf
还有很多地方可以调整,这个后边有时间再看。
配置好配置文件以后,添加一个 /usr/lib/systemd/system/zabbix-server.service
文件,这个文件用来启动、重启 Zabbix Server。
安装 Zabbix Web
由于 Zabbix Web 页面是使用 PHP 写的,所以需要一个 PHP,并且需要 Nginx 进行代理,把页面放出去。由于 Zabbix 需要一个大于 7.2.5 小于 8.0 的版本,所以我们安装 PHP 7.4.30,这是 7.x 最新的版本。
这个版本可以在官网下载源码包进行编译安装,但是为了方便,我们使用 yum 进行安装,这个时候需要一个 yum 源,我们安装 remi 的 yum 源,里边包含最新的 PHP 安装包,默认的源只能安装 5.4.16 的 PHP。
执行 yum list |grep php74
就可以找到可以用的 PHP 7.4.30 和相应的各种扩展。
接下来我们安装
安装好以后启动 PHP,
启动以后将 Zabbix 源码中的 UI 文件拷贝到对应的目录下就可以。
接下来修改 PHP 的配置文件,配置文件 /etc/opt/remi/php74/php.ini
其中 date.timezone
的注释要打开,修改为 date.timezone = "Asia/Shanghai"
,其余参数参考
https://www.zabbix.com/documentation/6.0/en/manual/installation/frontend 进行修改。
修改好系统的 PHP 配置文件以后,再修改 Zabbix 的 Web 配置文件,先将模板文件重命名,使得可以在后边使用。
修改 zabbix.conf.php
,其实主要就是配置数据库的链接信息,Zabbix Server 的信息在 6.0 存储在了数据库中,不需要在进行配置了,如下
到这里 Zabbix Web 就配置好了。
解析来下载一个 Nginx ,把这段配置加到 Nginx 中,并且启动 Zabbix 。
到现在 Zabbix Server 6.0 就配置好了,做好域名的映射以后就可以通过 http://zabbix.erdong.site/zabbix/index.php
进行访问了
开启 HA 功能
上边我们只是配置了单点的 Zabbix Server,接下我们开双点,做成 HA 。
首先我们在 192.168.1.12 是编译安装 Zabbix Server,和在 192.168.1.11 上的一样,但是不需要安装 Zabbix Web。
然后修改 Zabbix Server 的配置文件在 zabbix_server.conf
配置文件中去掉 HANodeName
和 NodeAddress
参数的注释,配置上名称就可以了。
在 Master 192.168.1.11 机器上添加
在 Slave 192.168.1.12 机器上添加
先重启 Master 机器,然后重启 Slave ,这样配置就生效了,
我们就可以在页面看到 HA Cluster 是启动的。
使用 zabbix_server 命令还可以看到当前的状态。
然后我们测试一下,关闭 Master 机器,然后在进行查看:
在页面上也可以看到已经切换了。
接着把 Master 起来,从页面上可以看到和之前一样,而且后端已经是 2 台机器了。
到这里 HA 也配置好了,Zabbix Proxy 和 Zabbix Agent 对 HA 的 Zabbix Server 只要把两个 Server 的地址都配置上就好,用逗号隔开就行。
【本文正在参加云原生有奖征文活动】,活动链接:https://ost.51cto.com/posts/12598
