LNMP 方式部署 zabbix 5.0


文章鏈接

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 模塊注釋掉重啟即可

cnsre運維博客|Linux系統運維|自動化運維|雲計算|運維監控
cnsre運維博客|Linux系統運維|自動化運維|雲計算|運維監控
cnsre運維博客|Linux系統運維|自動化運維|雲計算|運維監控
cnsre運維博客|Linux系統運維|自動化運維|雲計算|運維監控
cnsre運維博客|Linux系統運維|自動化運維|雲計算|運維監控
cnsre運維博客|Linux系統運維|自動化運維|雲計算|運維監控
默認的用戶 Admin/zabbix
好了,到這里,我們就已經完成了Zabbix 5.0 LTS 的安裝,快去體驗吧。
文章鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM