ZABBIX全栈级监控实践——(一)概述
《ZABBIX全栈级监控实践》系列将由浅入深探讨如何实现ZABBIX全栈级别的监控。
本文是《ZABBIX全栈级监控实践》的第一篇:主要讨论全栈级监控的主要需求,以及ZABBIX在实现全栈级监控中的优势。
一、引论
随着移动互联网、Fintech等概念的 流行,对于IT从业人员的技术要求越来越高。更是有企业在招聘时,直接提出了招聘全栈工程师。什么是全栈,ZABBIX对于全栈级监控有什么优势?我们逐一讲解。
二、全栈的概念
对于IT运维人员而言,所谓全栈(Full-Stack),包含了从前端到后端的所有运维知识体系,包括但不限于:
客户端(用户操作系统,POS机等)
网络层(机房、专线、网络设备等)
接入层(负载均衡、反向代理等)
应用服务层(中间件、数据库、自研应用等)
操作系统(Windows,Linux,AIX等)
虚拟化(vmWare,Hyper-V,Xen等)
存储(NetApp,EMC,阵列等)
硬件(华为,HP,DELL等)
……
以上是粗略的前端到后端所需技能及平台,现实中全栈会包含更多的维度,每个维度中也会有更多的内容。高效运维社区的赵班长整理出了一张相对完整的运维全栈的知识体系,可参考该运维知识体系。
由于从前端到后端的种种耦合性和依赖关系,任何一个环节的故障发生,都有可能导致业务中断。对于IT监控平台而言,尽可能全面的监控上述维度中的平台、内容,会有效减少依赖IT专业人员人工定位故障的频率,提升企业业务连续性的RTO和RPO。
三、为什么使用ZABBIX进行全栈级监控?
目前市场上有很多商业的和开源的软件:微软的System Center Operations Manager;IBM的Tivoli;VMware的vSphere with Operations Management套件等,都能对厂商的自有平台提供深入监控。如果企业生产环境中,只存在一两个厂商的产品,不存在多样性,那么用这些厂商自有的系统管理套件就足够了。
而对于大多数企业而言,IT基础环境是一个无比复杂的异构体。很少有公司只用cisco交换机,只用Windows操作系统,只用HP的服务器,或者只用NetApp存储。在这个由大量的厂商和品牌充斥IT基础架构环境中,似乎并没有提供一个统一协议或者标准来实现全栈级监控。厂商的系统管理平台可以进行深入监控,但现实中的异构IT基础架构,对监控平台的广度有更多的要求。
当然,还碰到过一些自研发的厂商,号称所有产品的监控都能做,结果发现,的确什么都能监控,存储、交换机、服务器都能监控,但只能监控到可用性:ICMP。而至于更深层的性能:比如磁盘IO,数据库性能,存储延迟之类的,都无从下手……因此,一个合格的监控系统需要提供一定的深度监控:可用性监控,性能监控,甚至是日志监控。
ZABBIX在广度和深度这两个维度寻找到了一个很好的平衡点。
ZABBIX可以通过JAVA GATEWAY进行原生的应用级监控,包括JVM的状态,连接数等。对于其他的中间件和数据库,也有相应的模版可供使用。
对于操作系统,ZABBIX官方也提供了一些模版,对常见的Windows,Linux等操作系统进行监控。其中也包含了很多如磁盘IO的性能监控项。
通过SNMP协议,ZABBIX可以对交换机和存储的性能及可用性进行监控。
ZABBIX可以对底层的硬件进行监控,可以通过IPMI带外协议监控每个磁盘、每个内存、每个CPU的状态,甚至是某个风扇的转速。
Zabbix监控平台支持的监控方式多种多样:
以上只是ZABBIX监控平台覆盖的一部分。除了这两点以外,相比于其他系统管理平台,ZABBIX还有以下的优势:
开源性:源代码全公开,任何用户都可以编译和发布自己的版本。同时,ZABBIX社区中有大量的模版。
可扩展性:支持用户自定义监控项,只要能想得到的KPI,基本都能监控的到。
分布式:分布式架构,提供多分支组织的IT监控解决方案。同时,也一定程度上分散监控压力。
无商业版本:平台本身没有商业版和社区版本的区分,ZABBIX母公司只对商业服务收费(如培训、定制开发、部署服务等)。
Zabbix其他的主要功能还有:
高可用、高负载(可监控几万台Hosts)
自动发现网络设备和服务器
低级别发现(LLD)
集中式管理、分布式监控
同时支持Polling和Trapper两种监控方式
高性能的监控代理
无代理的监控方式
JMX监控
Web监控
安全的用户认证机制
灵活的用户权限配置
基于WEB的接口
基于SLA、ITIL KPI的报表
灵活的EMAIL通知及事件预定义
商业产品级别的DashBoard和Screen
日志审计
……
Zabbix上述特性,满足了我们对全栈级别监控的要求,在本系列的后续文章中,将会向大家介绍如何使用ZABBIX监控进行全栈式监控。