“运筹帷幄之中,决胜千里之外”。在 IT 运维中,监控占据着重要的地位,按比例来算,说占 38%一点也不为过。对 IT 运维工程师来说,构建一个真正可用的监控告警系统是一项艰巨的任务。在监控系统的开源软件中,可供选择的工具众多,然而真正符合需求,能够真正解决业务问题的监控系统软件却凤毛麟角。
一、监控系统的功能概述
监控、从中文的字义来看,有两个内容,一是检测,二是控制。重点在第一个字眼,即检测、预防的意思。
监控,对应的英文单词是 Monitoring。在计算机领域,可以将其分为5种监控类型。
- 应用性能监控
- 业务交易监控
- 网络性能监控
- 操作系统监控
- 网络站点监控
上面5种类型将监控这个概念划分成了多个领域。我们通常所说的监控,都会模糊的包含以上5个细分的领域。在任何一个 IT 业务环境中,都会存在各种各样的硬件设备、软件应用等。
按照逻辑层次划分,我们可以将我们可以将监控行为划分为5个层次:基础设施监控、系统层监控应用层监控、业务监控、端用户体验监控。
最底层基础设施监控:这层一般由运维人员负责,涉及到的方面比较接近硬件体系,例如网络,交换机,路由器等低层设备,这些设备的可靠性稳定性就直接影响到上层服务应用的稳定性,所以需要对网络的流量,丢包情况、错包情况,连接数等等这些基础设施的核心指标进行监控。
系统层监控:这层涵盖了物理机、虚拟机、操作系统等,这些都是属于系统级别监控的方面,主要对几个核心指标进行监控,如 cpu 使用率、内存占用率,磁盘 I0 和网络带宽情况。
应用层监控:这层涉及到方面和服务紧密相关,例如对 url访问的性能,访问的调用数,访问的延迟,还有对服务提供性能进行监控,服务的错误率等,同时对 sql 也需要进行监控,査看是否有慢 sql。对于cache 来说,需要监控缓存的命中率和性能,每个服务的响应时间等等。
业务监控:业务监控具体指什么?举个例子,比如说一个典型的交易网站,需要关注它的用户登录情况、注册情况、下单情况、支付情况等等,这些直接影响到实际触发的业务交易情况,这层监控可以提供给运营和公司高管们,提供他们需要关注的数据,直接以数据支撑公司在战略层面的决策和方向。
端用户体验监控:一个应用程序可能通过 app、h5、pc 端的方式交付到用户的手上,用户通过浏览器。客户端打开连到我们的服务,那么在用户端,用户的体验是怎么样?用户端的性能是怎么样?以及有没有产生错误等等…这些信息都需要进行监控并记录下来,如果没有监控,有可能因为某些 BUG 或者性能问题造成用户体验非常差,而我们并没有感知。其中包括监控用户端的使用性能、返回码,在哪些城市地区,他们的使用情况是怎么样,还有运营商的情况,包括三大运营商不同用户的连接情况。我们需要进一步知道,是否有哪些渠道哪些用户接入的时候存在着问题,我们还需要知道客户端使用的操作系统浏览器的版本。
二、监控系统的实现原理
1.模块组成
一个监控系统的组成大体可以分为两部分:数据采集部分和数据存储、分析告警、展示部分,这两部分构成了监控系统的基本模型。
2.采集协议
按照支持的协议方式,监控IT数据采集可以分为两种:专用客户端采集和公用协议采集
3.监控模式
监控系统数据采集的工作模式可以分为被动模式和主动模式。被动模式指的是服务器端到客户端采集数据;主动模式是客户端主动上报数据到服务器。
一般来说被动模式对监控端服务器的开销较大,适合小规模的监控环境;被动模式对监控端服务器的开销较小,适合大规模的监控环境。
4.代理架构
对于大规模的监控环境,被监控节点比较多,并且监控类型也很多,监控产生的数据和网络连接开销非常大,数据采集方式除了使用主动模式之外,还需要使用代理的架构,通过代理架构分摊服务器端的性能开销。另外,代理架构还支持跨地域、跨网络的分布式监控。常见的代理架构为C/S/P 架构,即Client/Proxy/Server。
三、监控系统的开源产品
1.zabbix
Zabbix 是一款出色的企业级运维监控平台,可用于监控从服务器、网络设备到 web 应用程序和数据库的性能和可用性的一切:它可以安装在 Linux、AIX、Windows、solaris、Mac0s X、FreeBsD、openBsD等系统上使用,具有非常良好的适配能力
2.Prometheus+Grafana
Prometheus 是一个开源系统监控和警报工具包,主要用于对基础设施的监控,包括服务器(CPU、MEM等)、数据库(MYSQL、PostgresQL 等)、web 服务等,几乎所有东西都可以通过 Prometheus 进行监控。
3.Cacti
Cacti 是一款网络流量监测图形分析工具,它连接到 RRDTo01,生成与网络数据相关的图表,具有非常强大的数据和用户管理功能,可以指定每一个用户能査看树状结构、host 以及任何一张图,还可以与LDAP 结合进行用户验证,同时也能自己增加模板。
4.Nagios
Nagios 是一个监控系统运行状态和网络信息的监控系统,它可以监控所指定的本地或远程主机以及服务,同时提供异常通知功能等;能够监控几乎所有类型的组件,如网络协议、操作系统、系统指标、应用程序、服务、Web 服务器、网站、中间件等。
5.Checkmk
Checkmk 是一个高度可扩展的监控工具,可监控服务器、网络、云资产、数据库、容器、物联网等。
它有两种模式可用,基础版完全开源并提供免费和无限制的监控,企业版附带附加功能。
Checkmk 具有部署快、高度自动化、配置灵活的特点。
6.0penNMS
OpenNMS 是一个企业级基于 ava/XML 的分布式网络和系统监控管理平台。它能够显示网络中各中终端和服务器的状态和配置,为管理网络提供有效的信息。它专为Linux 设计,但也支持 windows、Solaris 和 OSX。OpenNMS 可以使用 JMX、WMI、SNMP、NRPE、XML HTTP、JDBC、XML、JSON 等收集系统指标。
7.Netdata
Netdata 是一款 Linux 性能实时监测工具,它可以为 Linux 系统、应用程序、SNMP 服务等提供实时的性能监测,目前在物理系统、虚拟机、容器和物联网/边缘设备上运行。Netdata具有监控指标多而广,数据收集速度快等特点,可以同时并发监控数万个指标,交互式可视化和富有洞察力的健康警报,可以即时诊断基础架构中的异常情况。
8.LibreNMS
LibreNMS 是一个开源、功能丰富且强大的网络监控系统,易于安装和配置,可以在多种平台上使用:它提供了广泛的功能,包括对各种协议的支持、性能监控、警报等;支持广泛的供应商、设备和协议,包括Cisco、Linux、Windows、HP、Juniper、Dell、FreeBsD、Brocade、citrix、F5 Networks 等:还可以根据接口进行接口分组,使用 SNMP、CDP、ARP、FDP、OSPF、LLDP、BGP 自动发现整个网络。
四、Zabbix 系统概述
1.初识 Zabbix
Zabbix 是什么,它是一种企业级的分布式开源监控系统的解决方案,zabbix 是一个基于 web 界面的提供分布式系统监控,以及网络监控功能的企业级开源解决方案
Zabbix 由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发和支持。
Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得
Zabbix 成为容量规划的理想选择。
Zabbix 支持轮询和 trapping。所有 zabbix 报告和统计数据以及配置参数都可以通过基于 web的前端访问。基于 web 的前端确保可以从任何位置评估您的网络状态和服务器的健康状况。如果配置得当,不管对于拥有少量服务器的小型组织还是拥有大量服务器的大公司来讲,Zabbix 都可以在监控 IT基础设施方面发挥重要作用。
Zabbix 是免费的。zabbix 是在 GPL 通用公共许可证第 2 版下编写和分发的。这意味着它的源代码是免费分发的,可供公众使用。
2.Zabbix的功能特性
(1)数据收集
- 可用性及性能检测;
- 支持 SNMP(trapping 及 polling)、IPMI、JMX 监控;
- 自定义检测;
- 自定义间隔收集收据;
- 三种角色:Server、Proxy、Agent。
(2)灵活的阈值定义
允许灵活地自定义问题阀值,在 Zabbix 中称为触发器(trigger),存储在后端数据库中。
(3)高级告警配置
- 可以自定义告警升级(escalation)、接收者及告警方式
- 告警信息可以配置,并允许使用宏(macro)变量:
- 通过远程命令实行自动化动作(action)。
(4)实时绘图
通过内置的绘图方法实现监控数据实时绘图,
(5)扩展的图形化显示
- 允许自定义创建多监控项视图;
- 生成网络拓扑(network maps);
- 自定义的面板(screen)和 slide shows,并允许在 dashboard 页面显示;
- 生成监控报告。
(6)历史数据存储
- 数据存储在数据库中;
- 历史数据可配置;
- 内置数据清理机制。
(7)配置简单
- 一次配置,终生监控,除非调整或删除;
- 允许使用模板添加监控设备。
(8)模板使用
- 模板中可以添加组监控;
- 模板允许继承。
(9)网络自动发现
- 自动发现网络设备:
- Agent 自动注册;
- 自动发现文件系统、网卡设备、SNMP OID 等。
(10)快速的 Web 接口
- web 前端采用 PHP 编写;
- 访问无障碍。
(11)Zabbix API
Zabbix API 提供程序级别的访问接口,第三方程序可以很快接入。
(12)权限系统
- 安全的权限认证;
- 用户可以限制允许维护的列表。
(13)全特性、Agent 易扩展
- 在监控目标上部署;
- 支持 Linux 及 Windows。
(14)二进制守护进程
(1)C 语言开发,高性能,低内存消耗;
(2)易移植。
(15)具备应对复杂环境情况
通过 Zabbix Proxy 可以非常容易的创建远程监控。
3.Zabbix 角色及架构
(1)Zabbix server
zabbix server 是 Zabbix 服务端守护进程。Zabbix Agentd、zabbix Proxy 的数据最终都是提交到 Server。当然,并不是所有数据都主动提交给 Zabbix Server,也有的是 Server 主动获取数据。
(2)Zabbix Agent
zabbix_agentd 是客户端守护进程,此进程主要用于收集客户端数据,例如 CPU 负载、内存、硬盘使用情况等。
(3)Zabbix Proxy
zabbix_proxy 是 Zabbix 代理守护进程,功能类似 Server。不同的是,zabbix_proxy 只是一个中转站,它需要把收集到的数据提交/被提交到 Server。
(4)Zabbix Web
zabbix 的 web 界面,管理员通过 web 界面管理 zabbix 配置以及査看 zabbix 相关监控信息,通常与 zabbix server 运行在同一台主机上,也可以单独部署在独立的服务器上。
(5)Zabbix 整体架构
五、实验拓扑结构
1.设备列表
2.拓扑结构
六、LNMP环境的搭建(在server主机上)
1.配置yum仓库
(1)下载阿里的仓库文件
root@localhost ~]# hostnamectl set-hostname ZBX
[root@zbx ~]# bash
[root@zbx ~]# rm -rf /etc/yum.repos.d/*
[root@zbx ~]# curl -o /etc/yum.repos.d/centos-Base.repo
https://mirrors.aliyun.com/repo/centos-7.repo
[root@zbx ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
(2)安装 php7 的仓库
[root@zbx ~]# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
(3)生成mariadb10.11 的仓库文件
[root@zbx ~]# cat<<EOF> /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.11/centos/7/x86 64/gpgcheck=0
EOF
(4)清空 yum 缓存
[root@zbx ~]# yum clean all
2.安装php74、nginx、mariadb
(1)安装php7.4和 nginx
[root@zbx ~]# yum install -y --enablerepo=remi --enablerepo=remi-php74 mod php php-gd* php php-opcache php-mbstringphp-mysqlndphp-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-fpm php-devel php-bcmathphp-ldap gcc* libxml2-devel net-snmp net-snmp-devel libevent-devel curl-devel
(2)安装mariadb-10.11
[root@zbx ~]# yum -y install mariadb-server mariadb-devel nginx
3.关闭防火墙
[root@zbx ~]# sed -i's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config
[root@zbx ~]# setenforce 0
[root@zbx ~]# systemctl disable firewalld
[root@zbx ~]# systemctl stop firewalld
4.配置 nginx
(1)生成nginx 配置文件
[root@zbx ~]# cd /etc/nginx
[root@zbx ~]# cp nginx.conf nginx.conf.bak
[root@zbx ~]# rm -rf nginx.conf
[root@zbx ~]# cp nginx.conf.default nginx.conf
(2)修改 nginx 配置文件
[root@zbx ~]# vim nginx.conf
5.启动服务
[root@zbx ~]# systemctl start nginx
[root@zbx ~]# systemctl enable nginx
[root@zbx ~]# systemctl start php-fpm
[root@zbx ~]# systemctl enable php-fpm
[root@zbx ~]# systemctl start mariadb
[root@zbx ~]# systemctl enable mariadb
6.设置数据库密码
[root@zbx ~]# mysqladmin -u root password 'pwd123'
7.测试LNMP环境
[root@zbx ~]# mkdir /www
[root@zbx ~]# vim /www/test.php
<?php
$link=mysqli connect('127.0.0.1','root','pwd123');
if($link)echo"恭喜你,数据库连接成功啦!!":mysqli close($link);
?>
8.修改php.ini
[root@zbx ~]# vim /etc/php.ini
max execution time =300 ##388 行,最长执行时间是 30 秒,数值 0 表示没有
##执行时间的限制,你的程序需要跑多久便跑多久
max input time= 300 ##398 行,以秒为单位设定了脚本接收输入的最大时间
date.timezone =Asia/Shanghai ##923 行
post max size = 16M ##694,服务器可以接收的最大 POST 数据大小
bcmath.scale =1 ##1205,所有 bcmath 函数中十进制数字的数目
9.修改 php-fpm
[root@zbx ~]# useradd -M-s /sbin/nologin zabbix
[root@zbx ~]# vim /etc/php-fpm.d/www.conf
user = zabbix
group = zabbix
systemctl restart php-fpm
七、zabbix的安装与配置(在server 主机上)
1.创建 zabbix 数据库并导入数据
(1)创建zabbix 数据库
[root@zbx ~]# mysql -uroot -ppwd123
MariaDB 「(none)]> create database zabbix character set utf8 collate utf8 bin;
MariaDB [(none)]> create database zabbix proxy character set utf8 collate utf8 bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';
MariaDB [(none)]> grant all privileges on zabbix_proxy.* To 'zabbix'@'localhost' identified BY 'zabbix';
MariaDB [(none)]> grant all privileges on zabbix_proxy.* To 'zabbix'@'%' identified By 'zabbix';
(2)导入zabbix 数据
[root@zbx ~]# tar zxvf zabbix-6.4.8.tar.gz
[root@zbx ~]# cd zabbix-6.4.8/database/mysq1/
[root@zbx mysql]# mysql-uzabbix -pzabbix zabbix<schema.sql
[root@zbx mysql]# mysql-uzabbix -pzabbix zabbix<images.sql
[root@zbx mysql]# mysql-uzabbix -pzabbix zabbix<data.sql
[root@zbx mysq1]# mysql -uzabbix -pzabbix zabbix proxy <schema.sql
备注:
如果需要运行zabbix server,需要导入schema.sql、images.sql、data.sql 这三个文件到zabbix数据库
如果需要运行zabbix agent,需要导入schema.sql 到zabbix proxy 数据库。
2.zabbix 的安装与配置
(1)源码安装zabbix
[root@zbx mysql]# cd /root/zabbix-6.4.8
[root@zbx zabbix-6.4.8]# ./configure --prefix=/usr/local/zabbix/\--enable-server --enable-agent
--with-mysql
--with-libcurl
--with-libxm12
--with-net-snmp
--with-unixODBc
--with-zabbix-get
[root@zbx zabbix-6.4.8]# make
[root@zbx zabbix-6.4.8]# make install
备注:
- --prefix=/usr/local/zabbix:指定zabbix安装路径
- --enable-server:启动server端
- --enable-agent:启动agent端
- --with-mysql:编译连接mysql 相关依赖包
- --with-libcurl:启动curl相关,对SMTP身份验证
- --with-libxml2:启动xml相关,提供对XML文档的各种操作
- --with-net-snmp:启动snmp相关,用于snmp监控设备,支持snmp 协议
- --with-unixodbc:启动odbc相关用于监控数据库
- --with-zabbix-get:zabbix get 是一种命令行的应用
- --enable-java:启动java-agent 用于监控java 类,需要安装IAVA环境
- --enable-ipv6:HIPV6
- --with-libcurl 和--with-libxml2 配置选项对虚拟机监控是必须的
(2)优化命令路径
[root@zbx zabbix-6,4.8# 1n-s /usr/local/zabbix/sbin/* /usr/local/sbin/
[root@zbx zabbix-6.4.8]#In-s /usr/local/zabbix/bin/* /usr/local/bin
(3)服务控制脚本的优化
[root@zbx zabbix-6.4.8]# cd /root/zabbix-6.4.8/misc/init.d/fedora/core
[root@zbx zabbix-6.4.8]# cp zabbix_agentd /etc/init.d/
[root@zbx zabbix-6.4.8]# cp zabbix server /etc/init.d/
[root@zbx zabbix-6.4.8]# cd /etc/init.d/
[root@zbx init.d]# vim zabbix agentd
BASEDIR=/usr/local/zabbix
[root@zbx init.d]# vim zabbix server
BASEDIR=/usr/local/zabbix
(4)修改 zabbix 服务端参数
[root@zbx init.d]# cd /usr/local/zabbix/etc
[root@zbx etc]# vim zabbix server.conf
LogFile=/tmp/zabbix server.log
LogFilesize=1024 #单位M, 47
DBHost=localhost #数据库主机名 87
DBName=zabbix #数据库中库名 99
DBUser=zabbix #数据库用户名 115
DBPassword=zabbix #数据库用户密码 123
(5)修改zabbix 代理端参数
[root@zbx etc]# vim zabbix agentd.conf
Server=127.0.0.1 ##113
ServerActive=127.0.0.1 ##167
Hostname=Zabbix server ##178
备注:
利用HostnameItem 可以动态获取主机的名称
如果配置 HostnameItem=system.hostname 而未配置 Hostname=xxx 参数,那么在web 监控页面显示的主机的可见名称为客户端主机的主机名(即通过 hostname 命令得到的结果)
如果配置 Hostname=xxx 而末 HostnameItem=svstem,hostname 参数,那么在web 监控页面显示的主机的可见名称为 xxx
如果未配置 HostnameItem=system.hostname 和 Hostname=xxx 这两个参数,那么在web 监控页面显示的主机的可见名称为 客户端主机的主机名(即通过 hostname 命令得到的结果)
如果同时配置 HostnameItem=system.hostname 和 Hostname=xxx 参数,那么在web 监控页面显示的主机的可见名称为 xxx (即以配置文件中的Hostname 定义的为准)要对一大批主机进行自动配置时,这里就可以使用HostnameItem,所有的主机都使用一个模板进行批量部署,就避免了每台主机再去单独设置hostname 的麻烦
(6)拷贝 zabbix 网站程序到 httpd 的网站根目录下
[root@zbx etc]# cd /root/zabbix-6.4.8/ui
[root@zbx ui]# cp -rf * /www
[root@zbx ui]# chown -R zabbix:zabbix /www
[root@zbx ui]# cd ~
(7)启动 zabbix
[root@zbx ~]# chkconfig --add zabbix agentd
[root@zbx ~]# chkconfig --add zabbix server
[root@zbx ~]# chkconfig zabbix_agentd on
[root@zbx ~]# chkconfig zabbix server on
[root@zbx ~]# systemctl start zabbix_agentd
[root@zbx ~]# systemctl enable zabbix_agentd
[root@zbx ~]# systemctl start zabbix server
[root@zbx ~]# systemctl enable zabbix_server
3.zabbix初识配置
(1)登录zabbix
http://192.168.10.108/index.php
(2)设置语言
(3)检查环境
要求所有必要条件都是“OK”的提示
(3)填写数据库信息
(4)主机名设置(保持默认即可,不用填写)
(5)安装前信息汇总,确认无误,即可点击下一步
(6)确认安装成功并点完成
(7)登录界面
(8)登录后的界面
八、安装 Zabbix Agent(在agent 主机 server01 上)
[root@localhost ~]# hostnamectl set-hostname server01
[root@localhost ~]# bash
[root@server01 ~]#systemctl stop firewalld
[root@server01 ~]# setenforce 0
[root@server01 ~]# rpm -ivh pcre2-10.23-2.e17.x86 64.rpm
[root@server01 ~]# rpm -ivh zabbix-agent-6.4.8-release2.el7.x86_64.rpm
[root@server01 ~]# vim /etc/zabbix/zabbix agentd.conf
Server=192.168.10.108#指向 Proxy 地址 ,也可以直接指向 server 端
ServerActive=192.168.10.108 #指向 Proxy 地址,也可以直接指向 server 端
Hostname=server01
#Agent 本地的名称,需要与将来在 Server 端的 web 页面上的主机名称一致,名称自定义
[root@server01 ~]# systemctl start zabbix-agent
[root@server01 ~]# systemctl enable zabbix-agent
备注:
Server:被动模式,允许指定的服务器连接本机获取采集的数ServerActive:此参数为主动模式需要设置的,主动提交采集数据给指定的服务器,此处可以注释掉,如果要开启主动模式,则开启
九、在zabbix server 上添加主机
1.添加 agent 主机
数据采集-->主机->创建主机
2.添加完成的状态![](https://i-blog.csdnimg.cn/direct/3d29e13854c94fe0bb4d95e8fd39ded0.png)
3.查看图像信息
检测-->主机-->图像
4.解决图像中文乱码
注意:可以直接执行(4)、(5)两步
(1)查找 zabbix 定义字体的 php 文件
[root@ZBX ~]# find /-name defines.inc.php
/root/zabbix-6.4.8/ui/include/defines.inc.php
/www/include/defines.inc.php
注意:
/www 是本案中zabbix 的前端位置,不同的安装者,此位置可能不同
(2)查看 zabbix 字体文件中用的字体
[root@ZBX ~]# grep"ZBX FONTPATH" /www/include/defines.inc.php
define('ZBX FONTPATH',realpath('assets/fonts'));// where to search for font(GD >2.0.18)
[root@ZBX ~]# grep "ZBX GRAPH FONT NAME" /www/include/defines.inc.php
define('ZBX GRAPH FONT NAME','DejaVusans');// font file name
(3)查找 zabbix 的字体文件位置
[root@ZBX ~]# find /-name DejaVuSans.ttf
/root/zabbix-6.4.8/ui/assets/fonts/DejaVuSans.ttf
/usr/share/fonts/dejavu/DejaVusans.ttf
/www/assets/fonts/DejaVuSans.ttf
(4)在windows 系统中找一个 ttf 或 ttc 格式的字体
位置在c:\Windows\Fonts
(5)将选择的字体文件上传到/www/assets/fonts 目录下
例如此处选择 msyhl.ttc(微软雅黑)
[root@ZBX ~]# cd /www/assets/fonts
[root@ZBX fonts]# ln -snf msyhl.ttc DejaVuSans.ttf
备注:
-s --symbolic 比较容易,有-s时表示创建软连接,没有-s时,表示创建硬链接
-f --force 强行删除任何已存在的目标文件
-n --no-dereference 把符号连接的目的目录视为一般文件刷新页面观察效果
十、proxy 端的安装(在 proxy 主机上)
1.导入数据库(在 zabbix server 服务器)
在本案例中,将 zabbix proxy 的数据库一同放在了 zabbix server 服务器的 mysql 数据库,需要前往 zabbix server 主机,将 schema.sq1 文件导入到zabbix proxy 数据库。在前面的步骤中,已经执行过此步骤,此处不再执行。
2.关闭防火墙
[root@proxy ~]# hostnamectl set-hostname proxy
[root@proxy ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
[root@proxy ~]# setenforce 0
[root@proxy ~]# systemctl disable firewalld
[root@proxy ~]# systemctl stop firewalld
3.设置yum仓库
[root@proxy ~]# rm -rf /etc/yum.repos.d/*
[root@proxy ~]# curl -o\
/etc/yum.repos.d/Centos-Base.repo https://mirrors.aliyun.com/repo/centos-7.repo
[root@proxy ~]# curl -o
/etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
[root@proxy ~]# yum clean all
4.安装依赖包
[root@proxy ~]#yum-y install gcclibxm12-devel unixODBc-devel net-snmp-devel
libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel libevent
libevent-devel
5.安装zabbix-proxy
[root@proxy ~]# tar zxvf zabbix-6.4.8.tar.gz
[root@proxy ~]# cd zabbix-6.4.8
[root@proxy zabbix-6.4.8]# ./configure--prefix=/usr/local/zabbix
--enable-proxy
--with-mysql
--with-net-snmp
--with-libcurl
--with-libxm12
--with-unixODBC
[root@proxy zabbix-6.4.8]# make
[root@proxy zabbix-6.4.8]# make install
6.修改配置文件
[root@proxy zabbix-6.4.8]# vim /usr/local/zabbix/etc/zabbix proxy.conf
ProxyMode=0
Server=192.168.10.108
Hostname=Zabbix proxy
ListenPort=10051
LogFile=/tmp/zabbix proxy.1og
LogFilesize=0
PidFile=/tmp/zabbix proxy.pidSocketDir=/tmp
DBHost=192.168.10.108
DBName=zabbix proxy
DBUser=zabbix
DBPassword=zabbix
7.启动
[root@proxy zabbix-6.4.8]# useradd -M-s /sbin/nologin zabbix
[root@proxy zabbix-6.4.8]# /usr/local/zabbix/sbin/zabbix proxy
[root@proxy zabbix-6.4.8]# netstat -anptgrep zabbix_proxy
8.在 web 管理界面上添加 proxy 主机
管理-->Proxy>创建 agent 代理
选择主动式(默认)
9.设置 agent 端 server02 主机配置文件
[root@localhost ~l# hostnamectl set-hostname server02
[root@localhost ~]# bash
[root@server02 ~]# systemctl stop firewalld
[root@server02 ~]# setenforce 0
[root@server02 ~]# rpm -ivh pcre2-10.23-2.e17.x86 64.rpm
[root@server02 ~]# rpm -ivh zabbix-agent-6.4.8-release2.el7.x86_64.rpm
vim /etc/zabbix/zabbix agentd.conf
#修改 Server 的值
Server=192.168.10.107
ServerActive=192.168.10.107
Hostname=server02
备注:
将Server 的地址修改为proxy 主机的主机
[root@server02 ~]# systemctl restart zabbix-agent