简介
本教程使用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版本向下兼容
- SNMP支持 walk,可批量获取OID的数据
- 自动发现多进程
关闭SE Linux 和防火墙 安装所需基础包
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
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
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
安装
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
vim /etc/zabbix/zabbix_server.conf
# 打开Zabbix Server配置文件,配置zabbix用户的数据库密码。配置忽略数据库版本检查。
DBPassword=password
AllowUnsupportedDBVersions=1
安装中文包
dnf install glibc-langpack-zh -y
启动并配置开机启动
systemctl restart zabbix-server zabbix-agent2 nginx php-fpm
systemctl enable zabbix-server zabbix-agent2 nginx php-fpm
配置Nginx
vim /etc/nginx/conf.d/zabbix.conf
listen 80;
server_name zabbix.example.com;
# 修改监听端口和域名,确保域名可被解析。
访问
访问你配置域名,进入初始化向导,输入数据库连接信息、时区、语言。
然后登录Zabbix,默认账号为Admin,默认密码为 zabbix
配置中文字体-防止图形中文乱码
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/