vlambda博客
学习文章列表

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

我们往往在谈论zabbix的优缺点的时候,提到最多的依然还是数据库(默认采用关系型数据库),一但并发过大或者数据量过大,处理能力就显得捉襟见肘,这也是Zabbix让人诟病的地方,终于在4.2版本正式加入了Timescale时序性数据库,该数据库在基于PG的基础上加入时序插件,超高压缩比和提升了写的能力,具体细节可以去官网看看,今天来介绍如何基于PG的Timescale时序数据库来安装Zabbix。


正文

环境

  • 系统版本:CentOS 8 Stream

  • Nginx:1.14

  • PHP:7.2

  • 数据库:Postgresql 12

  • Timescale:2.0

安装Zabbix官方源

rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm

安装Zabbix相关组件

dnf -y install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

Postgresql 12数据库安装

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 postgresqldnf install -y postgresql12-server

初始化Postgresql数据库

/usr/pgsql-12/bin/postgresql-12-setup initdb

启动PG数据库服务

systemctl enable postgresql-12 && systemctl start postgresql-12

安装Timescale

sudo tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL[timescale_timescaledb]name=timescale_timescaledbbaseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/\$basearchrepo_gpgcheck=1gpgcheck=0enabled=1gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkeysslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crtmetadata_expire=300EOL

安装时序插件

dnf install -y timescaledb-2-postgresql-12

初始化PG

一路Y,然后回车即可

timescaledb-tune --pg-config=/usr/pgsql-12/bin/pg_config

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

重启数据库

systemctl restart postgresql-12

配置数据库

创建数据库实例、用户名、密码,出现下图的报错部分可以忽略,因为在postgres用户无root家目录权限,如果想避免报错,可以先进其他目录,再执行命令。

sudo -u postgres createuser --pwprompt zabbixsudo -u postgres createdb -O zabbix zabbix

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

开启Timescale插件,当出现下图的显示即为成功开启。

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

导入Zabbix数据文件

zcat /usr/share/doc/zabbix-sql-scripts/postgresql/create.sql.gz | sudo -u zabbix psql zabbix

导入时序插件数据文件

如下图,导入成功

zcat /usr/share/doc/zabbix-sql-scripts/postgresql/timescaledb.sql.gz | sudo -u zabbix psql zabbix

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

配置PG

vi /var/lib/pgsql/12/data/postgresql.conf

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

vi /var/lib/pgsql/12/data/pg_hba.conf

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

重启数据库

systemctl restart postgresql-12

配置Zabbix-server

这里需要注意的是数据库部分和自身配置关系很大,如果用户名密码非配置文件默认,则需要进行调整,文中数据库实例名称为zabbix,用户名为zabbix,密码为xiaoyu123,所以仅调整数据库密码

vi /etc/zabbix/zabbix_server.conf

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

Nginx配置

将默认Nginx配置的端口部分加上注释。如下图,已经将80端口配置加上注释了,

vi /etc/nginx/nginx.conf

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

将nginx目录里的zabbix.conf的端口注释取消,如下图所示。

vi /etc/nginx/conf.d/zabbix.conf

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

启动Zabbix相关服务

systemctl start zabbix-server zabbix-agent2 nginx php-fpmsystemctl enable zabbix-server zabbix-agent2 nginx php-fpm

前端配置

进入首页,无需带/zabbix,直接访问IP即可。

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

数据库连接部分需要注意的是Database schema,默认是public。

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

默认用户名密码依然是Admin/zabbix

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

效果图

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)



报表服务安装

此时无法正常使用报表,会出现报错,因为服务暂未开启

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

安装报表服务

dnf -y install zabbix-web-service

启动报表服务

systemctl start zabbix-web-service && systemctl enable zabbix-web-service

开启报表服务

修改Zabbix Server配置文件

vi /etc/zabbix/zabbix_server.conf

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

重启Zabbix Server

systemctl restart zabbix-server

安装Chrome浏览器

Zabbix实现报表的功能其实依托模拟访问打印的方式生成PDF,所以这里不难理解为什么要装Chrome

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpmdnf -y localinstall google-chrome-stable_current_x86_64.rpm

前端配置

Zabbix 5.4全功能安装篇(数据库基于PG+Timescale)

测试正常


写在最后


报表功能其实设置起来还比较麻烦,后续会用一篇文章来写,这里简单的放个效果图,那么整个过程其实完整跑下来还是有点小复杂的,但是熟练后基本都可以知道每一步报错的问题在哪里,这也是学习的一个过程,相比mysql版本还是优化了很多的,具体效果怎么样大家可以自行测试,不熟悉切勿上生产。

END

欢迎入群讨论!