当前位置 : 主页 > 操作系统 > centos >

Zabbix 6 系列学习 07:包安装(时序数据库篇)

来源:互联网 收集:自由互联 发布时间:2023-09-06
其实出这期文章的目的就是展示官方为了解决传统关系型数据库在应对海量监控数据的能力不足的方案。 本文环境 系统:AlmaLinux 8.7 数据库:PostgreSQL 14 Timescale PHP 数据库部分 AlmaLinux

其实出这期文章的目的就是展示官方为了解决传统关系型数据库在应对海量监控数据的能力不足的方案。

本文环境

  • 系统:AlmaLinux 8.7
  • 数据库:PostgreSQL 14
  • Timescale
  • PHP

数据库部分

AlmaLinux 自带源为 postgresql-13,安装14版本需要安装源

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix

自带源

先禁用自带源

dnf -qy module disable postgresql

安装官方源

dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{centos})-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_02

安装 PostgreSQL 数据库

dnf install postgresql14-server -y

PostgreSQL 初始化

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

启动数据库

systemctl enable postgresql-14 && systemctl start postgresql-14

Timescale 部分

导入 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

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_03

安装 timescale

dnf install timescaledb-2-postgresql-14 -y

安装完成后会提示下面命令,这是Timescaledb 提供的优化工具,用下面命令进行调用,一路 Y 即可

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_04

timescaledb-tune --pg-cnotallow=/usr/pgsql-14/bin/pg_config

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_05

重启数据库

systemctl restart postgresql-14

Zabbix 部分

安装官方源

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

安装 Zabbix 相关组件

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

Zabbix 数据库部分

创建数据库实例、用户

cd /tmp
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

在第一条命令执行时,需要输入账户的密码,这个在下面会用到

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_06

登录数据库测试,是否正常

psql -U zabbix -h 127.0.0.1

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_07

这里和以前不一样,以前需要改权限,可以看看配置文件

vim /var/lib/pgsql/14/data/pg_hba.conf

如果用 host 方式是可以采用用户名密码方式的登录的,而 local 需要切换相关用户才能登录,所以这里无需更改

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_08

由于采用了 Timescale插件,原有的连接数是不够的,所以需要修改连接数,不然会出现下面情况

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_09

连接数由25改为100

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_10

重启数据库

systemctl restart postgresql-14

导入 Zabbix 相关数据文件

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

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_11

启用 Timescale 插件

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


Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_12

导入超表文件

cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb.sql | sudo -u zabbix psql zabbix

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_13

Zabbix 配置部分

修改 Zabbix 配置,本文需要修改两个部分,如下图

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_14

DBHost 改为 IP

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_15

数据库密码改为前面 Zabbix 用户的密码

启动组件

systemctl start zabbix-server zabbix-agent2 httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm

前端配置

本文采用的 apache,默认访问地址为 http://server ip 地址/zabbix

本文为​​http://192.168.21.53/zabbix​

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_16

环境检查,下一步

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_17

数据库界面需要关注4点,host 部分由 localhost 改为 127.0.0.1Database schema

部分填写 public,Password 部分填写用户的密码即可,TLS加密取消

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_18

时区、服务器名称自行调整,下一步

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_19

Zabbix Server信息,下一步

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_20

完成安装

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_21

登录页,用户名/密码依然为 Admin/zabbix

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_22

效果图

首页

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_23

Dashboard

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_24

最新数据

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_25

Housekeeping 默认开启了7天的历史数据、趋势数据的压缩,可以降低磁盘的使用率,时间根据自身的情况自行设定

Zabbix 6 系列学习 07:包安装(时序数据库篇)_Zabbix_26

最后

该方案相比传统的方案的确优化的要好一些,但实际生产过程中还有很多性能相关的因素掣肘导致体验不佳,例如磁盘的性能不够,网络存在延迟,大量超时等待都会影响 Zabbix 的性能,调优是个比较漫长的过程,后续都会提到。

网友评论