JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

性能不够?基于时序数据库的Zabbix 5.2安装指南

wys521 2024-10-03 03:37:05 精选教程 28 ℃ 0 评论

我们往往在谈论zabbix的优缺点的时候,提到最多的依然还是数据库(默认采用关系型数据库),由于关系型数据库所有的读写都是采用sql语句解析,一但并发过大或者数据量过大,处理能力就显得捉襟见肘,这也是Zabbix让人诟病的地方,终于在4.2版本正式加入了Timescale时序性数据库,该数据库在基于PG的基础上加入时序插件,既保证了易用性,同时也解决了关系型数据库的弊端(弊端仅仅指在监控场景),具体细节可以去官网看看,今天来介绍如何基于PG的Timescale时序数据库来安装Zabbix。

正文

环境

  • Linux版本:CentOS 8.2
  • Zabbix版本:5.2
  • Web:Nginx
  • 数据库:PG+Timescale

Zabbix相关组件安装

1.导入5.2阿里云源

cat <<EOF > /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.2/rhel/8/\$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/8/\$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
EOF
添加 gpgkey
curl https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
curl https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

安装zabbix相关组件

dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-agent -y

PG数据库安装

由于Timescale的最低要求为PG11,所以本文所提到的PG版本为12

1.PG12的镜像源安装

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2.安装PG12

dnf -qy module disable postgresql ##此条不输入会出现下面图一报错
dnf -y install postgresql12 postgresql12-server

3.初始化数据库

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

4.启动PG并设置为开机启动

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

5.添加TimescaleDB源

tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL 
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/8/\$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

6.安装TimescaleDB

dnf install -y timescaledb-postgresql-12

7.Timescale插件初始化PG

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

8.重启数据库

systemctl restart postgresql-12 

配置数据库

1.创建数据库实例及用户名密码

2.开启TimescaleDB插件

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

3.导入zabbix架构文件

zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

4.导入Timescale架构文件

zcat /usr/share/doc/zabbix-server-pgsql*/timescaledb.sql.gz | sudo -u zabbix psql zabbix

5.配置pg配置文件

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

两个注意点:如果all in one,则不需要在IPv4 connection改为0.0.0.0/0,第二点是认证方式全改为MD5,否则会验证失败

5.重启数据库

systemctl restart postgresql-12

配置zabbix-server相关文件

vi /etc/zabbix/zabbix-server.conf

Nginx配置

由于Nginx默认占用80端口,导致无法访问zabbix,需要进行调整

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


启动zabbix服务

systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm

前端关键页面

结语

基于Timescale的PG安装过程比较复杂,但是解决了mysql的瓶颈,所以值得一试,根据官方的测试,压缩比大概在25倍左右,读写速度远超mysql,这也是时序数据库的优势,如果大家在安装的时候有任何疑问可以留言私信我。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表