本文最后更新于 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
|
安装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
dnf makecache dnf module switch-to php:8.0 -y
dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2 -y
|
配置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
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
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
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
timescaledb-tune --pg-config /usr/pgsql-16/bin --max-conns=256
sudo systemctl enable --now postgresql-16
sudo systemctl status postgresql-16 ss -an | grep 5432
sudo -u postgres psql \password postgres \q
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix
|
配置Zabbix Server
1 2 3 4
| vim /etc/zabbix/zabbix_server.conf
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
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
|
参考
https://docs.timescale.com/self-hosted/latest/install/installation-linux/