为了账号安全,请及时绑定邮箱和手机立即绑定

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版本中引入,这使其成为大型企业环境的理想选择。

硬件配置需求

环境| 平台| 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 前端需要使用下列软件:

软件 | 版本 | 备注

–|--|–

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 的安装,快去体验吧。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消