何为zabbix

zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix是C/S架构,其由2部分构成,zabbix server与可选组件zabbix agent。zabbix server是用来收集监控信息的,zabbix agent是安装在被监控主机上,agent会将被监控主机的监控信息发送给server,为了方面人为的监控查看和管理,所以zabbix UI 即web页面来展示和配置信息。总的来说就是,先安装 Zabbix Server端,再安装zabbix Agent 或其他监看方式如Trapper,SNMP,JMX到被监控的Host 上收集信息并发送到zabbix server或zabbix server自动接收这些被监控主机的信息,web页面则是用来配置或查看zabbix server得到的各个被监控主机的信息的。

zabbix主要提供一下功能:
1、 一个集中的,易于管理的web管理界面;
2、 它几乎支持所有的类Unix操作系统
由于 Zabbix Agent 有被动模式和主动模式。被动模式,是 Zabbix Server 从 Zabbix Agent 上获取数据。主动模式,是 Zabbix Agent 主动将信息上传到 Zabbix Server。因此,这两个参数的内容都指的是 Zabbix Server 的 IP 地址。
我们知道,并不是所有的设备主机上都能安装agent,所以zabbix还提供了多种监控方式。zabbix主要Agent,Trapper,SNMP,JMX,IPMI这几种监控方式,本文章主要通过监控理论和实际操作测试等方式来简单介绍这几种方式的监控原理和优缺点等 。下面对几种监控方式的监控原理进行介绍:
1、Agent监控方式
在Agent监控方式下,zabbix-agent会主动收集本机的监控信息并通过TCP协议与zabbix-server传递信息。Agent监控方式分为主动和被动模式。在被动模式下,zabbix-agent监听10050端口,等待zabbix-server的监控信息收集信息请求;在主动模式下,zabbix-agent收集监控信息并通过10050端口主动将数据传给zabbix-server所在服务器的10051端口。
优点:
(1)agent是zabbix最常用的监控方式,监测指标深入细致有针对性。
(2)内置监控功能强大,内置监控项目丰富。
(3)TCP方式实现通讯,可靠性也有保证。
缺点:
(1)需要在被监控机器上安装zabbix-agent客户端,部署相对麻烦,最初需要逐个机器安装代理软件
(2)zabbix-agent客户端运行在被监控机上,会收集本机信息
2、Trapper监控方式
Trapper监控方式使用zabbix-sender程序主动向zabbix-server发送数据。key的名称和发送的数据内容都可以灵活定义。发送的信息采用JSON格式,遵循zabbix-sender协议。可以自定义脚本利用zabbix-sender协议来zabbix-server发送信息。
优点:
(1)不需要在被监控机器上安装zabbix-agent
(2)不收集被监控机器的信息(?)
(3)可以自定义发送的信息内容
(4)可以使用自定义脚本发送信息
缺点:
(1)需要自定义发送的信息内容
(2)无内置监控项目
3、SNMP监控方式
SNMP全称Simple Network Management Protocol,即网络管理协议,包括进程管理和被管理设备两部分。作为一种国际通用的网络管理协议被广泛的应用于各种交换机,路由器等网络设备的管理上,而现在也越来越多被用于对服务器的监控上。
优点:
(1)服务器一旦部署SNMPAgent,任何能实现SNMP协议的软件都可以对其进行监测。
(2)通过这种手段进行监测不需知道被监测服务器的用户名和密码,比较安全。
缺点:
(1)很多服务器并非默认安装SNMPAgent,如果通过这种方式监测则需要对所有服务器安装部署。
(2)能监测的参数指标比较固定不够深入,无法满足用户的特殊需求。
(3)由于SNMP协议是通过UDP方式实现的。在网络状况不佳的情况下其可靠性能以保证。
4、JMX监控方式
JMX,全称Java Management Extensions,即Java管理拓展,是Java平台为应用程序,设备,系统等植入管理功能的框架。在zabbix中,JMX数据的获取由zabbix-java-gateway代理程序来负责数据的采集。
优点:
(1)可以详细的监控各类Java程序的运行状态
缺点:
(1)被监控机上需要安装zabbix-java-gateway
5、IPMI监控方式
IPMI,全称Interlligent Platform Management Interface,即智能平台管理接口,原本是Intel架构中企业系统的周边设备所采用的一种工业标准,以后成为业界通用的标准。用户可以利用IPMI监控服务器的物理特性,如温度,电压,电扇工作状态,电源供应以及机箱***等指标。
根据以上对zabbix各主要监控方式的梳理,结论如下:
(1)根据被监控机器的环境和客户要求选用适当的监控方式,可同时配合多种监控方式。
(2)有条件在监控机上部署zabbix-agent客户端时,该方法为第一选择,因为其功能强大且配置相对简便。
(3)需要自定义脚本或者监控信息时,可使用Trapper方式,即使用zabbix-sender程序或者自定义脚本遵循zabbix-sender协议,以JSON形式,通过TCP发送自定义信息。
三、zabbix Trapper监控方式
1、zabbix Trapper 工作原理
zabbix获取数据时有时会出现超时,如果一些数据需要执行较长的时间才能获取的话,那么zabbix会出现异常,考虑到这种情况,zabbix增加了Trapper功能,客户端自己提交数据给zabbix。
Trapper是被监控主机主动发送数据给zabbix server,与主动模式的区别是不需要安装客户端;Trapper方式发送数据是以主机名处理,不是IP地址,所以主机名要唯一。在配置监控项时候Type of information项要选择text,否则会报not support错误。
Trapper工作模式中,使用zabbix监控类型zabbix Trapper(可以称为zabbix捕捉器),在zabbix服务器上必须有一个捕捉项目,然后需要配合zabbix_sender把数据推送给zabbix服务器,该程序由zabbix发行版本自带,源码包解压后在bin目录下,配合crontab定期发送数据给zabbix server。
zabbix_sender是一个命令行工具,可以用来发送zabbix服务器处理性能数据。该工具通常用于长时间运行的用户 脚本,用于定期发送可用性和性能数据。
四、Zabbix SNMP监控方式
1、SNMP监控介绍
如果要监控打印机、路由器、交换机、UPS等设备,肯定不能使用zabbix agentd,因为他们不能安装软件,但是一般都支持SNMP协议,可以使用SNMP来监控。SNMP检查基于UDP协议。
注意事项:如果监控基于SNMPv3协议的设备,确保msgAuthoritativeEngineID(通常叫做snmpEngineID或“Engine ID”)是唯一的。
以前SNMPv3协议只支持MD5和DES加密,从zabbix2.2开始支持SHA与AES加密协议。
五、zabbix JMX监控方式
1、zabbix JMX 简介
在企业中,很多程序是基于Java来编写的,java程序运行在JVM之上,而JVM自己就可以监听在某个套接字上,将自己内部的状态信息输出出去,所以监控服务器只需要直接连接JVM的套接字就可以获取到Java进程的相关信息,不需要通过Agent、SNMP;可是zabbix是没办法自己连接JVM套接字的,也就是说,zabbix自身是不能够作为客户端来链接该套接字的。所以,就需要额外安装一个服务来连接JVM套接字的。这个服务就是zabbix-java-gateway.x86_64(Java网关);可以通过该网关来监听多个JVM;zabbix-agent-gateway可以是一个单独的主机,可以和zabbix server安装到一台主机上;
2、zabbix server 安装java gateway
zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
yum install -y java java-devel zabbix-java-gateway
3、添加java环境
vim /etc/profile
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64
PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
加载环境:
source /etc/profile

4、修改java-gateway配置文件
grep 1 /etc/zabbix/zabbix_java_gateway.conf
cd /etc/zabbix
vim zabbix_java_gateway.conf 修改以下信息:
LISTEN_IP=“0.0.0.0”
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5
TIMEOUT=3
5、重启java-gateway服务
systemctl restart zabbix-java-gateway
6、修改zabbix_server配置文件
find / -name zabbix_java_gateway
vim /usr/sbin/zabbix_java_gateway 修改以下配置信息
JavaGateway=192.168.40.131

JavaGatewayPort=10052

StartJavaPollers=5
7、重启zabbix_server服务
systemctl restart zabbix-server
8、客户端配置
在Tomcat下的/bin/catalina.sh文件中添加以下内容:
CATALINA_OPTS="$CATALINA_OPTS
-Djavax.management.builder.initial=
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=192.168.40.131"
重启Tomcat进程:

9、zabbix中添加监控
选择配置:主机-模板-选择-模板-:
查看图形:
六、zabbix IPMI监控方式
IPMI(Intelligent PlatformManagement Interface)既智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用IPMI监视服务器的物理特性,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。Ipmi最大的优势在于它是独立于 CPU BIOS 和OS的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。Ipmi是一种规范的标准,其中最重要的物理部件就是BMC(Baseboard Management Controller),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它 ipmi 可以监控各个传感器的数据并记录各种事件的日志。
使用 ipmi 的先决条件,想要实现对服务器的 ipmi 管理,必须在硬件、OS、管理工具等几个方面都满足:
a.服务器硬件本身提供对 ipmi 的支持目前惠普、戴尔和 NEC 等大多数厂商的服务器都支持IPMI 1.5,但并不是所有服务器都支持,所以应该先通过产品手册或在 BIOS 中确定服务器是否支持 ipmi,也就是说服务器在主板上要具有 BMC 等嵌入式的管理微控制器。
b.操作系统提供相应的 ipmi 驱动通过操作系统监控服务器自身的 ipmi 信息时需要系统内核提供相应的支持,linux 系统通过内核对OpenIPMI(ipmi 驱动)的支持来提供对 ipmi 的系统接口。
日常监控中使用IPMI的方式不多,在此不举例说明了。


  1. a-Z ↩︎

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐