之前提到过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-agent2 zabbix-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版本还是优化了很多的,具体效果怎么样大家可以自行测试。