CentOS 7 安装与克隆 以及Zabbix安装与部署的详细过程

一、安装虚拟机

1.1 安装第一台CentOS 7虚拟机

具体操作方式见参考博客1
【注意】:在博客1的第三节第11步时,我们需要配置虚拟机的网络与主机名,我们将ip设置为静态ip。我的参考过程如下:
1)Win+R打开运行,输入cmd回车打开终端,输入ipconfig查看当前windows主机IP地址,如下图所示:
在这里插入图片描述
2)可以看到本机VMnet8 IP是192.168.134.1
为了能让虚拟机上网,所以我们使用VMNet8(NAT模式)IP
3)所以,我们将虚拟机的IPv4地址设置为192.168.134.3,如下图所示:
加粗样式

1.2 复制虚拟机得到第二台虚拟机,并命名为CentOS 7_02

  1. 提前创建好一个文件夹用于存放复制后的虚拟机
  2. 打开VMpro,点击要复制的虚拟机,右键选择管理,再依次选择克隆,选择复制当前状态,创建完整的虚拟机。演示如下:
    在这里插入图片描述3. 定义虚拟机的名字和存放位置:
    在这里插入图片描述

等待克隆完成。
4. 克隆后的虚拟机设置和原虚拟机完全一样。因为原虚拟机我们之前设置的是静态ip,所以系统不会自动给克隆后的虚拟机分配新的IP地址,而是和原虚拟机一样,也是静态ip。我们可以打开虚拟机终端,输入ifconfig(或者ip addr),看到ip也为192.168.134.3:在这里插入图片描述

1.3 修改第二台虚拟机(CentOS 7_02)的主机名和IP地址

出于监控的需求,我们要对两台虚拟机做区分,一台作为服务机(server),一台作为客户机(agent),IP地址也要保持不同。安排如下:

虚拟机 主机名 主机IP
CentOS 7 server 192.168.134.3
CentOS 7_02 agent 192.168.134.4

【注】:这些名称可自定义,不是一定要像我这里命名。

  1. 修改CentOS 7_02主机名:
    1)方法1(图形操作)
    在设置中找到共享,可以看到计算机名,直接修改为agent即可,演示如下:
    在这里插入图片描述
    2)方法2(命令行操作)
  • 先右键桌面打开终端,按如下操作步骤输入命令:
    hostname          # 1.查看当前主机名/查看方法1
    su                # 2.切换为root用户,获得root权限
    hostnamectl set-hostname agent # 3.修改主机名命令1,立即生效
    cat /etc/hostname # 4.再次查看当前主机名是否修改成功/查看方法2
    bash              # 5.刷新一下bash
    
  • 演示如下:在这里插入图片描述
    同理,如果CentOS 7主机名没有修改,也可以按照此方法将其改为server。
    3)方法3(命令行操作/进阶)
    sudo vi /etc/hostname 	 # 1.输入管理员密码之后,会进入vi文件模式。
    #输盘输入字母i即可进入编辑模式,修改好之后,按 ESE 键,再同时按下 Shift 和 : 这两个键,在页面底部输入wq,再回车即可保存退出
    sudo reboot              # 2.重启生效
    hostname                 # 3.开机,验证是否已经修改成功   
    
    【注意】:这种方式需要重启才可以生效
    【图示】:在这里插入图片描述
  1. 修改CentOS 7_02 IP:
  • 方法1:
    先输入以下命令:

    sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
    

    得到如下图示:在这里插入图片描述将ip改为192.168.134.4(最后一位不唯一,可以自己定),输入wq回车退出。
    再输入重启网络命令:

     sudo  systemctl restart network :重启网卡服务
    

    最后查看当前ip是否修改成功,整个过程如下图所示:在这里插入图片描述

  • 方法2(图形操作):如下图示:
    在这里插入图片描述
    最后输入重启网络命令:

     sudo systemctl restart network :重启网卡服务
    
  1. 虚拟机和windows主机之间互相ping以下,验证是否都可以互相通信。
    命令:ping 目的主机的ip地址
    1)windows主机和两台虚拟机ping。在这里插入图片描述
    如上图,没有问题。

2)CentOS 7和windows、CentOS 7_02 ping。

在这里插入图片描述如上图:CentOS 7_02和CentOS 7 能互相ping通,但是不能和windows的VM8 IP地址ping通。

3)同理:CentOS 7_02和windows、CentOS 7 ping
CentOS 7_02和CentOS 7 能互相ping通,但是不能和windows的VM8 IP地址ping通。

【出现问题】:虚拟机不能和windows的VM8 IP地址ping通,但是可以和VM5 IP地址ping。
【原因在于】:windows的防火墙阻拦了虚拟机和VM8的通信,关闭防火墙即可。
【解决方法】:参考博客3,如下图所示:在win10搜索栏中搜索到防火墙,关闭防火墙即可。
在这里插入图片描述
由于这里虚拟机和windows暂时不需要ping,所以先把windows防火墙再打开,后面有需要再按照此方法关闭即可。

一些细节可补充参考博客2

1.4 Reference

  1. CentOS:(30条消息) CentOS7(Linux)详细安装教程(图文详解)_centos7安装教程_缄默.ńī給の傷的博客-CSDN博客
    其中手动分区部分,选择标准分区而不是LVM
    /boot:设置为300M,/swap:设置为3.5GB

    Kdump为开启状态
    在这里插入图片描述
  2. VMware 复制虚拟机、克隆虚拟机_虚拟机克隆_蚩尤后裔的博客-CSDN博客
  3. 主机可以ping通vmnet8,虚拟机不能ping通vmnet8

二、CentOS 7下安装部署zabbix

2.1 Web环境构建

Web环境解释:LAMP和LNMP是常见的Web环境,本例采用LAMP

  • L: Linux,Linux操作系统
  • A 或 N: Apache 或 Nginx,Web服务器软件
  • M:MySQL 或 MariaDB, 数据库软件
  • P: PHP、Perl、Python, 脚本软件

以root用户登录,下面所有的操作都是以root用户的身份进行的

2.1.1 配置防火墙和SELinux服务

(1)按顺序在CentOS 7(server)虚拟机终端中键入如下命令并执行:

sudo systemctl stop firewalld.service    # 1.关闭Linux防火墙
firewall-cmd --state                     # 2.查看防火墙状态,确认已关闭(关闭后显示notrunning,开启后显示running)
sudo systemctl disable firewalld.service # 3.禁止防火墙自启动
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux     
                                         # 4.通过修改配置文件的方式关闭SELinux,可以通过cat /etc/sysconfig/selinux命令查看当前SELinux的状态

2.1.1 更换YUM源:

按顺序在CentOS 7(server)虚拟机终端中键入如下命令并执行:

yum -y install wget                      # 1.安装wget                     
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup  
                                         # 2.通过将CentOS-Base.repo文件复制另存的方式将默认的repo文件备份
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
                                         # 3.换成阿里源
yum clean all                            # 4.清理缓存
yum makecache fast                       # 5.生成新的缓存

2.1.3 使用YUM命令安装MariaDB、PHP以及httpd

yum install -y mariadb mariadb-server php php-mysql httpd
出现以下结果则安装成功:
在这里插入图片描述

2.1.4 测试Apache

1)依次执行以下两条命令:

systemctl start httpd                      # 1.启动HTTP服务(通过Apache访问服务器时,需要先启动HTTP服务)
systemctl enable httpd                     # 2.将httpd设置为自启动
systemctl status httpd                     # 查看当前状态,可以不执行此条命令

2) 打开虚拟机中的Firefox浏览器,输入此虚拟机(server)的IP地址(可通过ifconfig 或 ip addr命令查看)并回车,可以得到如下结果,则说明Apache配置成功。
在这里插入图片描述 【注】:可通过命令查看版本:rpm -qa|grep httpd 查看路径:rpm -ql httpd,如下图示:
在这里插入图片描述

2.1.5 数据库(MariaDB)的配置

1)设置自启动

systemctl start mariadb                   # 1.启动数据库
systemctl enable mariadb                  # 2.设置自启动

可以通过systemctl status mariadb命令查看数据库的状态:
在这里插入图片描述
2)使用如下mysqladmin命令来修改root密码:

一般mysql的root默认密码为空,如果你之前并没有设置过root密码就使用mysqladmin命令。

mysqladmin -u root password 'mima'        # 注意这里的密码你自己定义,我这里以“mima”为例 

上面这条命令定义了root用户的默认密码,之后可以用这条命令访问数据库,如下图示:在这里插入图片描述
3)为当前Zabbix服务器创建数据库及普通用户

zabbix服务器采集到的数据要保存数据库中,因此需要在MariaDB中创建一个用于保存Zabbix数据的数据库,以及在当前系统中创建一个普通用户,赋予其操作Zabbix数据库的权限。

依次执行以下命令:

[root@server ~]# mysql -uroot -pmima        # 1.root用户访问数据库
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;                           
                                            # 2.创建名为zabbix的数据库,并设置数据库zabbix的字符编码格式为utf8
MariaDB [(none)]> show databases;           # 3.查看当前数据库中有没有我们刚刚创建的zabbix数据库(注意该命令的database后面有s和分号)
MariaDB [(none)]> create user zabbix@'192.168.134.%' identified by 'mima';                           
                                            # 4.在主机192.168.134.%上创建新用户zabbix,且密码为mima
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'%' identified by 'mima';                           
                                            # 5.赋予密码为”mima“的用户zabbix在任意主机(%)上操作数据库zabbix中任意一张表(.*) 的全部权限(all)。因而,依次出现的2个zabbix分别表示数据库名和用户名。
MariaDB [(none)]> flush privileges;         # 6.刷新权限
MariaDB [(none)]> exit                      # 7.退出数据库              

【注】第三步中创建zabbix用户的另一个方法为:

useradd 用户名
passwd  密码

如下图所示:
在这里插入图片描述
4)测试zabbix用户在这里插入图片描述
如上图,配置成功!~

至此,LAMP环境搭建以及Zabbix前置配置全部完成,之后方可在Linux系统中安装配置Zabbix。

2.2 Zabbix-Server端配置

2.2.1 zabbix安装

2.2.1.1 通过YUM源获取Zabbix5.0安装包
cd /etc/yum.repos.d/                        # 1.进入etc/yum.repos.d目录,/etc/yum.repos.d/目录下存放默认的配置文件
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
                                            # 2.通过阿里云镜像下载zabbix5.0

【注】:yum下载的包会存放在/var/cache/yum/x86_64/7/中,如zabbix:
在这里插入图片描述

2.2.1.2 yum命令安装server端软件包(包含zabbix-server、zabbix-agent、zabbix-get)

1)如下图示:在yum.repos.d文件夹下面找到zabbix.repo文件,
在这里插入图片描述 2)用文本编辑器打开,将[zabbix-frontend]下面的enabled值改为1,如下所示:

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1

或者直接vim /etc/yum.repos.d/zabbix.repo进行修改
3) 依次输入以下下载命令即可:

yum -y install zabbix-server-mysql zabbix-agent zabbix-get
yum -y install centos-release-scl            # 下载红帽软件集合
yum -y install zabbix-web-mysql-scl

在这里插入图片描述
【注】:可能会出现下载失败的错误:
【解决方案】:同样是修改zabbix.repo文件,将第3行的baseurl改为如下命令,具体操作如下图示:

baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1

在这里插入图片描述
再执行第3)步的yum下载命令就可以正常安装,如下图示即成功。
在这里插入图片描述在这里插入图片描述

2.2.2 配置数据库

在使用zabbix之前,需要先将Zabbix和数据库进行连接

2.2.2.1 导入表结构:

zabbix自定义了数据库中表的结构,为了保证MariaDB能够以zabbix定义的形式存储数据,应先在数据库中导入zabbix的表结构)

依次执行以下命令:

[root@server khalid]# cd /usr/share/doc/zabbix-server-mysql*/                                          
                                             # 1.先进入zabbix-server-mysql-5.0.34目录中
[root@zabbix-server ~]# zcat create.sql.gz | mysql -uzabbix -pmima zabbix                                       
                                             # 2.将数据导入zabbix库中                     
2.2.2.2 更改配置文件zabbix-server.conf

使用vi编辑器打开该文件,按照如下信息对其中的相应选项进行设置:

[root@server ~]# vi /etc/zabbix/zabbix_server.conf 
100 DBName=zabbix
116 DBUser=zabbix
124 DBPassword= mima

【注】:vi编辑器中的一些操作:
在这里插入图片描述
在这里插入图片描述
修改好之后shift + :,再输入wq即可保存退出。

2.2.2.3 更改配置文件zabbix.conf(即更改前端PHP时区)

Zabbix Server端的主配置文件为zabbix.conf,该文件在 /etc/httpd/conf.d/ 目录下,同样用vi编辑器打开该文件,修改选项 date.timezone,该选项用于配置Zabbix的时区,zabbix对时间精度要求很高,所以要将时区改为本地时区即Shanghai。
【注】如果这个目录下没有该文件,那么在图形界面中全局搜索zabbix.conf文件,如下图示:

在这里插入图片描述
可以发现我这里zabbix.conf文件在 /etc/httpd/conf.d/etc/opt/rh/rh-php72/php-fpm.d 下都有,按照以下命令修改:

[root@server ~]# vi /etc/httpd/conf.d/zabbix.conf
                                             # 根据自身情况修改
php_value[date.timezone] = Asia/Shanghai  # 将时区设置为上海
2.2.2.4 启动abbix-server

至此,Zabbix-Server端的配置基本完成,使用以下命令启动:

   [root@server ~]# systemctl start zabbix-server                                 
                                                # 1.启动zabbix-server
   [root@server ~]# systemctl enable zabbix-server                                          
                                                # 2.设置自启动
2.2.2.5 zabbix访问测试
[root@zabbix-server ~]#  systemctl restart httpd mariadb rh-php72-php-fpm          
[root@zabbix-server ~]#  systemctl restart zabbix-server zabbix-agent 

[root@zabbix-server yum.repos.d]# netstat -anpt  | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      17381/zabbix_agentd 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      17380/zabbix_server 
tcp6       0      0 :::10050                :::*                    LISTEN      17381/zabbix_agentd 
tcp6       0      0 :::10051                :::*                    LISTEN      17380/zabbix_server 

打开火狐浏览器,输入ip/zabbix,回车访问可以得到如下图示:
在这里插入图片描述

2.2.2.6 登录Zabbix监控系统

登陆方式:

  • 默认账户:Admin 默认密码:zabbix
  • 创建的账户:zabbix 密码:zabbix
2.2.2.7 可能的报错情况

【报错1】如果报出这种错误,原因可能是密码不对
在这里插入图片描述
解决方法:依次检查数据库用户密码zabbix_server.conf文件中的DBName、DBUse和DBPasswd,以及
zabbix.conf.php文件中的设置是否正确,一般是密码设置的不对。详情参考博客5,如下是我的zabbix.conf.php文件信息,可以对这里检查。

// Zabbix GUI configuration file.

$DB['TYPE']				= 'MYSQL';
$DB['SERVER']			= '192.168.134.3';
$DB['PORT']				= '0';
$DB['DATABASE']			= 'zabbix';
$DB['USER']				= 'zabbix';
$DB['PASSWORD']			= 'zabbix';

【报错2】如果报出这种错误,提示前端和zabbix数据库不匹配,则是因为当前数据库是5020000版本的,而要求的版本是4040000。
在这里插入图片描述
解决方法:参考博客6,进入数据库,以zabbix用户身份使用命令:

mysql -uroot -pmima
use zabbix;
updata dbversion set mandatory=4040000;        #mandatory的值应该根据提示的信息来确定,我这里是4040000

整个过程如下图所示:
在这里插入图片描述
【报错3】长时间未登录可能会出现503 Service Unabvailable
解决方法:参考博客7,查看日志,找到问题,重启服务。
各日志存放路径:
/var/log/zabbix/zabbix_server.log
/var/log/httpd/
/var/log/mariadb
【报错4】zabbix5.x登录页面报错SQL statement execution has failed “INSERT INTO auditlog (userid,clock,ip,action…
解决方法:参考博客8

2.3 zabbix服务器前端优化

这里可以直接参考参考博客1的4.2节。
在中文字体乱码部分,补充一下。
如下图,当我们将zabbix设置为中文后,有些部分会出现乱码:

在这里插入图片描述
【解决方法】:我们可以使用Windows中的字体替换zabbix中的默认字体来解决这个问题。
1)具体地,我们先通过命令find / -name fonts 查找虚拟机中所有的名为fontsde文件夹,如下图:
在这里插入图片描述
可以看到Zabbix的字体存放在usr/share/zabbix/assets/fonts目录。
2)然后,我们找到Windows目录C:\Windows\Fonts中的微软雅黑字体文件,如下图:
在这里插入图片描述
将其复制到桌面上,会产生三个文件(msyh.ttc、msyhl.ttc、msyhbd.ttc)。
3)接着把msyh.ttc上传到Zabbix服务器中的/usr/share/zabbix/assets/fonts下面,下面详细讲解下上传方式。
上传方式1:通过U盘连接虚拟机,以U盘为载体将微软字体msyh.ttc拷贝到目标虚拟机。
上传方式2:通过xshell、xftp软件以远程控制的方式连接虚拟机。

  • 首先,先下载好xshell、xftp软件
  • 然后:打开xshell,点击新建会话,
    在这里插入图片描述
  • 在新建会话属性框中点击连接,输入主机名称和主机IP,如下图:
    在这里插入图片描述
  • 在新建会话属性框中点击用户身份验证,输入用户登录名和密码,可以是root用户,也可以是服务器中已创建好的其他用户,如下图:在这里插入图片描述
  • 成功连接后,可以点击工具栏中的Xftp图标,即可自动打开Xftp软件,并建立连接(同样的,也可以直接在Xftp中建立与服务器的连接而不用打开Xshell软件),如下图:
    在这里插入图片描述
  • 上传msyh.ttc文件,如下图示:
    在这里插入图片描述

4)最后,再将微软字体msyh.ttc重命名为graphfont.ttf即可。在服务器终端中输入以下命令:

cd /usr/share/zabbix/assets/fonts/
mv graphfont.ttf graphfont.ttf.bak     # 备份一下
mv ./msyh.ttc ./graphfont.ttf          # 替换

刷新页面,完成。

2.4 部署Zabbix-Agent端

这里直接参考博客1的第4.3节。

2.5 Zabbix Server端添加监控设备

这里直接参考博客1的第5节。

2.6 Reference

  1. 部署Zabbix5.0——Yum方式(附带理论)
  2. (30条消息) Zabbix的详细安装部署_zabbix安装部署_linux_yanbb的博客-CSDN博客
  3. (30条消息) Centos7下zabbix安装与部署,设置中文(保姆级图文)【网络工程】_centos7安装zabbix_发现你走远了的博客-CSDN博客
  4. (30条消息) centos7 安装部署 zabbix5.0 (超详细)_新秀后浪的博客-CSDN博客
  5. 问题解决-zabbix登录页面是显示Database:Error connecting to database: Access denied for user ‘zabbix’…
  6. zabbix 升级版本问题处理
  7. 记一次zabbix服务器重启导致的zabbix web界面503提示不可用
  8. zabbix5.x登录页面报错SQL statement execution has failed “INSERT INTO auditlog (userid,clock,ip,action…

猜你喜欢

转载自blog.csdn.net/lvyunkai0518/article/details/131616008