Zabbix 5.0版本支持TimescaleDB作为后端数据库,可提供数据自动分区、自动数据清理、数据压缩等特性。
概念:
- hypertable(超表):用于创建表和索引,更改表,插入数据,选择数据的数据的抽象
层表 - Chunks :超级表会自动拆分为多个块; 每个块对应一个特定的时间间隔和分区键空间
的一个区域
特性
- 数据压缩 :数据按列压缩,节省90%存储空间
- 自动分片 :自动分片(按时间、空间自动分片(chunk))
环境介绍
环境 | 版本 |
---|---|
操作系统 | CentOS 7.9 x86-64 |
数据库 | PostgreSQL 12.4 |
TimescaleDB | TimescaleDB 1.7.4 |
Zabbix | Zabbix server 5.0.4 |
更新系统
yum update -y
关闭selinux/firewall,安装基础组件
systemctl disable --now firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
yum install lrzsz wget unzip screen chrony yum-utils -y
开启时间同步
systemctl enable --now chronyd
reboot
安装Zabbix Server
安装zabbix源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
默认源为官方源地址访问较慢切换为阿里云源
sed -i "s#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#g" /etc/yum.repos.d/zabbix.repo
安装zabbix server及agent
yum install zabbix-server-pgsql zabbix-agent –y
安装zabbix web
zabbix5.0需要高版本php,因此需要安装scl源,安装scl源
yum install centos-release-scl –y
默认zabbix源禁用了前端源,启用
vi /etc/yum.repos.d/zabbix.repo
找到[zabbix-frontend] 段,enabled修改为1
enabled=1
安装zabbix web
yum install zabbix-web-pgsql-scl zabbix-nginx-conf-scl -y
修改nginx配置文件
vi /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
主要修改端口及server_name字段
listen 80;
server_name 192.168.61.7;
修改默认端口为80,可根据实际需要修改
修改php参数
vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
主要修改时区和ACL
listen.acl_users = apache,nginx
php_value[date.timezone] = Asia/Shanghai
安装PostgreSQL
使用yum方式安装PostgreSQL,首先安装PostgreSQL源
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装PostgreSQL
yum install -y postgresql12-server
安装之后需要 初始化数据库
/usr/pgsql-12/bin/postgresql-12-setup initdb
启动PostgreSQL
systemctl enable --now postgresql-12
安装TimescaleDB插件 使用yum方式安装timesacledb,安装timesacledb源
tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/7/\$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
安装timescaledb
yum install -y timescaledb-postgresql-12
安装之后使用以下脚本进行参数初始化,一切按照默认,按y完成初始化
timescaledb-tune --pg-config=/usr/pgsql-12/bin/pg_config
# 重启pg数据库
systemctl restart postgresql-12
# Zabbix数据库准备,建立zabbix用户
sudo -u postgres createuser --pwprompt zabbix
配置zabbix用户的密码为zabbixpwd123
建立zabbix数据库
sudo -u postgres createdb -O zabbix zabbix
开启timescaledb 插件
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
开启后会出现提示
导入zabbix基础SQL
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
导入timescaledb配置SQL
zcat /usr/share/doc/zabbix-server-pgsql*/timescaledb.sql.gz | sudo -u zabbix psql zabbix
PostgreSQL配置
需要对PostgreSQL进行一些基本的参数配置,默认PostgreSQL不支持远程连接,需要配置
修改配置文件
vi /var/lib/pgsql/12/data/postgresql.conf
主要配置监听地址及端口等信息
listen_addresses = '*’
port = 5432
max_connections = 500
配置使用md5方式认证
vi /var/lib/pgsql/12/data/pg_hba.conf
添加如下信息到# IPv4 local connections之后
host all all 0.0.0.0/0 md5
# 重启PostgreSQL
systemctl restart postgresql-12
# Zabbix配置
修改zabbix server配置文件中的数据库信息
vi /etc/zabbix/zabbix_server.conf
主要修改如下,其他默认即可
DBHost=127.0.0.1
DBPassword=zabbixpwd123
# 重启所有服务并配置开机自启动
systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
Web初始化
使用http://ip访问zabbix,点击下一步
确保所有检查都为ok,点击下一步
填入配置的zabbix数据库用户密码,schema为空
默认直接点击下一步
确认信息无误后直接点击下一步
初始化完成点击完成
默认用户:Admin 默认密码:zabbix
至此zabbix 5.0安装完成,可在Administration-General-Housekeeping选项中开启数据压缩