一、Zabbix介绍

Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持。
Zabbix 是一个企业级的分布式开源监控方案。
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。
Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。
Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用。
Zabbix公司也提供商业化的技术支持。

二、Zabbix特点

Zabbix是一个高度集成的网络监控解决方案,一个简单的安装包中提供多样性的功能。

数据采集:

  • 可用性和性能检查
  • 支持SNMP(包括捕获和主动轮训),IPMI,JMX,VMware监控
  • 自定义检查
  • 按照自定义的间隔收集需要的数据
  • 由Server/Proxy和agents执行
灵活的阀值定义
  • 您可以非常灵活的定义问题阈值,称之为触发器,触发器从后端数据库获取参考值
高度可配置化的告警
  • 可以根据升级计划,接收方和媒体类型来定制发送告警通知 * 使用宏变量可以使告警通知更有意义更高效 * 自动化动作包含执行远程命令
实时图表绘制
  • 使用内置图表绘制功能可以将监控项的内容立即绘制成图表
Web监控功能
  • Zabbix可以模拟鼠标在Web网站上的操作来检查Web的功能和响应时间
丰富的可视化选项
  • 能够创建自定义的图形,图形中可将多个监控项组合在一个视图展示
  • 网络拓扑图
  • 以仪表盘的样式展现自定义的展现和幻灯片
  • 报告
  • 监控资源的高级(业务)视图
历史数据存储
  • 数据存储在数据库中
  • 可配置历史数据
  • 内置数据管理机制
配置简单
  • 将被监控对象添加为主机
  • 主机被创建用于监控,在数据库中是唯一存在的
  • 应用模板来监控设备
使用模板
  • 在模板中分组检查
  • 模板可以关联其他模板
网络发现
  • 自动发现网络设备
  • 监控代理自动注册
  • 发现文件系统,网络接口和SNMP OID值
简洁的Web界面
  • Web前端基于PHP
  • 可从任何地方访问
  • 你可以定制自己的操作方式
  • 审核日志
Zabbix API
  • Zabbix API为Zabbix 提供了对外的可编程接口,用于批量操作,第三方软件集成和其他目的
权限管理系统
  • 安全用户认证
  • 特定用户可以限制访问特定的视图
功能强大并易于扩展的监控代理
  • 部署在被监控对象上
  • 可以部署在Linux和Windows上
二进制代码
  • 为了性能和更少内存的占用,用C语言编写
  • 便于移植
为复杂环境准备
  • 使用Zabbix proxy代理服务器,使得远程监控更简单

三、Zabbix功能总结

  ①具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库、性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制)
  ②支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
  ③支持自动发现(low discovery)key 实现动态监控项的批量监控(需写脚本)
  ④支持分布式,能集中展示、管理分布式的监控点
  ⑤扩展性强,server 提供通用接口(api 功能),可以自己开发完善各类监控(根据相关接口编写程序实现)编写插件容易,可以自定义监控项,报警级别的设置。
  ⑥数据收集
    可用和性能检测
    支持snmp(包括trapping and polling),IPMI,JMX,SSH,TELNET
    自定义的检测
    自定义收集数据的频率
    服务器/代理和客户端模式
    灵活的触发器
  可以定义非常灵活的问题阈值,称为触发器,从后端数据库的参考值
    高可定制的报警
    发送通知,可定制的报警升级,收件人,媒体类型
    通知可以使用宏变量有用的变量
    自动操作包括远程命令
    实时的绘图功能
    监控项实时的将数据绘制在图形上面
    WEB 监控能力
    ZABBIX 可以模拟鼠标点击了一个网站,并检查返回值和响应时间
 
三、Zabbix组件
zabbix由以下几个组件部分构成:
1、Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
2、Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3、Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;
4、Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;
5、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;
注:zabbix node也是 zabbix server的一种 。

四、zabbix进程

默认情况下zabbix包含5个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装。下面来分别介绍下他们各自的作用。
  1. zabbix_agentd
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。
  1. zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用 zabbix_get获取客户端的内容的方式来做故障排查。
  1. zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据
  1. zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
  1. zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。
  1. zabbix_java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。
 
 
五、Zabbix常见相关术语
host(主机):要监控的网络设备,可由IP或DNS名称指定
host group(主机组):主机的逻辑容器,可以包含主机和模板,但同一个组内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用
item(监控项):一个特定监控指标的相关数据,这些数据来自于被监控对象;item是zabbix进行数据收集的核心,没有item,将没有数据;相对某监控对象来说,每个item都有"key"进行标识
trigger(触发器):一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,即阀值;接受到的数据大于阀值是,触发器状态将从OK转变为Problem,当数据量再次回归到合理范围时,其状态将从Problem转换回OK
event(事件):即发生的一个值得关注的事件,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等
action(动作):指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作)
escalation(报警升级):发送警报或执行远程命令的自定义方案,如每隔5min发送一次警报,共发送5次等
media(媒介):发送通知的手段和通道,如Email、Jabber或SMS
notification(通知):通过选定的媒介向用户发送的有关某事件的信息
remote command(远程命令):预定义的命令,可在被监控主机处于某个特定条件下时自动执行
template(模板):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至单个主机
application(应用):一组item的集合
web scennaro(web场景):用于检测web站点可用性的一个或多个http请求
frontend(前端):zabbix的web接口
自动发现(discovery):通过定义自动发现条件,配合动作批量添加监控主机
自动注册(auto-registraion):agent 向server 发送注册请求,server 定义自动注册条件批量添加主机
低级自动发现(low_discovery):通过低级自动发现可以简单定义一种类型有多个项的的情况,如:对磁盘容量监控,通常磁盘会有多个分区,我们通过一次定义可以监控磁盘上的所有分区
维护(maintenace):定义主机合适出于维护状态
拓扑图(map):可以主机直接的拓扑
屏幕(Screents):多种类型显示到一个screent 里
IT 服务(IT service):有时一台主机宕掉可能不会影响服务,IT 服务定义服务容忍的限度
仪表盘(dashboard):监控的整体状态显示
总览(overview):显示所有机器的数据或者触发器状态
web:通过定义场景监控web 服务器
最新数据(last data):可查看主机项目获得的最新数据
事件(Event):触发器状态改变的记录
 
 
 六、Zabbix的优缺点
优点:
 开源,无软件成本投入 
 Server 对设备性能要求低 
 支持设备多,自带多种监控模板 
 支持分布式集中管理,有自动发现功能,可以实现自动化监控 
 开放式接口,扩展性强,插件编写容易 
 当监控的item 比较多服务器队列比较大时可以采用被动状态,被监控客户端主动从 
 Server 端去下载需要监控的item 然后取数据上传到server 端。这种方式对服务器的负载比较小。 
  Api 的支持,方便与其他系统结合 
缺点:
需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。

Zabbix概术及基础介绍(一)的更多相关文章

  1. Zabbix 3.0 基础介绍 [一]

    zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利 zab ...

  2. Web3D编程入门总结——WebGL与Three.js基础介绍

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  3. C++ 迭代器 基础介绍

    C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...

  4. Node.js学习笔记(一)基础介绍

    什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...

  5. Node.js 基础介绍

    什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...

  6. 25 Zabbix系统数据表结构介绍

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 25 Zabbix系统数据表结构介绍 自学Zabbix之路15.1 Zabbix数据库表结构简单解 ...

  7. 1、git基础介绍及远程/本地仓库、分支

    1. Git基础介绍 基于Git进行开发时,首先需要将远程仓库代码clone到本地,即为本地仓库.后续大部分时间都是基于本地仓库上的分支进行编码,最后将本地仓库的代码合入远程仓库. 1.1. 远程仓库 ...

  8. git基础介绍

    git基础介绍 这是git操作的基础篇,是以前的写的操作文档,就没有进行手打,直接把图片贴进来了,你们担待哈,有不正确的地方可以指正出来,我将在第一时间去修改,多谢哈! 一.文件状态:git系统的文件 ...

  9. OSPF基础介绍

    OSPF基础介绍 一.RIP的缺陷 1.以跳数评估的路由并非最优路径 2.最大跳数16导致网络尺度小 3.收敛速度慢 4.更新发送全部路由表浪费网络资源 二.OSPF基本原理 1.什么是OSPF a& ...

随机推荐

  1. VirtualBox复制CentOS后提示Device eth0 does not seem to be present的解决方法

    使用VirtualBox复制一份CentOS后重新设置了网卡地址,导致启动网络服务出现下图错误 解决方案 执行命令,查看/etc/udev/rules.d/70-persistent-net.rule ...

  2. Linux 安装Redis<准备>(使用Mac远程访问)

    阅读本文需要一定的Linux基础 一 Redis简介 redis是用c语言编写的一款开源的高性能键值对(key-value)数据库 它通过提供多种键值数据类型来适应不同场景下的存储需求 二 Redis ...

  3. vue2.0做移动端开发用到的相关插件和经验总结1.0

    最近在用vue2.0做微信公众号相关的前端开发,经过这次开发实践,现将项目中用到的相关比较实用的插件及遇到的相关问题进行整理,希望和大家共同交流...... cssrem:一个CSS值转REM的VSC ...

  4. while read读取文本内容

    读取文件给 while 循环 方式一: exec <FILE while read line do cmd done 方式二: cat FILE_PATH |while read line do ...

  5. Python如何对折线进行平滑曲线处理?

    在用python绘图的时候,经常由于数据的原因导致画出来的图折线分界过于明显,因此需要对原数据绘制的折线进行平滑处理,本文介绍利用插值法进行平滑曲线处理: 实现所需的库 numpy.scipy.mat ...

  6. [shell] sed学习

    Q:匹配内容有1没有a的行 echo -e "1a\n2b\n1b\n2a" | sed -n '/1/{/a/d;p}' echo -e "1a\n2b\n1b\n2a ...

  7. Scrum立会报告+燃尽图(十月二十三日总第十四次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...

  8. Android:有关菜单的学习(供自己参考)

    Android:有关==菜单==的学习 上下文菜单 上下文菜单就是手机中对某一项进行==点击一定时间==后弹出的针对该项处理的菜单. context_menu.xml: <?xml versio ...

  9. 【转】nodeJs学习之项目结构

    新建的项目结构应该是这样 bin:项目的启动文件,也可以放其他脚本. node_modules:用来存放项目的依赖库. public:用来存放静态文件(css,js,img). routes:路由控制 ...

  10. OSG学习:阴影代码示例

    效果图: 代码示例: #include <osgViewer/Viewer> #include <osg/Node> #include <osg/Geode> #i ...