csdn对markdown语法支持不行,若出现乱码,请参考手册
zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
Zabbix由几个主要的软件组件构成,这些组件如下:
Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器
所有配置信息和Zabbix收集到的数据都被存储在数据库中。
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。
Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。
此外,了解Zabbix内部的数据流同样很重要。监控方面,为了创建一个监控项(item)用于采集数据,必须先创建一个主机(host)。告警方面,在监控项里创建触发器(trigger),通过触发器(trigger)来触发告警动作(action)。 因此,如果你想收到Server XCPU负载过高的告警,你必须: 1. 为Server X创建一个host并关联一个用于对CPU进行监控的监控项(Item)。 2. 创建一个Trigger,设置成当CPU负载过高时会触发 3. Trigger被触发,发送告警邮件 虽然看起来有很多步骤,但是使用模板的话操作起来其实很简单,Zabbix这样的设计使得配置机制非常灵活易用。
主机 (host)
一台你想监控的网络设备,用IP或域名表示
主机组 (host group)
主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
监控项 (item)
你想要接收的主机的特定数据,一个度量数据。
触发器 (trigger)
一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式
当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。
事件 (event)
单次发生的需要注意的事情,例如触发器状态改变或发现有监控代理自动注册
异常 (problem)
一个处在“异常”状态的触发器
动作 (action)
一个对事件做出反应的预定义的操作。
一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成
升级 (escalation)
一个在动作内执行操作的自定义场景; 发送通知/执行远程命令的序列
媒介 (media)
发送告警通知的手段;告警通知的途径
通知 (notification)
利用已选择的媒体途径把跟事件相关的信息发送给用户
远程命令 (remote command)
一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令
模版 (template)
一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合
模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。
应用 (application)
一组监控项组成的逻辑分组
web 场景 (web scenario)
利用一个或多个HTTP请求来检查网站的可用性
前端 (frontend)
Zabbix提供的web界面
Zabbix API
Zabbix API允许你使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务
Zabbix server
Zabbix软件实现监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等
Zabbix agent
一个部署在监控对象上的,能够主动监控本地资源和应用的程序
Zabbix proxy
一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序
更多的相关资料请参考ZABBIX官方文档
本章跳过zabbix的相关安装部署,请参考手册安装。
实验环境中有两台主机,环境说明如下:
#Server端 [root@linux-node01 ~]# hostname linux-node01.zte.com.cn [root@linux-node01 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@linux-node01 ~]# ifconfig|grep 'inet 192'|awk '{print $2}' 192.168.56.11 #agent端或其他 [root@linux-node02 ~]# hostname linux-node02.zte.com.cn [root@linux-node02 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@linux-node02 ~]# uname -r 3.10.0-862.el7.x86_64 [root@linux-node02 ~]# ifconfig|grep 'inet 192'|awk '{print $2}' 192.168.56.12
#安装 rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm yum install zabbix-agent -y #配置 [root@linux-node01 ~]# vi /etc/zabbix/zabbix_agentd.conf Server=192.168.56.11 ServerActive=192.168.56.11 #启动 [root@linux-node02 ~]# systemctl start zabbix-agent [root@linux-node02 ~]# netstat -lntup|grep zabbix_agent tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2787/zabbix_agentd tcp6 0 0 :::10050 :::* LISTEN 2787/zabbix_agentd
小知识
你启动服务的时候为啥敲TAB键不会自动补全呢?
因为CentOS7的默认安装类型是最小安装,所以默认没有自动补全的功能。要启用这个功能,你需要安装一个bash-comletion包,然后退出bash,重新登录即可。命令: yum install -y bash-completion
Configuration->Hosts->linux-node01->Full Clone,如下图所示:
linux-node02的host配置如下所示:
链接模板“Template OS Linux”的配置如下:
ZABBIX 监控的host的结果展示如下:
公司新上了两台机器,要求ZABBIX对其监控。
其架构如下:
主机分组:
监控对象识别:
简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
SNMP将被管理对象用一个树来组织,被管理对象用OID表示,通过snmp操作oid即可得到网络管理的数据。
我们使用SNMP(简单网络管理协议)协议监控交换机,需要在交换机端开启SNMP。以思科为例,其开启命令如下:
config t snmp-server community public ro end
由于是实验环境,我们这使用Linux模拟开启SNMP,然后对其进行监控。实际上,添加监控交换机的步骤也是跟下面的过程一样的。
1.在Linux上安装部署SNMP服务。
#注意!在zabbix agent端上安装。即在linux-node02上安装,192.168.56.12的那台机器。 [root@linux-node01 ~]# yum install net-snmp net-snmp-utils -y [root@linux-node01 ~]# vi /etc/snmp/snmpd.conf rocommunity zte 192.168.56.11 #使用 rocommunity 来定义一个只读权限的共同体,使用 rwcommunity 来定义一个读写权限的共同体。 #zte为共同体名称 #192.168.56.11指定只有该IP地址有访问权限 [root@linux-node01 ~]# systemctl start snmpd [root@linux-node01 ~]# netstat -lntup|grep snmpd tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 2253/snmpd udp 0 0 0.0.0.0:161 0.0.0.0:* 2253/snmpd
2.使用snmp的get命令获取被监控服务器相关信息。
#在zabbix server端上测试访问。 [root@linux-node01 ~]# snmpget -v2c -c zte 192.168.56.12 .1.3.6.1.2.1.1.1.0 SNMPv2-MIB::sysDescr.0 = STRING: Linux linux-node02.zte.com.cn 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64
3.在ZABBIX WEB上添加主机。Configuration->Hosts->Crate Host
4.在switch-node02主机上链接Template(模板)。
5.可以看到监控带有snmp服务的机器成功了。
远程管理卡是安装在服务器上的硬件设备,提供一个以太网接口,使它可以连接到局域网内,提供远程访问。这种远程管理基于BMC(底板管理控制器),由集成在管理卡上的系统微处理器负责监测和管理操作系统之外的服务器环境和状态。它既不会占用服务器系统的资源,也不会影响服务器系统的运行。
远程控制卡基于BMC控制器,BMC控制器可以通过IPMI(Intelligent Platform Management Interface,智能平台管理接口)进行管理。所以linux就使用IPMI工具对所有服务器硬件进行远程监控和操作。
linux的IPMI工具是ipmitool。ipmitool 是一种可用在 linux 系统下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 规范(最新的规范为 ipmi 2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。
通过如下命令安装和启动IPMI服务:
yum install OpenIPMI ipmitool -y systemctl start ipmi
ipmitool工具的使用,可以参考百度百科。
我司在使用IPMI监控时经常出现超时的问题,所以我们后来使用自定义item,然后在本地执行ipmitool命令获取数据。
从Zabbix 2.0版本开始,以Zabbix守护进程的形式原生支持监控JMX程序出现了,它被称为Zabbix Java gateway。Zabbix gateway 是用Java语言写成。要查得一台主机特定的JMX计数器值,Zabbix server向Zabbix Java gateway发送请求,后者使用JMX管理API 去请求远程的有关应用。
Java gateway接受来自Zabbix Server或Agent的传入连接,且只能用作“被动proxy”。 与Zabbix proxy相反,它也可以从Zabbix agent调用(Zabbix agent不能被链接)。 每个Java gateway的访问都直接在Zabbix sever或 proxy配置文件中配置,因此每个Zabbix sever或Zabbix agent只能配置一个Java gateway。 如果一台主机具 JMX agent 类型的监控项和和其他类型的监控项,则只将JMX agent监控项传递到Java gateway进行检索。
1.安装配置Java Gateway。
#在server端上安装Java Gateway yum install zabbix-java-gateway java-1.8.0 -y #Java Gateway配置文件位置 [root@linux-node01 ~]# ls /etc/zabbix/zabbix_java_gateway.conf /etc/zabbix/zabbix_java_gateway.conf #启动Java Gateway代理,查看Java Gateway程序的端口和进程 [root@linux-node01 ~]# systemctl start zabbix-java-gateway.service [root@linux-node01 ~]# netstat -lntup|grep 10052 tcp6 0 0 :::10052 :::* LISTEN 32896/java #可以看到这是一个java程序,所以需要安装JDK [root@linux-node01 ~]# ps aux|grep java|grep -v grep zabbix 32896 1.1 0.9 2988200 36876 ? Sl 01:09 0:00 java -server -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-0.9.27.jar:lib/logback-core-0.9.27.jar:lib/slf4j-api-1.6.1.jar:bin/zabbix-java-gateway-3.0.18.jar -Dzabbix.pidFile=/var/run/zabbix/zabbix_java.pid -Dzabbix.timeout=3 -Dsun.rmi.transport.tcp.responseTimeout=3000 com.zabbix.gateway.JavaGateway
2.设置zabbix server让其与Java Gateway能够通信
[root@linux-node01 ~]# vi /etc/zabbix/zabbix_server.conf#设置JavaGateway的IP地址 JavaGateway=192.168.56.11 #启动查看Java代理的进程个数 StartJavaPollers=5 #重启zabbix server端 [root@linux-node01 ~]# systemctl restart zabbix-server.service [root@linux-node01 ~]# netstat -lntup|grep zabbix_server tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 33567/zabbix_server tcp6 0 0 :::10051 :::* LISTEN 33567/zabbix_server
3.测试环境中没有Tomcat,需要安装,环境安装在linux-node02上,即IP为192.168.56.12的机器。
#需要java环境 [root@linux-node02 ~]# yum install java-1.8.0 -y #安装Tomcat mkdir /home/zxin10/tools -p cd /home/zxin10/tools/ wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz tar zxf apache-tomcat-8.5.31.tar.gz mv apache-tomcat-8.5.31 /usr/local/ ln -s /usr/local/apache-tomcat-8.5.31/ /usr/local/tomcat
4.启动Tomcat
[root@linux-node02 tools]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@linux-node02 tools]# netstat -lntup|grep 8080 tcp6 0 0 :::8080 :::* LISTEN 5567/java
5.开启JMX远程监控
JMX认证的三种类型:1.无密码认证 2.用户名密码认证 3.SSL认证
修改/usr/local/tomcat/bin/catalina.sh [root@linux-node02 local]# vi /usr/local/tomcat/bin/catalina.sh#在第111行添加如下内容: CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.56.12" #重启tomcat [root@linux-node02 local]# /usr/local/tomcat/bin/shutdown.sh [root@linux-node02 local]# /usr/local/tomcat/bin/startup.sh [root@linux-node02 local]# netstat -lntup|grep -E "8888|8080" tcp6 0 0 :::8080 :::* LISTEN 6884/java tcp6 0 0 :::8888 :::* LISTEN 6884/java
6.在Windows端打开jconsole,连接测试一下。
jconsole的路径:C:\Program Files\Java\jdk1.8.0_171\bin
远程进程(R):输入“192.168.56.12:8888”
最后的结果如下,可以查看JVM的性能
7.在zabbix上添加JMX监控。
添加监听端口,Configuration->Hosts->Crate host。
在linux-node02-byJMX上关联“Template JMX Tomcat”模板。
最后显示主机配置成功了
关于JVM的理解,推荐书籍《深入理解JVM》
1.配置nginx,让其展示nginx状态信息。
[root@linux-node01 ~]# vi /usr/local/nginx/conf/nginx.con #写在server标签对里,且只能允许本地访问nginx状态信息 location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }#重启nginx服务,测试访问。 [root@linux-node01 ~]# /usr/local/nginx/sbin/nginx -s reload [root@linux-node01 ~]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx-1.4.0/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx-1.4.0/conf/nginx.conf test is successful [root@linux-node01 ~]# /usr/local/nginx/sbin/nginx -s reload [root@linux-node01 ~]# netstat -lntup|grep 8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4390/nginx: master [root@linux-node01 ~]# curl http://127.0.0.1:8080/nginx_status Active connections: 1 server accepts handled requests 549099 549099 549095 Reading: 0 Writing: 1 Waiting: 0
2.编写脚本,在agent采集数据。
[root@linux-node01 ~]# cd /etc/zabbix/zabbix_agentd.d/ [root@linux-node01 zabbix_agentd.d]# rz#别急,脚本在后面给了。 [root@linux-node01 zabbix_agentd.d]# ls zabbix_linux_plugin.sh zabbix_linux_plugin.sh [root@linux-node01 zabbix_agentd.d]# chmod +x zabbix_linux_plugin.sh [root@linux-node01 zabbix_agentd.d]# ./zabbix_linux_plugin.sh Usage: ./zabbix_linux_plugin.sh {tcp_status key|memcached_status key|redis_status key|nginx_status key} [root@linux-node01 zabbix_agentd.d]# ./zabbix_linux_plugin.sh nginx_status 8080 active 1
2.修改agent的配置文件,重启zabbix-agent
让它的包含配置更严谨,这样我们可以把脚本也放到/etc/zabbix/zabbix_agentd.d目录里面了。
[root@linux-node01 tools]# vi /etc/zabbix/zabbix_agentd.conf Include=/etc/zabbix/zabbix_agentd.d/*.conf
新加/etc/zabbix/zabbix_agentd.d/zabbix-linux-plugin.conf,增加zabbix键值。
[root@linux-node01 zabbix_agentd.d]# vi /etc/zabbix/zabbix_agentd.d/zabbix-linux-plugin.conf UserParameter=linux_status[*],/etc/zabbix/zabbix_agentd.d/zabbix_linux_plugin.sh "$1" "$2" "$3"#重启zabix-agent [root@linux-node01 zabbix_agentd.d]# systemctl restart zabbix-agent.service [root@linux-node01 zabbix_agentd.d]# netstat -lntup|grep 10050 tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 38431/zabbix_agentd tcp6 0 0 :::10050 :::* LISTEN 38431/zabbix_agentd
3.在server端测试,查看是否能够获取到key值
[root@linux-node01 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -k linux_status[nginx_status,8080,active] 1 [root@linux-node01 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -k linux_status[nginx_status,8080,reading] 0 [root@linux-node01 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -k linux_status[nginx_status,8080,writing] 1 [root@linux-node01 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -k linux_status[nginx_status,8080,waiting] 0 [root@linux-node01 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -k linux_status[nginx_status,8080,accepts] 549110 [root@linux-node01 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -k linux_status[nginx_status,8080,handled] 549111 [root@linux-node01 zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -k linux_status[nginx_status,8080,requests] 549108
4.创建模板,Configuration -> Templates ->Crate Templates
因为我们之后要在主机上加很多的监控项(itme),为了方便起见,我们这里先创建Template,再在Template上创建监控项图表(grphs)等,最后让主机应用模板。
5.在我们创建好的模板“Template Nginx status”上创建对应的监控项(items)。
Configuration -> Templates->Template Nginx status->Crate item
以Nginx的状态信息active为例,配置如下图所示:
跟上面测试的键值一样的,Nginx一共七种状态。
6.为模板“Template Nginx status”创建图表(Graphs)
7.为linux-node01添加Nginx Status模板。
Configuration->Host->linux-node01->Template->add->”Telmplate Nginx Status”
图表已经出来了,如下图所示:
1.新增触发器(Trigger),如果Nginx的负载超过1,则报WARNING级别报警。
Configuration->Hosts->linux-node01->Triggers->Crate trigger
多访问几次Nginx服务器,然后查看是否报警了。
[zabbix_agentd.d]# curl 192.168.56.11:8080/index.html
2.在此触发器的基础上新增一条动作(Action),如果出现报警则发送邮件给管理员。
首先配置ZABBIX用于报警的邮箱,我使用的163邮箱。Configuration->Media types->Email
然后设置管理员的邮箱,监控报警邮件的接收邮箱,我使用的189邮箱。
最后设置Action,如果出现问题就发送邮件。
测试,访问Nginx使得负载大于1,报警。查看是否能够发送邮件!
发送成功!登录邮箱查看是否收到邮件,收到了!
我司使用Percona的插件监控MySQL,Percona的官方文档。
Percona的插件会使用到php环境,所以部署之前需要安装好php环境,使用命令
yum install php php-mysql
进行安装。
1.配置ZABBIX客户端。
#安装percona-zabbix-templates工具 [root@linux-node01 zabbix_agentd.d]# yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm [root@linux-node01 zabbix_agentd.d]# yum install percona-zabbix-templates -y #拷贝perconaagent-zabbix-templates工具提供的配置文件到zabbix agent [root@linux-node01 ~]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/ #重启zabbix-agent [root@linux-node01 ~]# systemctl restart zabbix-agent.service [root@linux-node01 ~]# netstat -lntup|grep 10050 tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 51855/zabbix_agentd tcp6 0 0 :::10050 :::* LISTEN 51855/zabbix_agentd #工具的组成 [root@linux-node01 zabbix_agentd.d]# rpm -ql percona-zabbix-templates.noarch /var/lib/zabbix/percona /var/lib/zabbix/percona/scripts /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh #shell调用PHP脚本 /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php #PHP脚本用来数据采集 /var/lib/zabbix/percona/templates /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf #zabbix配置文件 /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml #zabbix模板文件
2.在agent上配置MySQL连接
修改用于连接mysql的用户的配置文件信息
[root@linux-node01 ~]# vi /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf#下载模板(Template)文件,放到桌面上。 [root@linux-node01 ~]# sz /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
导入模板文件到linux-node01上,Configuration->Templates->import。
如下图所示:
在linux-node01主机上应用该模板。
1.ZABBIX自带监控WEB url的功能。Configuration->Hosts->linux-node02->web->Crate web scenario
Steps设置
2.ZABBIX的web监控功能默认不添加触发器,所以需要添加一个触发器(template)。
Configuration->Hosts->linux node02->Trigger->Crate Trigger
停掉Nginx服务,测试WEB监控是否报警。
[root@linux-node01 ~]# /usr/local/nginx/sbin/nginx -s stop
可以看到已经触发了报警,我之前把发邮件的动作停了,所以最右侧没有发邮件。
zabbix的监控模式分为两种,主动模式和被动模式(对于agent而言)。当服务端监控主机多,性能跟不上,延迟大时,需要使用到主动模式。
如何查看zabbix能不能抗的住压力:Administration->Queue
一般来说,当监控主机超过300+,Queue(队列)里有大量延迟的item,建议使用主动模式。
可以修改agent主动模式的方法是修改配置文件/etc/zabbix/zabbix_agent.conf
#StartAgents=0 ServerActive=192.168.56.11 Hostname=linux-node02.zte.com.cn
解决监控跨多机房,防火墙的场景时,可以使用分布式监控。
Zabbix通过Zabbix proxies为IT基础设施提供有效和可用的分布式监控代理(proxies)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器。
abbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.
此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
zabbix proxy 使用场景:
zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可。
proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定。
配置
一旦安装并配置了一个proxy,我们便可以在zabbix管理站点配置它了。
添加 proxies
要在Zabbix前端配置代理:
主机配置
您可以使用由agent代理程序监测字段指定主机配置窗体中的proxy监视单个主机。