乐趣区

关于Zabbix:LNMP-方式部署-zabbix-50

文章链接

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 模块正文掉重启即可
维 | 自动化运维 | 云计算 | 运维监控](https://gitee.com/xsre/Images…)





默认的用户 Admin/zabbix
好了,到这里,咱们就曾经实现了 Zabbix 5.0 LTS 的装置, 快去体验吧。
文章链接

退出移动版