之前提到過Zabbix 5.2版本的安裝方式,此次采用PG+Timescale(Server與DB分開部署)
正文
環境
系統版本:CentOS 8.2(可以替換為其他版本,例如ubuntu)
- Zabbix版本:5.4
- 數據庫版本:postgresql 12
- Timescale版本:2.1
- Nginx版本:1.14
關閉Selinux及防火墻
安裝Zabbix源最近官方源的網絡已經恢復正常,所以直接采用Zabbix官方源即可,兩臺機器都需要裝
- rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm
其中zabbix-web-service為最新的報表功能
- dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2 zabbix-web-service
第二條命令為禁用自帶的pg庫,不禁用會報錯(如下圖所示)
- dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- dnf -qy module disable postgresql
- dnf install -y postgresql12-server
- /usr/pgsql-12/bin/postgresql-12-setup initdb
- systemctl enable postgresql-12 && systemctl start postgresql-12
- 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 install -y timescaledb-2-postgresql-12
初始化數據庫添加時序插件并重啟數據庫
- timescaledb-tune --pg-config=/usr/pgsql-12/bin/pg_config
- systemctl restart postgresql-12
一路Y即可
創建Zabbix所需數據庫及用戶名密碼--pwprompt參數是為zabbix用戶創建密碼,不帶默認不要密碼
- sudo -u postgres createuser --pwprompt zabbix
- sudo -u postgres createdb -O zabbix zabbix
如果出現這個問題,由于你在root目錄下,切換到其他目錄即可,沒有實際影響
啟用TimescaleDB- echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
如果出現該圖證明就OK了
安裝數據庫文件及zabbix-agent(建議采用agent2)- dnf -y install zabbix-agent2 zabbix-sql-scripts
- zcat /usr/share/doc/zabbix-sql-scripts/postgresql/create.sql.gz | sudo -u zabbix psql zabbix
- zcat /usr/share/doc/zabbix-sql-scripts/postgresql/timescaledb.sql.gz | sudo -u zabbix psql zabbix
和5.2略有不同
數據庫配置文件修改主要體現在兩方面,一方面是Server需要遠程連接到數據庫,所以需要開放連接IP,另外一個是數據庫遠程用戶的權限。
- vi /var/lib/pgsql/12/data/postgresql.conf

去掉注釋,改為*,開啟遠程訪問,另外建議初始化連接數改為300
- vi /var/lib/pgsql/12/data/pg_hba.conf
改為允許zabbix Server訪問,其次認證方式改為trust或者md5
最后pg重新加載配置
- vi /var/lib/pgsql/12/data/pg_hba.conf
主要修改zabbix數據庫的IP和密碼(用戶默認為zabbix)
修改主機
修改密碼(這里密碼脫敏了,實際不是這個,自己注意修改)
Nginx配置由于默認80端口被占用,所以修改官方配置文件,其次修改zabbix配置文件
- vi /etc/nginx/nginx.conf
將默認端口改為8080
- vi /etc/nginx/conf.d/zabbix.conf
將80端口那一行注釋去掉
啟動相關服務- systemctl restart zabbix-server zabbix-agent2 nginx php-fpm
- systemctl enable zabbix-server zabbix-agent2 nginx php-fpm
如果出現這個錯誤基本是selinux的錯誤
前段關鍵操作
如果web服務也分離部署,此處的Host也要寫IP
開啟報表服務1.修改配置文件,開啟report進程,填寫服務相關接口,如下圖
如果非本地需要寫IP
2.安裝chrome瀏覽器
- wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
- dnf -y localinstall google-chrome-stable_current_x86_64.rpm
3.啟動報表相關服務
- systemctl restart zabbix-web-service
- systemctl enable zabbix-web-service
4.前端配置
這里記得是前端登錄Url
寫在最后由于之前做過5.4報表的介紹,這里就不展現效果了,整個過程其實完整跑下來還是有點小復雜的,但是熟練后基本都可以知道每一步報錯的問題在哪里,這也是學習的一個過程,相比mysql版本還是優化了很多的,具體效果怎么樣大家可以自行測試。
原文鏈接:https://www.toutiao.com/i6973922191360410115/