文章連結

Zabbix 5.0 LTS新增功能

新版本附帶了可用性,安全性和完整性方面的重大改進列表。Zabbix團隊遵循的主要策略是使Zabbix儘可能可用。Zabbix是一種開源,免費的監視解決方案,現在可以在內部和雲中部署。在RedHat / IBM,SuSE,Ubuntu的最新版本的平臺,容器和Linux發行版中可用。現在,一鍵式Zabbix部署也可以在Azure,AWS,Google Cloud,IBM / RedHat Cloud,Oracle和Digital Ocean上使用。現在,在Red Hat和Azure市場上提供Zabbix技術支援服務。

此外,Zabbix監視工具還提供了與Messenger,票務和警報系統的大量現成整合。新版本擴充套件了可以輕鬆監控的受支援服務和應用程式的列表。

  • 自動化和發現:新的Zabbix版本具有改進的自動化功能。新版本增加了自動發現硬體元件,與Windows相關的資源以及Java度量的高階發現的功能。
  • 可擴充套件性:Zabbix UI已經過優化,可以簡化對數百萬個裝置的監視。
  • 新的Zabbix監視代理程式具有“官方支援”狀態。新的可擴充套件代理為最苛刻的客戶和複雜的用例提供了高階功能。它基於外掛體系結構,具有使用各種方法和技術收集度量標準資料的能力。我們相信它是市場上最先進的監控代理。
  • 安全性方面的重大改進:新的改進確保所有Zabbix元件以安全的方式進行通訊,並且還使用安全協議進行出站通訊,而不會以任何方式影響效能。對於在高度敏感的環境中使用Zabbix的使用者而言,可配置的密碼以及為度量定義黑名單和白名單的能力至關重要。
  • TimescaleDB的壓縮:時間序列資料壓縮有助於提高效能和效率,同時降低運營成本。
  • 可用性改進:新版本針對寬屏進行了優化,除了Zabbix UI的其他增強功能之外,還引入了對第三方UI模組的支援。

    Zabbix 5.0是具有5年官方支援的LTS(長期支援)版本。它結合了創新和穩定性,幷包括經過時間檢驗的功能,這些功能已在Zabbix 4.2和4.4的非LTS版本中引入,這使其成為大型企業環境的理想選擇。

硬體配置需求

參考 zabbix 5.0 中文手冊

環境 平臺 CPU/記憶體 資料庫 硬碟 監控主機數
小型 centOS 2CPU/1GB MySQL、InnoDB 普通 100
中型 centOS 2CPU/2GB MySQL、InnoDB 普通 500
大型 Red HatEnterpirse Linux 4CPU/8GB MySQL、InnoDB 或PostgreSQL RAID 10 或 SSD 大於1000
超大型 Red HatEnterpirse Linux 8CPU/16GB MySQL、InnoDB 或PostgreSQL RAID 10 或 SSD 大於10000

前端軟體需求

參考 zabbix 5.0 中文手冊

Zabbix 前端需要使用下列軟體:

軟體 版本 備註
Apache 1.3.12 或以上
PHP 5.4.0 或以上

PHP 擴充套件庫:

軟體 版本 備註
gd 2.0 or later PHP GD 擴充套件庫必須支援 PNG 影象(--with-png-dir)、JPEG 影象 (--with-jpeg-dir) 和 FreeType 2 (--with-freetype-dir).
bcmath php-bcmath (--enable-bcmath)
ctype php-ctype (--enable-ctype)
libXML 2.6.15 或以上 php-xml or php5-dom,如果釋出者提供獨立的部署包。
xmlreader php-xmlreader,如果釋出者提供獨立的部署包。
xmlwriter php-xmlwriter,如果釋出者提供獨立的部署包。
session php-session,如果釋出者提供獨立的部署包。
sockets php-net-socket (--enable-sockets) 。使用者指令碼支援所需要的元件。
mbstring php-mbstring (--enable-mbstring)
gettext php-gettext (--with-gettext)。用於多語言翻譯支援。
ldap php-ldap。只有在前端使用 LDAP 認證時才需要。
ibm_db2 使用 IBM DB2 作為 Zabbix 後端資料庫所需要的元件。
mysqli 使用 MySQL 作為 Zabbix 後端資料庫所需要的元件。
oci8 使用 Oracle 作為 Zabbix 後端資料庫所需要的元件。
pgsql 使用 PostgreSQL 作為 Zabbix 後端資料庫所需要的元件。

環境準備

CentOS Linux release 7.9.2009 (Core)
nginx 1.16.1
zabbix-server 5.0.14
zabbix-agent 5.0.14
MariaDB 5.5.68
PHP 7.4.22

關閉防火牆及selinux

systemctl stop firewalld && systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

修改阿里雲yum源

參考連結

# 備份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下載新的CentOS-Base.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 新增EPEL
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 清理快取並生成新的快取
yum clean all
yum makecache

PHP 7.4 安裝配置

新增源

yum install epel-release -y
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

安裝PHP

yum --enablerepo=remi install php74-php -y

安裝你所需要php擴充套件模組

yum --disablerepo="*" --enablerepo="centos-sclo-rh" install rh-php72-php-gd rh-php72-php-bcmath rh-php72-php-mbstring rh-php72-php-mysqlnd rh-php72-php-xml rh-nginx116-nginx rh-php72 rh-php72-php-fpm rh-php72-php-ldap -y

安裝其他依賴

安裝zabbix報錯,提示Requires: libiksemel.so.3()(64bit),該檔案為核心連結檔案,無法繞過只有解決了這個依賴才可能繼續安裝,解決的方法為缺什麼補什麼,它要這個就給它。

# 提示 需要:Requires: libiksemel.so.3()(64bit)
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//iksemel-1.4-6.sdl7.x86_64.rpm
yum install iksemel-1.4-6.sdl7.x86_64.rpm -y
# 提示 需要:libwebp.so.4()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libwebp-0.3.0-7.el7.src.rpm
yum install libwebp -y
# 提示 需要:libjpeg.so.62()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libjpeg-turbo-1.2.90-8.el7.src.rpm
yum install libjpeg-turbo -y
# 提示 需要:libXpm.so.4()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libXpm-3.5.12-1.el7.src.rpm
yum install libXpm -y
# 提示 需要:gd
wget http://vault.centos.org/7.9.2009/updates/Source/SPackages/gd-2.0.35-27.el7_9.src.rpm
yum install gd -y

修改配置檔案

sed -i "s#max_execution_time = 30#max_execution_time = 600#g" /etc/php.ini
sed -i "s#max_input_time = 60#max_input_time = 600#g" /etc/php.ini
sed -i "s#memory_limit = 128M#memory_limit = 256M#g" /etc/php.ini
sed -i "s#post_max_size = 8M#post_max_size = 32M#g" /etc/php.ini
sed -i "s#upload_max_filesize = 2M#upload_max_filesize = 16M#g" /etc/php.ini
sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/g" /etc/php.ini

執行並檢視版本, 重啟命令, 新增自動啟動,連結php檔案

#執行並檢視版本
php74 -v
#重啟命令php-fpm
systemctl restart php74-php-fpm
#新增自動啟動
systemctl enable php74-php-fpm
#檢視php7.4的安裝路徑
whereis php
#連結php檔案
ln -s /opt/remi/php74/root/usr/bin/php /usr/bin/php

安裝其他依賴

安裝zabbix報錯,提示Requires: libiksemel.so.3()(64bit),該檔案為核心連結檔案,無法繞過只有解決了這個依賴才可能繼續安裝,解決的方法為缺什麼補什麼,它要這個就給它。

# 提示 需要:Requires: libiksemel.so.3()(64bit)
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//iksemel-1.4-6.sdl7.x86_64.rpm
yum install iksemel-1.4-6.sdl7.x86_64.rpm -y
# 提示 需要:libwebp.so.4()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libwebp-0.3.0-7.el7.src.rpm
yum install libwebp -y
# 提示 需要:libjpeg.so.62()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libjpeg-turbo-1.2.90-8.el7.src.rpm
yum install libjpeg-turbo -y
# 提示 需要:libXpm.so.4()(64bit)
wget http://vault.centos.org/7.9.2009/os/Source/SPackages/libXpm-3.5.12-1.el7.src.rpm
yum install libXpm -y
# 提示 需要:gd
wget http://vault.centos.org/7.9.2009/updates/Source/SPackages/gd-2.0.35-27.el7_9.src.rpm
yum install gd -y

zabbix 服務安裝

安裝 Zabbix 儲存庫

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

安裝 Zabbix 伺服器和代理

yum install zabbix-server-mysql zabbix-agent -y

安裝 zabbix 前端

yum -y install yum-utils
yum-config-manager --enable rhel-server-rhscl-7-rpms -y

編輯配置檔案

編輯配置檔案 /etc/yum.repos.d/zabbix.repo 並啟用Zabbix 前端儲存庫

vi /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...

安裝前端所需軟體

yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y

資料庫安裝配置

安裝資料庫

yum install -y mariadb-server mariadb

啟動服務

systemctl start mariadb

設定服務開啟自啟動

systemctl enable mariadb

登入資料庫

mysql -uroot -p
修改預設密碼
mysql> SET PASSWORD = PASSWORD('cnsre.cn');
#cnsre.cn是你的新密碼

如何解決ERROR 1819 (HY000): Your password does not satisfy the current policy requirements呢?

# 修改validate_password_policy引數的值
set global validate_password_policy=0;
# 再修改密碼的長度
set global validate_password_length=1;
# 再次執行修改密碼就可以了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'cnsre.cn';
# 允許root遠端登陸
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'cnsre.cn' WITH GRANT OPTION;

建立初始資料庫

在資料庫主機上執行以下程式碼

# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> flush privileges;
mysql> quit;

匯入模板資料

匯入初始架構和資料

方法1

 zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uroot -p

方法2

# 切換到 create.sql.gz 目錄 我的目錄如下
cd /usr/share/doc/zabbix-server-mysql-5.0.14
gzip -d create.sql.gz
mysql -uroot -p
mysql> use zabbix;
mysql> source /usr/usr/share/doc/zabbix-server-mysql-5.0.14/create.sql

配置Zabbix-server

mv /etc/zabbix/zabbix_server.conf  /etc/zabbix/zabbix_server.conf.bak
vim /etc/zabbix/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=1024M
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

配置zabbix-agent

mv /etc/zabbix/zabbix_agent.conf  /etc/zabbix/zabbix_agent.conf.bak
vim /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=
ListenPort=10050
ServerActive=
Hostname=
Include=/etc/zabbix/zabbix_agentd.d/

nginx 安裝配置

為 Zabbix 前端配置 PHP

編輯檔案 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf,取消註釋和設定 listenserver_name 指令。

# listen 80;
# server_name example.com;

編輯檔案 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf ,將 nginx 新增到 listen.acl_users 指令。

listen.acl_users = apache,nginx

然後取消註釋併為設定正確的時區。

php_value[date.timezone] = Asia/Shanghai

啟動所有服務

systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
systemctl status zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

檢查埠

[root@localhost ~]# netstat  -pntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18862/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 968/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1258/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 18816/zabbix_agentd
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 18813/php-fpm: mast
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 18700/mysqld
tcp6 0 0 :::80 :::* LISTEN 18862/nginx: master
tcp6 0 0 :::22 :::* LISTEN 968/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1258/master
tcp6 0 0 :::10050 :::* LISTEN 18816/zabbix_agentd

訪問配置 zabbix 前端

連線到新安裝的Zabbix前端: http://server_ip

️ 如果開啟頁面訪問不到 zabbix 頁面,將 /etc/opt/rh/rh-nginx116/nginx/nginx.conf 配置檔案中的 server 模組註釋掉重啟即可













預設的使用者 Admin/zabbix

好了,到這裡,我們就已經完成了Zabbix 5.0 LTS 的安裝,快去體驗吧。

文章連結