基于网络YUM源搭建Zabbix监控平台(zabbix版本 5.0.10)

2021-08-10   


1.png

部署前准备:

1、Centos7虚拟机两台,内存为512M、配置好本地yum源

2、配置主机名:监控端为: zabbix-server、被监控端为: web1

[root@localhost ~]# hostnamectl set-hostname zabbix-server
[root@localhost ~]# hostnamectl set-hostname web1

3、配置VMnet8(NAT模式),使用dhcp在192.168.6.100 ~ 192.168.6.10之间分配IP给两台主机,监控端zabbix-server的IP地址为192.168.6.100 、被监控端web1的IP地址为192.168.6.101。具体步骤如下 :

    1、在VMware上找到编辑 ——》 虚拟网络编辑器 ——》点击更改设置 ——》点击VMnet8网卡

    2、DHCP配置、NAT配置、虚拟机设置

DHCP配置.png


NAT配置.png


虚拟机设置.png

4、监控端zabbix-server需配置防火墙策略、彻底禁用(disabled)selinux,或者配置为宽松模式(permissive)。


[root@zabbix-server ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
[root@zabbix-server ~]# firewall-cmd --reload
[root@zabbix-server ~]# firewall-cmd --zone=public --list-ports

查看当前系统的selinux模式
[root@zabbix-server ~]# getenforce  
Enforcing
配置selinux为宽松模式(permissive) :
[root@zabbix-server ~]# setenforce 0  && getenforce  //确认
Permissive

彻底禁用(disabled)selinux :
[root@zabbix-server ~]# vim /etc/selinux/config
SELINUX=disabled
:wq  //保存并退出
因为selinux已经整合到内核中,需要重启生效
[root@zabbix-server ~]# reboot  

搭建Zabbix平台

✏️ 监控端Zabbix Server,基于网络YUM源搭建LNMP( Linux + Nginx + Mariadb + PHP)环境

基于清华镜像仓库,安装网络YUM源

安装 epel 源 :
[root@zabbix-server ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-13.noarch.rpm

安装 remi 源: :
[root@zabbix-server ~]# yum -y install yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

安装 Yum 源管理工具 :
[root@zabbix-server ~]# yum install yum-utils


安装 nginx、php

根据Zabbix Documentation 5.0 官方说明 :所需的最低PHP版本已从5.4.0升级到7.2.0。
The minimum required PHP version has been upped to 7.2.0 from 5.4.0.

Zabbix Documentation 5.0 官方说明,直达链接 :Zabbix Documentation 5.0


安装nginx版本 1.16 :
[root@zabbix-server ~]# yum -y install nginx

安装php版本 7.3 :
[root@zabbix-server ~]# yum install -y php73-php-fpm php73-php-cli php73-php-bcmath \
php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt \
php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto \ 
php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode \
php73-php-snmp php73-php-soap php73-php-xml

安装mariadb数据库服务器、客户端、数据库依赖包 :
[root@zabbix-server ~]# yum -y install mariadb-server mariadb mariadb-devel

检查nginx、php是否安装成功 :
[root@zabbix-server ~]# rpm -qa |grep -aiE "nginx|php73|mariadb"


配置nginx动静分离并测试


1、查询nginx配置文件的路径 :
[root@zabbix-server ~]# rpm -ql nginx | grep "nginx.conf"
/etc/nginx/nginx.conf ⭐️
/etc/nginx/nginx.conf.default

2、配置nginx动静分离 :⭐️标注的地方,需修改或者额外添加的内容
[root@zabbix-server ~]# vim /etc/nginx/nginx.conf
......
http {
  server {
          listen       80; ⭐️
          server_name  localhost; ⭐️
  		......
          location / {  
          root         /usr/share/nginx/html; ⭐️
          index  index.php index.html index.htm; ⭐️
          }
  		...... 		
  		# 缓存php脚本执行的结果(网页内容),buffers是缓存的意思,8个、16k的脚本
          fastcgi_buffers 8 16k; ⭐️
  
          # 缓存php生成的数据包的包头封装信息 
          fastcgi_buffer_size 32k; ⭐️
  
          # 连接php的超时时间
          fastcgi_connect_timeout 300; ⭐️
  
          # 发送请求的超时时间
          fastcgi_send_timeout 300; ⭐️
  
          # 读取请求的超时时间
          fastcgi_read_timeout 300; ⭐️

          location ~ \.php$ { ⭐️
              root           /usr/share/nginx/html; ⭐️
              fastcgi_pass   127.0.0.1:9000; ⭐️
              fastcgi_index  index.php; ⭐️
              include        fastcgi.conf; ⭐️
          }⭐️
    	}
}

3、配置nginx、php开机自启动并立即启动 :
[root@zabbix-server ~]# systemctl enable nginx --now
[root@zabbix-server ~]# systemctl enable php73-php-fpm --now

4、编写nginx动静分离测试页面 :
[root@zabbix-server ~]# vim /usr/share/nginx/html/test.php
<?php
	print phpinfo();
?>
:wq //报错并退出

5、使用浏览器访问:http://192.168.6.100/test.php ,可以看到php的详细信息


✏️ 从zabbix官网仓库下载 zabbix版本:5.0.10

    监控端zabbix-server和被监控端web1都配置,下面以zabbix-server为例 :


[root@zabbix-server ~]# rpm -ivh http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

清除YUM缓存、显示可用仓库 :
[root@zabbix-server ~]# yum clean all
[root@zabbix-server ~]# yum repolist -v

✏️ 安装Zabbix Server、Zabbix WEB、Zabbix Database(mariadb) 、Zabbix Agent


查询关于zabbix的软件包 :
[root@zabbix-server ~]# yum list | grep "zabbix*"

根据查询的结果,对监控端(zabbix-server)进行配置 :

Zabbix Server连接数据库的驱动程序 :
[root@zabbix-server ~]# yum -y install zabbix-server-mysql.x86_64 

Zabbix WEB连接数据库的驱动程序 :
[root@zabbix-server ~]# yum -y install zabbix-web.noarch

监控端Zabbix Server,自己监控自己 :
[root@zabbix-server ~]# yum -y install zabbix-agent.x86_64 

检查Zabbix Server、Zabbix WEB、Zabbix Database(mariadb) 、Zabbix Client(Agent)是否安装成功 :
[root@zabbix-server ~]# rpm -qa | grep -E "zabbix-server|zabbix-web|zabbix-agent"


根据查询的结果,对被监控端(web1)进行配置 :
[root@web1 ~]# yum -y install zabbix-agent.x86_64

检查Zabbix Agent是否安装成功 :
[root@web1 ~]# rpm -qa | grep zabbix-agent


✏️ 初始化zabbix前准备

上线 Zabbix WEB の 网页代码


将Zabbix WEB程序文件,拷贝到Nginx网站根目录 :
[root@zabbix-server ~]# \cp -a /usr/share/zabbix/* /usr/share/nginx/html/

修改Nginx网站根目录的拥有者为apache : 
[root@zabbix-server ~]# chown -R apache:apache /usr/share/nginx/html/


创建zabbix数据库、数据库zabbix账户并赋权

使用初始化安全脚本 :
[root@zabbix-server ~]# mysql_secure_installation

使用root用户登录数据库 :
[root@zabbix-server ~]# mysql -uroot -p220617

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit


导入基础数据库


[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql-5.0.10/create.sql.gz | mysql -uzabbix -pzabbix zabbix


zcat是一个命令行实用程序,用于查看压缩文件的内容,而无需对其进行解压缩。 它将压缩文件扩展为标准输出,使您可以查看其内容。 另外,zcat与运行gunzip -c命令完全相同。


✏️ 配置mariadb、php-fpm、nginx服务开机自启动并立即启动


监控端(zabbix-server)配置 :
[root@zabbix-server ~]# systemctl enable nginx.service --now
[root@zabbix-server ~]# systemctl enable mariadb.service --now
[root@zabbix-server ~]# systemctl enable php73-php-fpm --now

检查mariadb、php-fpm、nginx服务是否立即启动并设置开机自启动 :
[root@zabbix-server ~]# ss -anptul | grep :80
[root@zabbix-server ~]# systemctl is-enabled nginx.service 
[root@zabbix-server ~]# ss -anptul | grep :3306
[root@zabbix-server ~]# systemctl is-enabled mariadb.service
[root@zabbix-server ~]# ss -anptul | grep :9000
[root@zabbix-server ~]# systemctl is-enabled php73-php-fpm.service


✏️ 初始化 :浏览器访问 Zabbix WEB页面

2.png


3.png

根据上图Fail提示进行配置,确保Zabbix WEB初始化的要求都是OK状态

查询php.ini文件路径(php运行核心配置文件):
[root@zabbix-server zabbix]# find / -name php.ini
/etc/opt/remi/php73/php.ini

根据上图Fail提示,修改php.ini文件中选项的值 :
[root@zabbix-server nginx]# vim /etc/opt/remi/php73/php.ini

post_max_size = 16M   		   ⭐️ POST数据最大容量
max_execution_time = 300         ⭐️ 最大执行时间,秒
max_input_time = 300             ⭐️ 服务器接收数据的时间限制 
date.timezone = Asia/Shanghai    ⭐️ 设置时区

:wq //保存

根据上图Fail提示,安装Zabbix WEB初始化的依赖包 :
[root@zabbix-server nginx]# yum -y install php73-php-ldap

重启php73-php-fpm服务,刷新重载该页面
[root@zabbix-server nginx]# systemctl restart php73-php-fpm



4.png


5.png


6.png


7.png

✏️ 根据上图所示,需修创建zabbix.conf.php文件,鼠标单击 “Download the configuration file” 下载zabbix.conf.php文件,用xshell将该文件上传至/var/www/html/conf/目录下,刷新重载该页面,最后单击Finish即可


初始化完成

z.png


使用默认登录账号Admin、默认密码zabbix登录

login.png


✏️ 启动Zabbix Server、Zabbix Agent服务

修改监控端的Zabbix Server主配置文件

查询mysql.sock文件路径 :
[root@zabbix-server ~]# find / -name mysql.sock
/var/lib/mysql/mysql.sock

查询Zabbix server主配置文件的路径 :
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf

DBHost=localhost   						 ⭐️设置zabbix数据库所在的服务器IP
DBName=zabbix 							  ⭐️设置zabbix数据库名称
DBUser=zabbix							   ⭐️设置Zabbix数据库用户名
DBPassword=zabbix 						  ⭐️设置Zabbix数据库用户的密码
DBPort=3306								 ⭐️设置zabbix数据库服务监听的端口号
DBSocket=/var/lib/mysql/mysql.sock          ⭐️设置数据库本地套接字文件位置,配合DBHost参数localhost
LogFile=/var/log/zabbix/zabbix_server.log   ⭐️Zabbix server的错误日志文件

:wq //保存并退出


修改被监控端的Zabbix Agent主配置文件


查询Zabbix Agent的主配置文件路径
[root@web1 ~]# find / -name "zabbix*"
......
/etc/zabbix/zabbix_agentd.conf
......

[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.conf


⭐️默认是本机127.0.0.1 在后面用“,”追加Zabbix Server的IP地址或者DNS域名
作用:指定允许访问的服务地址列表,包含本机、监控端Zabbix服务器。
Server=127.0.0.1,192.168.6.100

⭐️默认是本机127.0.0.1 在后面用“,”追加Zabbix Server的IP地址或主机名:端口号 或者 DNS域名:端口
作用:指定活动检查的监控端Zabbix服务器或者Zabbix代理对
ServerActive=192.168.6.100:10051     

⭐️默认是空,填写Agent的IP地址或主机名
Hostname=web1

⭐️Zabbix Agent的错误日志文件路径
LogFile=/var/log/zabbix/zabbix_agentd.log

:x //保存并退出

配置Zabbix Server、Zabbix Agent服务开机自启动并立即启动

监控端(zabbix-server)配置 :
[root@zabbix-server ~]# systemctl enable zabbix-server.service --now
[root@zabbix-server ~]# systemctl enable zabbix-agent.service --now

检查Zabbix Server、Zabbix Agent服务是否立即启动并设置开机自启动 :
[root@zabbix-server ~]# ss -anptul | grep :10051
[root@zabbix-server ~]# systemctl is-enabled zabbix-server.service
[root@zabbix-server ~]# ss -anptul | grep :10050
[root@zabbix-server ~]# systemctl is-enabled zabbix-agent.service


被监控端(web1)进行配置 :
[root@web1 ~]# systemctl enable zabbix-agent.service --now

检查Zabbix Agent服务是否立即启动并设置开机自启动 :
[root@web1 ~]# ss -anptul | grep :10050
[root@web1 ~]# systemctl is-enabled zabbix-agent.service
 

Q.E.D.