Zabbix 7.0 LTS + TimescaleDB时序数据库安装教程

本文最后更新于 2024年7月1日 中午

简介

本教程使用Rocky Linux 8.9 搭建,后端数据库使用PostgreSQL 16 + TimescaleDB 2.14 时序数据库。

TimescaleDB,这是一种基于PostgreSQL的数据库解决方案,可自动将数据分为基于时间的块,以支持更快的大规模的监控性能。能以更好的性能去删除过期的监控数据和进行实时压缩数据,可节省空间。

PS:使用8.9而不使用9的原因,是因为RHEL 9 开始,Net-snmp包不支持DES MD5等过时加密算法了。

PS:本教程是Zabbix 7.0 LTS的版本。

数据库集群安装:https://songxwn.com/Pigsty-PG-RDS/

Zabbix 系列教程:https://songxwn.com/categories/Zabbix/

6.0 to 7.0 特性

  • 支持SNMP异步
  • 支持Proxy 组,可负载均衡和故障切换。
  • 支持LDAP 实时同步
  • 即时同步主动或被动 Zabbix proxy 和 agent 更改的配置。
  • 对Zabbix Proxy版本向下兼容(最低到6.0的最新版本)
  • SNMP支持 walk,可批量获取OID的数据
  • 自动发现多进程
  • Auditlog 支持以时序数据库存储

关闭SE Linux 和防火墙 安装所需基础包

1
2
3
4
systemctl disable --now firewalld
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config && setenforce 0
dnf install tree vim bash-completion tar wget epel-release -y
# epel-release 自带的fping包更高,支持更高的延迟。

安装Zabbix Server

1
2
3
4
5
6
7
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/8/x86_64/zabbix-release-7.0-1.el8.noarch.rpm
# 安装yum源
dnf makecache
dnf module switch-to php:8.0 -y
# 切换PHP版本
dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2 -y
# 安装zabbix nginx php等

配置PostgreSQL 16 + TimescaleDB 2.14

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{centos})-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
# 配置Postgresql 源
sudo 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
# 配置TimescaleDB源
dnf -qy module disable postgresql
# 关闭系统的源
dnf update -y

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
dnf install timescaledb-2-postgresql-16 -y
# 安装postgresql 和 timescaledb
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
# 初始化数据库
timescaledb-tune --pg-config /usr/pgsql-16/bin --max-conns=256

# 调优参数,一路yes即可。
sudo systemctl enable --now postgresql-16
# 配置开机启动,并启动
sudo systemctl status postgresql-16
ss -an | grep 5432
# 检查状态是否正常
sudo -u postgres psql
\password postgres
\q
# 进入psql配置管理员密码,并退出。
sudo -u postgres createuser --pwprompt zabbix
# 创建zabbix用户并配置密码
sudo -u postgres createdb -O zabbix zabbix
# 创建zabbix数据库并指定所属用户为zabbix.
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
# 导入基础sql
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
# zabbix数据库开启timescaledb扩展
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix
# 导入timescaledb sql

配置Zabbix Server

1
2
3
4
vim /etc/zabbix/zabbix_server.conf
# 打开Zabbix Server配置文件,配置zabbix用户的数据库密码。配置忽略数据库版本检查。
DBPassword=password
AllowUnsupportedDBVersions=1

安装中文包

1
dnf install glibc-langpack-zh -y

启动并配置开机启动

1
2
systemctl restart zabbix-server zabbix-agent2 nginx php-fpm
systemctl enable zabbix-server zabbix-agent2 nginx php-fpm

配置Nginx

1
2
3
4
vim /etc/nginx/conf.d/zabbix.conf
listen 80;
server_name zabbix.example.com;
# 修改监听端口和域名,确保域名可被解析。

访问

访问你配置域名,进入初始化向导,输入数据库连接信息、时区、语言。

然后登录Zabbix,默认账号为Admin,默认密码为 zabbix

配置中文字体-防止图形中文乱码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cd /usr/share/fonts/dejavu



# RPM 包的字体路径



mv DejaVuSans.ttf DejaVuSans.ttf.old

# 移除默认的字体

wget -O DejaVuSans.ttf https://mirrors.bfsu.edu.cn/adobe-fonts/source-han-sans/OTF/SimplifiedChinese/SourceHanSansSC-Normal.otf



# 从北京外语大学镜像下载Adobe的思源黑体字体,然后重试绘图即可。


参考

https://docs.timescale.com/self-hosted/latest/install/installation-linux/


Zabbix 7.0 LTS + TimescaleDB时序数据库安装教程
https://songxwn.com/zabbix-7-install-TimescaleDB/
作者
Song
发布于
2024年5月15日
更新于
2024年7月1日
许可协议