
**2.获取Zabbix下载资源**
#获取下载资源 rpm -ivh mirrors.aliyun.com/zabbix/zabb… cd /etc/yum.repos.d/
#更换 zabbix.repo 为阿里源 sed -i 's#repo.zabbix.com#https://mirrors.al…' zabbix.repo
#清缓存并重新建立元数据 yum clean all && yum makecache

**3.安装SCL(Software Collections),修改 Zabbix-front 前端源**
便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。
#安装SCL所需 yum install -y centos-release-scl.noarch
#修改zabbix-frontend前端源,开启安装源 vim zabbix.repo
第11行 enabled=1
#安装SCL yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl



**4.安装Zabbix所需的数据库**
yum install -y mariadb-server.x86_64 mariadb systemctl enable --now mariadb.service yum install -y zabbix-server-mysql zabbix-agent


**5.初始化数据库**
#初始化数据库,并设置密码abc123 mysql_secure_installation


**6.添加数据库用户,以及Zabbix所需的数据库信息**
#登入数据库 mysql -uroot -pabc123
#修改字符集utf8 create database zabbix character set utf8 collate utf8_bin;
#创建权限用户,是的zabbix可以访问数据库 grant all on zabbix.*to 'zabbix'@'%' identified by 'zabbix';
#刷新权限 flush privileges;

**7. 导入数据库信息**
#查询sql文件位置
rpm -ql zabbix-server-mysql
zcat /usr/share/doc/zabbix-server-mysql-5.0.33/create.sql.gz | mysql -uroot -pabc123 zabbix

**7.修改Zabbix server配置文件**
#修改数据库密码 vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix #124行,指定 zabbix 数据库的密码
#修改时区 vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai #25行,取消注释,修改时区


**8.启动Zabbix相关服务**
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

**9.浏览器访问验证**
浏览器访问:http://192.168.79.210/zabbix,点击下一步


设置数据库的密码 zabbix

自定义name


 登录进入 ,用户名:Admin,密码:zabbix

设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh\_CN),再点击 Update 更新


## 八.解决 zabbix-server Web页面中文乱码问题
yum install -y wqy-microhei-fonts \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf


## 九.部署zabbix客户端(端口号10050)
zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。
zabbix 服务端 zabbix\_server 默认使用 10051 端口,客户端 zabbix\_agent2 默认使用 10050 端口。
**1. 环境准备**
| 节点 | IP地址 | 安装服务 |
| --- | --- | --- |
| zabbix-server(**内存**至少**2G**,推荐**4G**) | 192.168.79.210 | zabbix-server-mysql 、zabbix-agent |
| zabbix-agent | 192.168.79.220 | zabbix-agent2 |
**#关闭防火墙和selinux安全模块**
systemctl disable --now firewalld setenforce 0

**2.服务端和客户端,配置时间同步**
yum install -y ntpdate.x86_64 ntpdate -u ntp.aliyun.com

**3.客户端配置时区,要与服务端保持一致**
mv /etc/localtime{,.bak} ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime date

**4. 设置Zabbix的下载源,安装Zabbix-agent2**
#设置zabbix的下载源 rpm -ivh mirrors.aliyun.com/zabbix/zabb…
#更改 cd /etc/yum.repos.d/ sed -i 's#repo.zabbix.com#https://mirrors.al…' /etc/yum.repos.d/zabbix.repo

**5.安装Zabbix-agent2,并修改配置文件**
#安装zabbix-agent2 yum install -y zabbix-agent2
#修改配置文件 vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.79.210 #80行,指定 zabbix 服务端的 IP 地址 ServerActive=192.168.79.210 #125行,指定 zabbix 服务端的 IP 地址 Hostname=agent1 #136行,指定当前 zabbix 客户端的主机名



**6.启动Zabbix-agent2**
systemctl start zabbix-agent2.service systemctl enable zabbix-agent2.service ss -natp | grep zabbix

**7.在服务端验证Zabbix-agent2 的连通性**
yum install -y zabbix-get.x86_64 zabbix_get -s '192.168.79.220' -p 10050 -k 'agent.ping' zabbix_get -s '192.168.79.220' -p 10050 -k 'system.hostname'

**8.将客户端加入服务端的监控主机**
在Web界面添加agent主机
**8.1 点击左边菜单栏【配置】中的【主机】,点击【创建主机】**



**8.2 再点击上方菜单栏【模板】,选择 Template OS Linux by Zabbix agent,点击 【添加】**






## 十.在Web页面创建自定义监控项模板
**1.客户端操作**
#切换目录 cd /etc/zabbix/zabbix_agent2.d/
#修改 vim UserParameter_login.conf
UserParameter=login.user,who|wc -l
#重启服务 systemctl restart zabbix-agent2


**2.创建模板**
点击左边菜单栏【配置】中的【模板】,点击【创建模板】

【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义

点击 【添加】,此时就可在【名称】中搜索到 Template Login User 了
**3.创建应用集(用于管理监控项的)**
点击上方菜单栏【应用集】,点击【创建应用集】、【名称】设置成 Login User、点击 【添加】


**4.创建监控项**
点击上方菜单栏【监控项】,点击【创建监控项】

【名称】设置成 Number of login users
【键值】设置成 login.user #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period 30d #保留时间可自定义设置
点击 【添加】


**5.创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)**
点击上方菜单栏【触发器】,点击【创建触发器】

【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重
【表达式】点击添加

【监控项】点击选择 Number of login users


【功能】选择 last(),【结果】选择 > 3,点击 【插入】

 点击 【添加】


**6.创建图形**
点击上方菜单栏【图形】,点击【创建图形】

【名称】设置成 Number of login users
【宽】、【高】可直接采用默认值

【监控项】点击添加勾选相关监控项 Number of login users
【功能】选择 最大,其它可保持默认值
点击 【添加】

**7.将主机与模板关联起来(一个主机可以关联多个模板)**
点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
点击上方菜单栏【模板】
选择 Template Login User,点击【更新】

此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标


测试:多开几个终端


关掉多余的终端


## 十一.设置邮件报警
点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】

【名称】设置成 qq\_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成自己的邮箱地址,例 00000000@qq.com
【认证】选择 用户名和密码
【用户名称】设置成自己的邮箱地址,例 0000000@qq.com
【密码】可登录QQ邮箱页面,点击【设置】–>【账户】中的【生成授权码】,通过短信获取授权码


【描述】可自定义点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择问题,点击【更新】

主题: Problem: {EVENT.NAME}事件 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
内容: 告警主机: {HOSTNAME1} 告警时间: {EVENT.DATE} {EVENT.TIME} 告警等级: {TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目: {TRIGGER.KEY1} 问题详情: {ITEM.NAME}:{ITEM.VALUE} 当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID: {EVENT.ID}
点击 【添加】,并测试功能

点击左边菜单栏【用户设置】–>【报警媒介】,点击【添加】
【类型】选择 qq\_Email
【收件人】设置成 0000000@163.com
【当启用时】设置成 1-7,00:00-24:00
点击 【添加】
再点击 【更新】

点击左边菜单栏【配置】中的【动作】,选择相对应的动作名称,点击【启用】
测试邮件报警
增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警


## 十二.Zabbix自动发现与自动注册

### 1.zabbix自动发现(对于agent2是被动模式)
zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。
缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。
**1.1 确保客户端上的 zabbix-agent2 服务状态正常**
systemctl is-active zabbix-agent2.service

**1.2 在 Web 页面删除原有的客户端主机**
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除

**1.3 在服务端和客户端上配置 hosts 解析**
此处注意主机名与IP地址不要写错(例如1就是1,别写01)
vim /etc/hosts 192.168.79.210 server 192.168.79.220 agent1


**1.4 在 Web 页面配置自动发现**
点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】

【名称】设置成 mynetwork
【IP范围】设置成 192.168.79.1-254
【更新间隔】设置成 30s

【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname

【设备唯一性准则】选择 IP地址
【主机名称】选择 DNS名称
【可见的名称】选择 主机名称
勾选 【已启用】,点击 【更新】

点击左边菜单栏【配置】中的【动作】,上方菜单选择 【触发器动作】
勾选 【发现动作】

点击 【启用】

点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机


**1.5 可在服务端查看zabbix日志**
tail -f /var/log/zabbix/zabbix_server.log
### 2.zabbix自动注册(对于agent2是主动模式)
zabbix agent2 会主动上报自己的信息,发给 zabbix server。
缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。
**2.1 准备环境**
点击左边菜单栏【配置】中的【自动发现】,勾选发现规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除

**2.2 配置hosts文件**
vim /etc/hosts 192.168.79.210 server 192.168.79.220 agent1


**2.3 修改并查看客户端zabbix-agent2配置文件**
vim /etc/zabbix/zabbix_agent2.conf
HostnameItem=system.hostname #139行左右,取消注释
grep -Ev "^#|^$" /etc/zabbix/zabbix_agent2.conf #过滤出客户端配置文件不以#开头且不是空行的内容,内容展示如下 PidFile=/var/run/zabbix/zabbix_agent2.pid LogFile=/var/log/zabbix/zabbix_agent2.log LogFileSize=0 Server=192.168.79.210 ServerActive=192.168.79.210 Hostname=agent1 HostnameItem=system.hostname Include=/etc/zabbix/zabbix_agent2.d/*.conf ControlSocket=/tmp/agent.sock


**2.4 在 Web 页面配置自动注册**
点击左边菜单栏【配置】中的【动作】,上方菜单选择 【自动注册动作】,点击【创建动作】

【名称】设置成 Auto registration
点击 【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成 agent1

点击上方菜单栏【操作】,点击【添加】,【操作类型】选择 添加主机,点击 【add】

再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【add】

再点击【添加】,【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Template OS Linux by Zabbix agent,点击 【add】

点击下方的【添加】


**2.5 验证自动注册**
服务端: tail -f /var/log/zabbix/zabbix_server.log #实时查看server日志
web页面点击【配置】【主机】
然后刷新等待自动注册内容出现且亮起

## 十三.部署Zabbix代理服务器
**1. 环境准备**
在原有zabbix server和zabbix agent1上再添加一台proxy代理服务器
| 节点 | IP地址 | 安装服务 |
| --- | --- | --- |
| zabbix-server(**内存**至少**2G**,推荐**4G**) | 192.168.79.210 | zabbix-server-mysql 、zabbix-agent |
| zabbix-agent | 192.168.79.220 | zabbix-agent2 |
| zabbix-proxy | 192.168.79.230 | zabbix-proxy-mysql、zabbix-get |
**#关闭防火墙和selinux安全模块**
systemctl disable --now firewalld #开机不再启动防火墙 setenforce 0

**2. 设置 zabbix 的下载源,安装 zabbix-proxy**
rpm -ivh mirrors.aliyun.com/zabbix/zabb… yum install -y zabbix-proxy-mysql zabbix-get

**3. 安装zabbix所需数据库**
#安装mysql数据库 yum install -y mariadb-server mariadb
#设置开机自启 systemctl enable --now mariadb.service
#初始化并设置密码 mysql_secure_installation




**3.添加数据库用户以及 zabbix 所需的数据库信息**
#登入数据库 mysql -uroot -pabc123
#创建zabbix_proxy库并设置为utf-8模式 CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
#创建远程登录用户zabbix_proyx并设置密码为zabbix GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
#刷新配置,退出数据库 flush privileges; quit

**4.查询并导入数据库信息**
rpm -ql zabbix-proxy-mysql zcat /usr/share/doc/zabbix-proxy-mysql-5.0.33/schema.sql.gz |mysql -uroot -pabc123 zabbix_proxy

**5.修改配置文件**
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.79.210 #30行,指定 zabbix 服务端的 IP 地址 Hostname=zbx-proxy #49行,指定当前 zabbix 代理服务器的主机名 DBPassword=zabbix #196行,指定当前数据库 zabbix 用户的密码
systemctl start zabbix-proxy.service
systemctl enable zabbix-proxy.service



**6.所有主机配置/etc/hosts(server、agent1、proxy)**
vim /etc/hosts
192.168.79.210 server 192.168.79.220 agent1 192.168.79.230 proxy

**7.在 Web 页面配置 agent 代理**
点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用

点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除

点击左边菜单栏【管理】中的【agent代理程序】,点击【创建代理】

【agent代理程序名称】设置为proxy
【系统代理程序模式】选择 主动式
【代理地址】设置为 1192.168.79.230
点击 【添加】

**8.客户端配置 agent 使用 proxy**
vim /etc/zabbix/zabbix_agent2.conf Server=192.168.79.230 #80行,指定 zabbix 代理服务器的 IP 地址 ServerActive=192.168.79.230 #123行,指定 zabbix 代理服务器的 IP 地址


**9.创建主机**
在 Web 页面配置
点击左边菜单栏【配置】中的【主机】,点击【创建主机】

【主机名称】设置成 agent1
【可见的名称】设置成 agent1-192.168.79.220
【群组】选择 Linux servers
【Interfaces】的【IP地址】设置成 192.168.79.220
【由agent代理程序监测】选择 proxy

【模板】搜索 Linux ,选择 Template OS Linux by Zabbix agent,点击 【添加】

**10.客户端和代理服务器上重启服务**
[root@agent1 ~]#systemctl restart zabbix-agent2.service [root@proxy ~]#systemctl restart zabbix-proxy.service
