之前提到过Zabbix 5.2版本的安装方式,此次采用PG+Timescale(Server与DB分开部署)
正文
环境
- 系统版本:CentOS 8.2(可以替换为其他版本,例如ubuntu)
- Zabbix版本:5.4
- 数据库版本:postgresql 12
- Timescale版本:2.1
- Nginx版本:1.14
前提条件
关闭Selinux及防火墙
安装Zabbix源
最近官方源的网络已经恢复正常,所以直接采用Zabbix官方源即可,两台机器都需要装
rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm
安装Sever相关组件
其中zabbix-web-service为最新的报表功能
dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2 zabbix-web-service
数据库安装
第二条命令为禁用自带的pg库,不禁用会报错(如下图所示)
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf -qy module disable postgresql
dnf install -y postgresql12-server

初始化数据库
/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl enable postgresql-12 && systemctl start postgresql-12
安装Timescale时序插件源
tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL
安装Timescale插件
dnf install -y timescaledb-2-postgresql-12
初始化数据库添加时序插件并重启数据库
timescaledb-tune --pg-config=/usr/pgsql-12/bin/pg_config
systemctl restart postgresql-12

一路Y即可
创建Zabbix所需数据库及用户名密码
--pwprompt参数是为zabbix用户创建密码,不带默认不要密码
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

如果出现这个问题,由于你在root目录下,切换到其他目录即可,没有实际影响
启用TimescaleDB
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

如果出现该图证明就OK了
安装数据库文件及zabbix-agent(建议采用agent2)
dnf -y install zabbix-agent2zabbix-sql-scripts
导入数据库架构文件
zcat /usr/share/doc/zabbix-sql-scripts/postgresql/create.sql.gz | sudo -u zabbix psql zabbix
导入TimescaleDB超表文件
zcat /usr/share/doc/zabbix-sql-scripts/postgresql/timescaledb.sql.gz | sudo -u zabbix psql zabbix

和5.2略有不同
数据库配置文件修改
主要体现在两方面,一方面是Server需要远程连接到数据库,所以需要开放连接IP,另外一个是数据库远程用户的权限。
vi /var/lib/pgsql/12/data/postgresql.conf

去掉注释,改为*,开启远程访问,另外建议初始化连接数改为300
vi /var/lib/pgsql/12/data/pg_hba.conf

改为允许zabbix Server访问,其次认证方式改为trust或者md5
最后pg重新加载配置
vi /var/lib/pgsql/12/data/pg_hba.conf
Zabbix Server配置文件修改
主要修改zabbix数据库的IP和密码(用户默认为zabbix)

修改主机

修改密码(这里密码脱敏了,实际不是这个,自己注意修改)
Nginx配置
由于默认80端口被占用,所以修改官方配置文件,其次修改zabbix配置文件
vi /etc/nginx/nginx.conf

将默认端口改为8080
vi /etc/nginx/conf.d/zabbix.conf

将80端口那一行注释去掉
启动相关服务
systemctl restart zabbix-server zabbix-agent2 nginx php-fpm
systemctl enable zabbix-server zabbix-agent2 nginx php-fpm

如果出现这个错误基本是selinux的错误
前段关键操作


如果web服务也分离部署,此处的Host也要写IP
开启报表服务
1.修改配置文件,开启report进程,填写服务相关接口,如下图

如果非本地需要写IP
2.安装chrome浏览器
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
dnf -y localinstall google-chrome-stable_current_x86_64.rpm
3.启动报表相关服务
systemctl restart zabbix-web-service
systemctl enable zabbix-web-service
4.前端配置


这里记得是前端登录Url
写在最后
由于之前做过5.4报表的介绍,这里就不展现效果了,整个过程其实完整跑下来还是有点小复杂的,但是熟练后基本都可以知道每一步报错的问题在哪里,这也是学习的一个过程,相比mysql版本还是优化了很多的,具体效果怎么样大家可以自行测试。如果我的文章对您有用,麻烦点个赞哦,谢谢啦!