zoukankan      html  css  js  c++  java
  • zabbix 简介

    Zabbix 简介

      在企业网络运维过程中,管理员必须随时关注各服务器和网络的运行状况,以便及时发现问题,尽可能减少故障的发生。当网络中的设备,服务器等数量较多时,为了更加方便,快捷的获得监控信息,通常会借助于一些集中监测软件。

      想要实时的了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的途径。就目前而言,有服务器的地方就少不了监控系统,现有的监控系统软件很多,但是 zabbix 可灵活的监控服务器资源,并且集 cacti 与 nagios 两者的优点于一身且功能更强大,实现企业级分布式监控,所以在市场应用更广。

      zabbix 是一个基于 web 界面的企业级开源监控套件,由 C 语言编写而成的底层架构(server 和 agent 端),由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。世界上很多大小不同的组织机构都依赖与 zabbix 作为自己的一个主要的监控平台,尤其是现在很多互联网企业都在使用它。提供分布式系统监控与网络监控功能,具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表,图表的绘制等功能。检测的对象可以是 Linux 或 Windows 服务器,也可以是路由器,交换机等网络设备,通过 SNMP(Simple network protocol 简单网络管理协议),zabbix agent,ping,端口监视等方法提供对远程网络服务器等监控,数据收集等功能,并提供通知机制使系统管理员可以快速定位,解决系统中存在的各种问题,目前,zabbix 最新版本为 zabbix 4.4,官方网址是 http://www.zabbix.com。

      Zabbix 通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置。

      被监控端:主机通过安装 agent 方式采集数据,网络设备通过 SNMP 方式采集数据,

      Server端:通过收集 SNMP 和 agent 发送的数据,写入 MySQL 数据库,再通过 php+apache 在 web 前端展示。

    Zabbix 运行条件:

      Server:

          Zabbix Server 需运行在 LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低

      Agent:

          目前已有的 agent 基本支持市面常见的 OS,包含 Linux、HP(Unix)、Oracle(Solaris)、Windows 等

      SNMP:

          支持各类常见的网络设备

    Zabbix 功能

      具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)

      支持自动发现网络设备和服务器,支持分布式,能集中展示、管理分布式的监控点,扩展性强,server 提供通用接口,可以自己开发完善各类监控。

    优劣点

    优点:

      开源,无软件成本投入;

      Server 对设备性能要求低(实际测试环境:虚拟机 Redhat EL AS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在 10%以下,内存剩余 400M 以上);

      支持设备多;

      支持分布式集中管理;

      开放式接口,扩展性强;

      当监控的 item 比较多服务器队列比较大时可以采用被对状态,被监控客户端主动从 server 端去下载需要监控的 item 然后取数据上传到 server 端。这种方式对服务器的负载比较小。

    缺点:

      无厂家支持,出现问题解决比较麻烦

      需在被监控主机上安装 agent,所有数据都存在数据库里,产生的数据很大,瓶颈主要在数据库。

    Zabbix 的监控原理

    组件说明:

    1)zabbix server:负责接收 agent 发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;

    2)database storage:专用于存储所有配置信息,以及由 zabbix 收集的数据;

    3)web interface:zabbix 的 GUI 接口;

    4)proxy:可选组件,常用于监控节点很多的分布式环境中,代理 server 收集部分数据转发到 server,可以减轻 server 的压力;

    5)agent:部署在被监控的主机上,负责收集主机本地数据如 CPU、内存、数据库等数据发往 server 端或 proxy 端;

    监控流程:

      agentd 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到 zabbix server端,zabbix server 将数据存储到数据库中,zabbix web 根据数据在前端进行展现和绘图。这里 agentd 收集数据分为主动和被动两种模式:

      主动:agent 请求 server 获取主动的监控项列表,并主动将监控项内需要检测的数据提交给 server/proxy。

      被动:server 向 agent 请求获取监控项的数据,agent 返回数据。

    客户端守护进程:

    此进程收集客户端数据,例如 CPU负载、内存、硬盘使用情况等。

    zabbix_get 

      zabbix 工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令。通常用户拍错。例如在 server 端获取不到客户端的内存数据,我们可以使用 zabbix_get 获取客户端的内容的方式来做故障排查。

    zabbix_sender

      zabbix 工具,用于发送数据给 server 或者 proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致 zabbix 超时。于是我们在脚本执行完毕之后,使用 sender 主动提交数据。

    zabbix_server

      zabbix 服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway 的数据最终都是提交到 server

    备注:当然不是数据都是主动提交给 zabbix_server,也有的是 server 主动去取数据。

    zabbix_proxy

      zabbix 代理守护进程。功能类似 server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到 server 里。

    zabbix_java_gateway

      zabbix2.0 之后引入的一个功能。顾名思义:java 网关,类似 agentd,但是只用于 java 方面。需要注意的是,他只能主动去获取数据,而不能被动的获取数据。它的数据最终会给到 server 或者 proxy。

    Zabbix的监控架构

      在实际监控架构中,zabbix 根据网络环境、监控规模等 分了三种架构:server-client、master-node-client、server-proxy-client 。

    1、server-client 架构

     也是 zabbix 的最简单的架构,监控机和被监控机之间不经过任何代理,直接由 zabbix server 和 zabbix agentd 之间进行数据交互。适用于网络比较简单,设备比较少的监控环境。

    2、server-proxy-client 架构

    其中 proxy 是 server、client 之间沟通的一个桥梁,proxy 本身没有前端,而且其本身并不存放数据,只是将 agentd 发来的数据暂时存放,而后提交给 server。该架构经常是和 master-node-client 架构做比较的架构,一般适用于跨机房、跨网络的中型网络架构的监控。

    3、master-node-client 架构

    该架构是 zabbix 最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境。每个node同时也是一个server端,node 下面可以接 proxy,也可以直接接 client。node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向 master 同步,master的故障或损坏对node其下架构的完整性。

    Grafana 简介:

      Grafana 是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持 Graphite、zabbix、InfluxDB、Prometheus 和 OpenTSDB 作为数据源。以 InfluxDB(由 go 语言编写,是一个开源,分布式,时间序列、事件、可度量和无外部依赖的数据库)作为底层数据库;

      Grafana 主要特点:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。

    Zabbix 特点

    zabbix 是一个高度集成的网络监控解决方案。

    数据收集

      可用性和性能检查支持 SNMP(trapping polling),IPMI,JMX,VMware 的监控自定义检测,按照自定义时间间隔收集所需数据,通过 server/proxy 和 agent 来执行监控。

    灵活的阈值定义

    可以定义非常灵活的问题阈值,称为触发器(triggers),从后端数据库调用数值

    高度可配置的告警

    可以自定义警告升级(escalation),接受者及告警方式,告警信息可以配置并允许使用宏(macro)变量,通过远程命令实行自动化动作(action)

    实时绘图

    通过内置的绘图方法实现监控数据实时绘图

    web 监控能力

    zabbix 可以模拟鼠标单击网站并检查其功能性和响应时间。

    广泛的可视化选项

    能够创建自定义图表,可以组合多个项到一个单一的视图中网络拓扑,自定义屏幕和侧边栏作为仪表盘(dashboard)样式显示报告,监视资源的高级视图(商业)

    历史数据存储

    用数据库来存储数据,配置历史,内置的管理程序

    容易配置

    添加监控设备作为主机,一旦在数据库中,主机即可被监控,将模板应用到监控设备

    使用模板

    模板中的可以组监控,模板中可以继承其他模板

    网络发现

    网络设备的自动发现,代理(agent)自动注册,自动发现文件系统,网络接口,SNMP OID

    快速的 web 接口

    web 前端采用 php 编写,按照自定义的方式单击审计日志

    zabbix API

    zabbix API 提供可编程接口面向 zabbix 大规模操作,方便第三方软件集成,安全的用户认证

    权限系统

    某些用户可以受限于某些视图

    功能齐全且易于扩展的代理(agent)

    部署在监控目标上,Linux 和 Windows 上都可以部署,用 C 语言写的,高性能且内存占用小

    二进制守护进程

    易移植,通过使用 zabbix proxy 可以轻松进行远程监控

  • 相关阅读:
    JVM类加载的过程
    接口文档设计
    代码规范及CodeReview要点
    Linux权限
    Linux文件
    UltraEdit编辑器基础技巧
    Android环境配置
    JDK 环境配置
    xml没有提示解决办法<eclipse>
    mysql事务实例
  • 原文地址:https://www.cnblogs.com/2567xl/p/12748180.html
Copyright © 2011-2022 走看看