一、安装虚拟机
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
- 提前创建好一个文件夹用于存放复制后的虚拟机
- 打开VMpro,点击要复制的虚拟机,右键选择管理,再依次选择克隆,选择复制当前状态,创建完整的虚拟机。演示如下:3. 定义虚拟机的名字和存放位置:
等待克隆完成。
4. 克隆后的虚拟机设置和原虚拟机完全一样。因为原虚拟机我们之前设置的是静态ip,所以系统不会自动给克隆后的虚拟机分配新的IP地址,而是和原虚拟机一样,也是静态ip。我们可以打开虚拟机终端,输入ifconfig(或者ip addr),看到ip也为192.168.134.3:
1.3 修改第二台虚拟机(CentOS 7_02)的主机名和IP地址
出于监控的需求,我们要对两台虚拟机做区分,一台作为服务机(server),一台作为客户机(agent),IP地址也要保持不同。安排如下:
虚拟机主机名主机IPCentOS 7server192.168.134.3CentOS 7_02agent192.168.134.4
【注】:这些名称可自定义,不是一定要像我这里命名。
- 修改CentOS 7_02主机名: 1)方法1(图形操作): 在设置中找到共享,可以看到计算机名,直接修改为agent即可,演示如下: 2)方法2(命令行操作)
- 先右键桌面打开终端,按如下操作步骤输入命令:
hostname # 1.查看当前主机名/查看方法1su # 2.切换为root用户,获得root权限hostnamectl set-hostname agent # 3.修改主机名命令1,立即生效cat/etc/hostname # 4.再次查看当前主机名是否修改成功/查看方法2bash # 5.刷新一下bash
- 演示如下: 同理,如果CentOS 7主机名没有修改,也可以按照此方法将其改为server。 3)方法3(命令行操作/进阶)
sudo vi /etc/hostname # 1.输入管理员密码之后,会进入vi文件模式。#输盘输入字母i即可进入编辑模式,修改好之后,按 ESE 键,再同时按下 Shift 和 : 这两个键,在页面底部输入wq,再回车即可保存退出sudo reboot # 2.重启生效hostname # 3.开机,验证是否已经修改成功
【注意】:这种方式需要重启才可以生效 【图示】:
- 修改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 :重启网卡服务
- 虚拟机和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
- CentOS:(30条消息) CentOS7(Linux)详细安装教程(图文详解)_centos7安装教程_缄默.ńī給の傷的博客-CSDN博客其中手动分区部分,选择标准分区而不是LVM /boot:设置为300M,/swap:设置为3.5GB**Kdump为开启状态
- VMware 复制虚拟机、克隆虚拟机_虚拟机克隆_蚩尤后裔的博客-CSDN博客
- 主机可以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 - $basearchbaseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1gpgcheck=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=1gpgcheck=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
- 部署Zabbix5.0——Yum方式(附带理论)
- (30条消息) Zabbix的详细安装部署_zabbix安装部署_linux_yanbb的博客-CSDN博客
- (30条消息) Centos7下zabbix安装与部署,设置中文(保姆级图文)【网络工程】_centos7安装zabbix_发现你走远了的博客-CSDN博客
- (30条消息) centos7 安装部署 zabbix5.0 (超详细)_新秀后浪的博客-CSDN博客
- 问题解决-zabbix登录页面是显示Database:Error connecting to database: Access denied for user ‘zabbix’…
- zabbix 升级版本问题处理
- 记一次zabbix服务器重启导致的zabbix web界面503提示不可用
- zabbix5.x登录页面报错SQL statement execution has failed “INSERT INTO auditlog (userid,clock,ip,action…
版权归原作者 Khalid Lyu 所有, 如有侵权,请联系我们删除。