其實出這期文章的目的就是展示官方為了解決傳統關系型資料庫在應對海量監控資料的能力不足的方案。
本文環境
- 系統:AlmaLinux 8.7
- 資料庫:PostgreSQL 14
- Timescale
- PHP
資料庫部分
AlmaLinux 自帶源為 postgresql-13,安裝14版本需要安裝源
自帶源
先禁用自帶源
dnf -qy module disable postgresql
安裝官方源
dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{centos})-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
安裝 PostgreSQL 資料庫
dnf install postgresql14-server -y
PostgreSQL 初始化
/usr/pgsql-14/bin/postgresql-14-setup initdb
啟動資料庫
systemctl enable postgresql-14 && systemctl start postgresql-14
Timescale 部分
導入 Timescale 源
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
安裝 timescale
dnf install timescaledb-2-postgresql-14 -y
安裝完成後會提示下面指令,這是Timescaledb 提供的優化工具,用下面指令進行調用,一路 Y 即可
timescaledb-tune --pg-cnotallow=/usr/pgsql-14/bin/pg_config
重新開機資料庫
systemctl restart postgresql-14
Zabbix 部分
安裝官方源
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
安裝 Zabbix 相關元件
dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-agent2 -y
Zabbix 資料庫部分
建立資料庫執行個體、使用者
cd /tmp
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
在第一條指令執行時,需要輸入賬戶的密碼,這個在下面會用到
登入資料庫測試,是否正常
psql -U zabbix -h 127.0.0.1
這裡和以前不一樣,以前需要改權限,可以看看配置檔案
vim /var/lib/pgsql/14/data/pg_hba.conf
如果用 host 方式是可以采用使用者名密碼方式的登入的,而 local 需要切換相關使用者才能登入,是以這裡無需更改
由于采用了 Timescale插件,原有的連接配接數是不夠的,是以需要修改連接配接數,不然會出現下面情況
連接配接數由25改為100
重新開機資料庫
systemctl restart postgresql-14
導入 Zabbix 相關資料檔案
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
啟用 Timescale 插件
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u zabbix psql zabbix
導入超表檔案
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb.sql | sudo -u zabbix psql zabbix
Zabbix 配置部分
修改 Zabbix 配置,本文需要修改兩個部分,如下圖
DBHost 改為 IP
資料庫密碼改為前面 Zabbix 使用者的密碼
啟動元件
systemctl start zabbix-server zabbix-agent2 httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm
前端配置
本文采用的 apache,預設通路位址為 http://server ip 位址/zabbix
本文為http://192.168.21.53/zabbix
環境檢查,下一步
資料庫界面需要關注4點,host 部分由 localhost 改為 127.0.0.1,Database schema
部分填寫 public,Password 部分填寫使用者的密碼即可,TLS加密取消
時區、伺服器名稱自行調整,下一步
Zabbix Server資訊,下一步
完成安裝
登入頁,使用者名/密碼依然為 Admin/zabbix
效果圖
首頁
Dashboard
最新資料