安装和配置Zabbix-Server服务

实验准备

Centos7.4 系统服务器3台、 一台作为监控服务器, 两台台作为被监控节点, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信。

1)所有机器关闭防火墙和selinux

1
2
3
setenforce 0 (修改配置文件关闭)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld.service

2)根据架构图,实验基本设置如下:

机器名称 IP配置 服务角色 备注
server 192.168.200.130 zabbix-server 开启
node1 192.168.200.128 zabbix-agent-node1 开启
node2 192.168.200.129 zabbix-agent-node2 开启

1. 安装 Zabbix 存储库

1
2
3
4
5
6
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# 如果安装失败,断开无线网,用手机热点进行尝试

或者执行(建议)
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
替换国内阿里云yum源

由于用zabbix官网网络Yum源下载速度比较慢,我这里替换为阿里云源

1
[root@zabbix-server ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

2. 安装 Zabbix 服务器和被监控端

1
[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-agent -y

3. 安装 Zabbix 前端

启用红帽软件集合

1
2
[root@zabbix-server ~]# yum install centos-release-scl -y
这里下载的是个zabbix相关的yum源,才能继续下载其他的软件包

编辑文件 /etc/yum.repos.d/zabbix.repo,将enabled后的0改成1。并启用 zabbix-frontend 存储库。

安装 Zabbix 前端包

1
[root@zabbix-server ~]# yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl

4. 创建初始数据库

确保您已启动并运行数据库服务器。这里我使用的是Mysql5.7版本

1
2
[root@zabbix-server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[root@zabbix-server ~]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm

打开/etc/yum.repos.d的mysql-community.repo

打开5.7源地址,关闭8.0源地址,确保下载的数据库是mysql5.7;修改结果如图所示.这里换mariadb也可以

1
[root@zabbix-server ~]# yum -y install mysql-community-server

因为mysql5.7启动,root用户会生成随机密码,可以进行修改

1
2
[root@zabbix-server ~]# systemctl start mysqld
[root@zabbix-server ~]# grep 'password' /var/log/mysqld.log

1
[root@zabbix-server ~]# mysqladmin -uroot -p'U84zCRrlt0=c' password 'Alan@2024'

在您的数据库主机上运行以下命令。

1
2
3
4
5
[root@zabbix-server ~]# mysql -uroot -p'Alan@2024'
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all on zabbix.* to zabbix@localhost identified by 'Zabbix@2024';
mysql> flush privileges;
mysql> quit;

在 Zabbix 服务器主机上导入初始模式和数据。系统将提示您输入新创建的密码。

1
2
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: //此处输入上面创建用户时,设置的密码,回车导入数据;

可再次进去到数据库,确认zabbix库中有数据生成;

1
2
3
4
5
6
7
8
9
10
11
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| zabbix |
+--------------------+
mysql> use zabbix

5. 为 Zabbix 服务器配置数据库

编辑文件 /etc/zabbix/zabbix_server.conf

1
2
3
4
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix@2024

6. 为 Zabbix 前端配置 PHP

编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并为您设置正确的时区。

1
php_value[date.timezone] = Asia/Shanghai

7. 启动 Zabbix 服务器和代理进程

启动 Zabbix 服务器和agent代理进程并使其在系统启动时启动。

1
2
[root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zabbix-server ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

8. 配置 Zabbix 前端

连接到您新安装的 Zabbix 前端:http:// 192.168.200.130/zabbix

出现以下登录界面

Zabbix监控平台有默认管理员用户;

默认用户名Admin,密码为zabbix;

页面显示为英文,可以设置为中文

Admin用户,可以设置任何用户的语言

设置自己的语言如下图

设置其他用户的语言如下图:

修改为如下,即可:

配置被监控zabbix-agent(2个客户端节点)

当我们把监控端配置启动以后,我们需要来设置一下我们的被监控端,我们在被监控的主机安装好zabbix-agent,设置好他的所属的监控端server,并把他添加到server端,就能将其纳入我们的监控系统中去了。

1.安装 zabbix 源

1
2
3
4
[root@zabbix-agent-node1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
或者(速度快)#rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zabbix-agent-node1 ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@zabbix-agent-node1 ~]# yum install zabbix-agent zabbix-sender -y

2.修改配置文件

去修改配置文件:

1
2
3
4
5
6
7
[root@zabbix-agent-node1 ~]# cd /etc/zabbix/
[root@zabbix-agent-node1 zabbix]# vim zabbix_agentd.conf ----修改如下
Server=192.168.200.130 zabbix监控端的地址
ServerActive=192.168.200.130 主动模式 zabbix-server-ip
Hostname=zabbix-agent-none1
UnsafeUserParameters=1 是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符
EnableRemoteCommands=1 是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.

是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.修改完成之后,我们保存退出。然后就可以启动服务了:

1
2
[root@zabbix-agent-node1 zabbix]# systemctl start zabbix-agent
[root@zabbix-agent-node1 zabbix]# systemctl enable zabbix-agent

3.创建主机群组(监控端WEB操作)

如果创建了看不到自己创建的主机群组,再次点击一下左边的主机群组即可看到!可以看到Zabbix本身就有很多默认的主机群组。暂时不用理会

4.创建主机

下方的绿色“ZBX”需要添加了监控项才回亮起

5.创建应用集

应用集,可以认为是监控项的分类

应用集可以有多个,我们再创建2个,这里不再给予创建过程;

6.创建监控项

要在Zabbix管理页面创建一个监控项,请执行以下操作:

  • 进入到: 配置主机

  • 在主机所在的行单击 监控项

  • 点击屏幕右上角的创建监控项

  • 输入表单中监控项的参数

7.创建触发器

8.邮箱报警

注册一个邮箱,QQ邮箱或者163邮箱都可以,下面以163邮箱为例。要记得开启以下这个功能。

(1)报警/恢复消息模版设置

1
2
3
4
5
6
7
8
问题主机: {HOST.NAME1}
问题时间: {EVENT.DATE} {EVENT.TIME}
问题级别: {TRIGGER.SEVERITY}
问题触发: {TRIGGER.NAME}
问题详情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
问题状态: {TRIGGER.STATUS}
问题项目:{TRIGGER.KEY1}
事件ID:{EVENT.ID}

1
2
3
4
5
6
7
8
恢复主机: {HOST.NAME1}
恢复时间: {EVENT.DATE} {EVENT.TIME}
恢复级别: {TRIGGER.SEVERITY}
恢复触发: {TRIGGER.NAME}
恢复详情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
恢复状态: {TRIGGER.STATUS}
恢复项目:{TRIGGER.KEY1}
事件ID:{EVENT.ID}

(2)邮箱测试

(3)动作

报警测试
1
[root@zabbix-agent1 ~]# systemctl stop httpd  #将被监控端的httpd服务关闭

接受到问题发生邮件:

1
[root@zabbix-agent1 ~]# systemctl start httpd

接受到问题恢复邮件: