3

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

 1 year ago
source link: https://blog.51cto.com/kasarit/5935922
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

数据库部分

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.1,Database 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 的性能,调优是个比较漫长的过程,后续都会提到。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK