Zabbix监控系统应用实践

Zabbix监控系统应用实践

1、zabbix简介

1.1、zabbix介绍

Zabbix 是一种企业级的分布式开源监控解决方案。
Zabbix 是集报警框架、数据收集、监控模板、集中式web展示的一款完整性监控平台,能够监控众多网络参数、服务器的健康度、应用软件的性能、服务可用性等。Zabbix有非常 灵活的通知机制,通过不同的动作和分组,可以将指定消息推送给指定用户,并且支持邮件、微信、钉钉、短信等事件通知。并且Zabbix 基于存储的数据提供出色的报告和数据可视化。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。
Zabbix 是免费开源的

  • Zabbix分布式监控系统的优点如下:
    • 支持自动发现服务器和网络设备;
    • 分布式的监控体系和集中式的WEB管理;
    • 支持主动监控和被动监控模式;
    • 服务器端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, MAC等;
    • Agent客户端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD,Windows等;
    • 基于SNMP、IPMI接口方式、Agent方式、Simple Check方式;
    • 安全的用户认证及权限配置;
    • 基于WEB的管理方法,支持自由的自定义事件和邮件、短信、微信、钉钉等通知;
    • 支持日志审计,资产管理等功能;
    • 提供200+的API接口,配合CMDB实现自动化运维整合。

1.2、zabbix概述

Zabbix 由几个主要的功能组件组成,其职责如下所示。

  • Server

    • Zabbix serverZabbix agent 向其报告可用性、系统完整性信息和统计信息的核心组件。是存储所有配置信息、统计信息和操作信息的核心存储库。
  • 数据库

    • 所有配置信息以及 Zabbix 采集到的数据都被存储在数据库中。zabbix支持的数据库有MySQL, PGSQL(postgreSQL)、Oracle、DB2、SQLite;
  • Web 界面

    • zabbix的GUI接口,使用PHP语言编写,在分布式环境中,不需要和server端部署在同一节点;
  • Proxy

    • Zabbix proxy 可以替 Zabbix server 收集性能和可用性数据。Zabbix proxyZabbix 环境部署的可选部分;一般用于多分布式环境,监控多数据库中心的方案中所使用的组件。
  • Agent

    • agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:
    • 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
    • 被动:server向agent请求获取监控项的数据,agent返回数据。
  • 监控数据流

    • 首先,为了创建一个采集数据的监控项,你就必须先创建主机。其次,必须有一个监控项来创建触发器。最后,你必须有一个触发器来创建一个动作,这几个点构成了一个完整的数据流。因此,如果你想要收到 CPU load it too high on Server X 的告警,你必须首先为 Server X 创建一个主机条目,其次创建一个用于监视其 CPU 的监控项,最后创建一个触发器,用来触发 CPU is too high 这个动作,并将其发送到指定的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,其实并不复杂。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。
  • 架构图
    20191127212159172.jpg-563.7kB

1.3、zabbix特点

  • Zabbix在2022年的多款监控软件排名第一
    image_1gdadvi6o13quu41hrihrlbsil.png-126.7kB

  • 简单易用

    • 开箱部署,如使用docker与容器编排工具,可实现分钟级的快速部署;
    • 社区资源丰富,软件及手册已全面支持中文;
  • 开源且免费
  • 适合中小企业使用的全栈监控平台
    • 可用性监控(服务、端口、链路、联机状态等)
    • 性能监控(CPU、内存、网络带宽、磁盘IO等)
    • 日志监控(安全日志、系统日志、应用日志、审计日志等)
    • 自定义监控(Scripts脚本)
    • WEB监控(WEB接口性能、返回状态码)
    • 应用中间件监控(NGX、ES、REDIS、MYSQL、RABITMQ、KAFKA、ZK等)
  • 兼具监控的广度和深度
    • 系统异构性(少则几种,多则几十种,比如需要监控硬件、存储、操作系统、中间件、数据库及应用等)
    • 平台多样性(比如我们有华为、戴尔、惠普、IBM 的硬件服务器或者交换机,同时也会有 Windows、Linux、Aix、ESXi等多种操作系统)
    • 运维复杂性(日常监控指标的精细化、平台架构的日常运维,包括系统异构性和平台的多样性均构成了运维的复杂性)
    • 综上,一个理想的监控平台理应支持基于各类系统,覆盖各类厂商和平台的监控,而经过这么多年的功能演变及用户口碑来看,zabbix在非容器环境下不管是监控深度和广度是目前最合适的监控平台。这也弥补了金融云在监控层面对于中间件、自定义指标、WEB监控相关功能的缺失;

2、zabbix功能

2.1、数据采集

  • 可用性和性能指标的数据采集;
  • 支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控、Kubernets监控;
  • 自定义检查;
  • 按照自定义的时间间隔采集需要的数据;
  • 通过 Server/Proxy 和 Agents 来执行数据采集。

2.2、灵活的阈值定义

  • 将告警阈值称之为触发器,触发器从后端数据库获得参考值。

2.3、高度可配置化的告警

  • 可以根据递增计划、接收者、媒介类型自定义发送告警通知;
  • 使用宏变量可以使告警通知变得更加高效有益;
  • 自动动作包含远程命令。

2.4、实时图形

  • 使用内置图形功能可实以将监控项绘制成图形。

2.5、Web 监控功能

  • Zabbix 可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。

2.6、丰富的可视化选项

  • 能够创建可以将多个监控项组合到单个视图中的自定义图形;
  • 网络拓扑图;
  • 以仪表盘样式展示自定义聚合图形和幻灯片演示;
  • 报表;
  • 监控资源的高层次(业务)视图。

2.7、配置简单

  • 将被监控设备添加为主机;
  • 主机一旦添加到数据库中,就会采集主机数据用于监控;
  • 将模板用于监控设备。

2.8、套用模板

  • 在模板中分组检查;
  • 模板可以关联其他模板,获得继承。

2.9、网络发现

  • 自动发现网络设备;
  • Zabbix Agent 发现设备后自动注册;
  • 自动发现文件系统、网络接口和 SNMP OIDs 值。

2.10、Zabbix API

  • Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成的用途。

2.11、权限管理系统

  • 安全的用户身份验证;
  • 将特定用户限制于访问特定的视图。

3、zabbix实践应用

3.1、支付组

  • 所实现的监控项
    • 代付失败笔数监控
    • 有缺陷的成功笔数监控
    • 代付成功率监控
    • 支付下单笔数监控
    • 支付成功率监控
    • 代付下单笔数监控

3.2、运维组

  • 所实现的监控项
    • 中间件的性能监控
    • 服务可用性监控
    • 数据库监控
    • 第三方网络性能监控
    • 进程掉线监控
    • 服务端口监控
    • TCP连接数监控

3.3、应用组

  • 所实现的监控项
    • web接口监控

4、WEB拓展

4.1、使用grafana进行web展示

  • zabbix的UI个人觉得并不是太好看,网上也有很多人吐槽,如果我们用来做7*24小时的监控大屏,不太能满足需求,所以我们运维组这边又添加了一个开源的web展示工具。叫做grafana,目前正在将部分看板往这个工具迁移中。
  • 支付看板
    image_1gdi135qetfd1noa1u9a3um15k19.png-137.2kB
  • 主机资源看板
    image_1gdi13lif17o56091tct1h3v1ckhm.png-504.6kB
  • 主机组异常看板
    image_1gdi13qqiq681kile7pqv1ats13.png-196.7kB
-------------本文结束感谢您的阅读-------------
LiGuanCheng wechat
如有问题,请与我微信交流或通过右下角“daovoice”与我联系~。
请我喝一杯咖啡~