Zabbix概述(一)

2023年 7月 15日 84.3k 0

前言:

学习zabbix之前,不得不了解的是SNMP协议

SNMP:简单网络管理协议(SimpleNetwork Protocol)

Snmp由两部分组成,监控端和被监控端

监控模式:

主动模式:NMS向agent采集数据,监控端到被监控端采集数据

被动模式:agent到NMS报告数据,被监控端到监控端报告数据

这便意味着监控端和被监控端工作在不同套接字上

一旦被监控端发出特殊指令时,监控端会发送指令修改被监控端状态

SNMP组件:

MIB:management  information base(管理信息库)

监控端能够向被监控发送请求采集数据,被监控通过MIB

MIB定义监控到到被监控的双方采集规范

SMI:MIB表示机制

SNMP:协议本身,实现网络管理

NMS可发起的操作:

Get:获取数据

GetNext:获取更多参数

Set:设定

Trap:陷阱操作

 

SNMP基于UDP工作

NMS监听端口:161

Agent监听端口:162

 

SNMP是没有数据存储的定义,通常完成数据采集后人为的判断数据是否存在问题!

 

这里不得不提到cacti和nagios

Cacti类似于zabbox本身能够通过脚本,对每一个监控端通过snmp协议发起数据采集请求。数据采集完成后会存储在cacti的数据库当中,cacti是由php开发的,它能够使用php强大的功能完成数据展示,这便意味着他能够从数据库中提取出数据,即时绘制出数据走势图。Cacti也可以让用户定义一个关注指标的阈值而后,一旦数据超出合理范围也能完成报警操作!但是,他的报警能力较弱!

Cacti本身可以完成强大的数据采集展示,但是他的报警功能薄弱。比如:cacti监控一台nginx服务,当nginx出现故障时,一般情况,会重启nginx服务,当仍然不能正常工作时,监控会发起软状态和硬状态的状态探测切换,当第一次采集时发现异常,监控不会立即判断为故障,当采集超过几次后,还是异常,则为硬状态,为了避免误判它会多次采样。而cacti本身不具备报警功能,需要第三方插件实现,并且报警的功能不能非常及时,尤其是对状态转换的服务类应用,报警能力略显薄弱

 

Nagios:强大的报警机制

当关注的指标超过阈值后,从软状态转换硬状态后立即执行报警操作,支持多种多样报警,如:短信网关发短信,邮件发邮件,MSN窗口发信息,电子铃,闪光灯等等!由此可见Nagios报警是非常灵活的。

Nagios的各组件依赖关系!

但是nagios不太适合大型环境众多指标同时监控,主机如果有100台,它的工作还是客观的,如果一旦达到数百台,nagios效率低下,它不能完成分布式工作

在早些,cacti和nagios同时工作是很常见的!而Zabblx便可以实现cacti和nagios的功能

 

其他著名开源监控工具:zabbix,zennos,opennms,cacti,nagios(icinga),ganglia

 

监控功能的实现:agent,ssh,SNMP

SNMP协议版本在v1中是一款简单协议,在v1中没有认证功能,v2c:NMS-à agent ,v1和v2是基于UDP来实现,机制也相同!而v3和v2,v1不同的是,v3实现认证加密和解密功能,但是在应用中v1使用是最多的。

 

MIB:所有的可以被监控被管理的对象的集合,定义对象的一系列属性,每一个agetn端都有自己的MIB库,mib库中定义了很多指标来实现接口的数据交互

 

MIB视图:MIB片段。SNMP是支持读写操作,对Mib库操作进行读写操作都可实现。我们可以限定MIB库的读操作任何人都可以实现,写操作再定义团体名。像这种能把mib库中的子集,通过MIB某一个团体相关联起来并定义其所能执行操作的机制就叫做MIB视图,这里可能需要查看下MIB树状结构!

 

在众多开源软件监控工具中zabbix是专用的agent的监控工具

监控的主机由:linux,windows,freebsd…..

网络设备:snmp,ssh(并非所有)

 

当了解了这些基础后,在开始看zabbix概述

通常我们在监控时需要监控哪些?

1,软件/设备

设备:软件,路由器,交换机,i/o系统

软件:操作系统本身(OS),网络,应用程序

2,偶发性故障

Down机,服务不可以,主机不可达

3,严重事件

主机性能数据

4,趋势图

时间序列数据

5,

 

 

补充内容:

cacti数据存储使用的是特殊数据库(rrd ),而zabbix支持mysql,pgssql(关系型数据库)

RRD:round   robin database,环装数据库,所以他不会持久保存数据,一旦环走到尽头,便覆盖之前的数据从头开始。cacti一旦数据初始化完成后是不会自动增长的,当然,如果定义n个数据指标,产生n个环装数据,那也是不小的。而zabbix是插一条是一条,但是zabbix也是可以定义的,可以使用守护进程去清理数据。当然,也可以永久保存,

 Cacti的RRD是一个开源组件,cacti使用snmp收集数据,收集完成使用rrd保存数据,而rrd自己就有绘图能力。所有cacti无非就是将rrd中所关注的数据绘成图,在用php页面展示出来而已。由此可以cacti是一个很强大的集成工具。

 

 

Zabbix分布式

Zabbix完全开源,企业级监控,支持目前主流操作系统,Zabbix可监控10万设备,20万个指标(在对mysql切片优化后),可监控database,可监控web monitoring,,web响应代码,响应时间等,可定义监控指标,可监控日志,文件内容等等!

中心zabbix不做任何操作,让每一个代理收集监控各项指标,假设zabbix有6000条指标,每个代理监控2000个指标,每个代理将监控数据保存在代理监控主机数据库。而后中心zabbix定期从代理取数据,当取完数据后,便可以删除。代理zabbix只需保存定期时间的数据,定期传输即可。主zabbix压力必定减少!

 

报警支持,短信,邮件,执行命令等!

Zabbix架构

Zabbix组件:

Zabbix-server:是c语言研发

监控端OS:zabbix-agent,同样c研发

Zabbix-database:mysql,pgsql(postgreSQL),oracle,db2,sqlite

Zabbix-web GUI:展示工具,设置工具

Zabbix-proxy:分布式专用组件,只应用于较大场景

相关文章

对接alertmanager创建钉钉卡片(1)
手把手教你搭建OpenFalcon监控系统
无需任何魔法即可使用 Ansible 的神奇变量“hostvars”
openobseve HA本地单集群模式
基于k8s上loggie/vector/openobserve日志收集
openobseve单节点和查询语法

发布评论