探索无界浅谈zabbix——开源利器系列
Posted 老张的技术博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了探索无界浅谈zabbix——开源利器系列相关的知识,希望对你有一定的参考价值。
关于zabbix的个人理解会分为三个部分
1.zabbix的作用,组成和原理
2.zabbix的实战搭建
3.zabbix的优化
那么在接下来的文章中,主要以第一个部分写入,后续会出一系列的文章一一讲解,也是对我自己学到东西的总结。(脑子不好不动手写一写真的记不住)
个人对zabbix内容见解
1什么是zabbix
zabbix是一个企业级,开源的,分布式的监控套件。
可以监控网络和服务的运行状态,利用灵活的告警机制,允许用户对事件发送基于
支持polling和trapping两种方式,所有zabbix报告都可以通过配置参数在web前端进行访问。利用存储的数据提供报告及图形化方式展现出来。
Zabbix的编写和发布基于GPLV2协议。
2 Zabbix的特性
数据收集
可用性及性能检查
支持SNMP(诱捕trapping和轮询polling),IPMI,JMX,VMware监控
灵活的阀值定义
可以定义非常灵活的问题阈值,成为触发器,从后端数据库引用值。
高度可配置化的告警
可以根据升级计划(escalation)、接收者和媒体类型来自定义发送告警通知
告警通知可以配置并允许使用宏(macro)变量使其更有意义更高效
通过执行远程命令实现自动化动作(action)
实时图表绘制
使用内置图表绘制功能可以将监控项实现监控数据实时绘图。
扩展的图形化显示
能够创建自定义的图形,图形中可将多个监控项组合在一个视图展示
网络拓扑(network maps)
以仪表盘(dashboard)的样式展现自定义的面板(screen)和幻灯片(slide shows)
报告
监控资源
历史数据存储
数据存储在数据库中
可配置历史数据
内置数据管理、清理机制
配置简单
将被监控对象添加为主机
主机被创建用于监控,在数据库中是唯一存在的
监控设备允许使用模板
模板使用
模板中可以添加组监控,分组检查。
模板可以关联其他模板
网络自动发现
自动发现网络设备
监控代理agent自动注册
自动发现文件系统,网络接口和SNMP OID值
快速的web接口
Web前端采用php编写
可以从任何地方访问
可以定制自己的操作方式
审核日志
ZabbixAPI
ZabbixAPI提供了对外的可编程接口,用于批量操作,第三方程序集成和其他目的。
权限系统
安全用户认证
特定用户可以限制访问特定的视图
功能强大并易于扩展的监控代理agent
部署在被监控对象上
可以部署在Linux和Windows上
二进制守护进程
用C语言编写,高性能,低内存消耗。
具备应对复杂环境情况
只用zabbix proxy代理服务器,使得远程监控更简单。
3 Zabbix主要由那些软件组成
服务器[ZG1]
Zabbix服务器是代理报告可用性和完整性信息和统计数据的中心组件。服务器是存储所有配置,统计和操作数据的中央存储库。
数据库存储
所有配置信息以及Zabbix收集的数据都存储在数据库中
Web界面
为了从任何地方和任何平台轻松访问Zabbix,提供了基于Web的界面。该接口是Zabbix服务器的一部分,通常(但不一定)与运行服务器的物理机器在同一台物理机器上运行。
Proxy代理
Zabbix代理可以代表Zabbix服务器收集性能和可用性数据。代理是Zabbix部署的可选部分; 然而,分发单个Zabbix服务器的负载可能是非常有益的。
Agent代理
Zabbix代理部署在监视目标上,主动监视本地资源和应用程序,并将收集的数据报告给Zabbix服务器。
数据流
此外,重要的是要退后一步,看看Zabbix中的整体数据流。为了创建收集数据的项目,您必须先创建一个主机。移至Zabbix频谱的另一端,您必须先有一个项目才能创建触发器。你必须有一个触发器来创建一个动作。因此,如果您希望收到一条警报,提示您的CPU在Server X上的负载过高,则必须先为ServerX创建一个主机条目,然后再创建一个用于监视其CPU的项目,然后创建一个在CPU过高时激活的触发器通过向您发送电子邮件的行为。虽然这可能看起来像很多步骤,但使用模板它实际上不是。但是,由于这种设计,可以创建一个非常灵活的设置。
4 Zabbi进程组成结构
默认情况下包含以下五种
Zabbix_agentd
客户端守护进程,收集客户端数据。例如CPU负载、内存、硬盘使用情况等。
Zabbix_get
Zabbix工具,单独使用的命令,通常在server或者proxy端执行,用户获取被监控端数据,通常用于排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
Zabbix_sender
Zabbix工具,用于发送数据给server或者proxy端,通常用于耗时比较长的check,并且与trapper配合使用。生存环境中,个别非常耗时间check经常导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
Zabbix_server
Zabbix服务端守护进程,zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server(PS:当然不是所有的数据都是主动提交给zabbix_server,大多数情况下都是server主动去获取数据。后续会说到主动与被动获取数据)
Zabbix_proxy
Zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,他需要把收集到的数据提交/被提交到server里。一般跨机房、地区的环境需要用到proxy
Zbbix_java_gateway(可选项,需要另外安装)
Java网关,类似agentd,但是只用于Java方面。需要特别注意的是:它只能主动去获取数据,而不能被动获取数据。它的数据最终会发送到server或者proxy端
[ZG1]
以上是关于探索无界浅谈zabbix——开源利器系列的主要内容,如果未能解决你的问题,请参考以下文章
19.1 Linux监控平台介绍;19.2 zabbix监控介绍;19.3,19.4 安装zabbi