一.常见的监控设备
Zabbix
zabbix 是一个PHP语言开发的基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。目前在企业监控方案中占有很大比例。
Nagios
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。最大的好处是可以发故障报警短信—只要Nagios监控的对象发生故障,系统就会自动发送短信到手机上。缺点是无法将多个相同的应用集群数据集合起来,也不能监控到集群的特殊节点的迁移和恢复。
Ganglia
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要 是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
Cacti
cacti 是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具,采利用轮询方式向设备发送数据请求,当设备增多是,会消耗更多的资源,另外没有很好的问题反应机制,因此逐渐被淘汰。
二.Zabbix的优缺点:
优点:
- 开源,无成本投入 。
- 监控端要求配置低。
- 支持设备多,自带有很多监控模模板(很多监控项,整合在一个监控模板中,可以利用模板直接监控导入的新设备。),
- 支持分布式集中管理,有自动发现功能们可以实现自动化监控。 可以采用主动或被动模式 ,被监控主动提交数据到监控端。缓解监控服务端的压力。
- 开放式的接口,Api的支持,方便和其他系统结合。
缺点:
- 数据库产生的数据较多
- 项目批量修改不方便
- 设置报警项目比较繁多,不筛选报警邮件会很多
- 无法对数据汇总分析,例如一组服务器的平均值,需要二次开发
三.监控流程
四.监控类型
普通监控:
server-agent架构也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境
分布式监控:
server-proxy-agent架构其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。一般适用于跨机房、跨网络的中型网络架构的监控
可监控的数据
- 数据库: MySQL,MariaDB,Oracle,SQL Server agent
- 应用软件:Nginx,Apache,PHP,Tomcat agent
------------------------------------------------------------------------------------------------------ - 集群: LVS,Keepalived,HAproxy,RHCS,F5 agent
- 虚拟化: VMware,KVM,XEN ,docker,k8s agent
- 操作系统:Linux,Unix,Windows性能参数 agent
------------------------------------------------------------------------------------------------------------------------------- - 硬件: 服务器,存储,网络设备 IPMI
- 网络: 网络环境(内网环境,外网环境) SNMP
-------------------------------------------------------------------------------------------------------------------------------
五.监控方式
主动模式:
相对于agent而言;agent(active),agent向server请求与自己相关监控项配置,主动地将server配置的监控项相关的数据发送给server;
- 主动监控能极大节约监控server 的资源。
被动模式:
相对于agent而言;agent, server向agent请求获取配置的各监控项相关的数据,agent接收请求、获取数据并响应给server;
六.面板中常用术语:
简单了解下面板监控的流程
-
主机(host):
一台你想监控的网络设备,用IP或域名表示,是zabbix监控的对象,被称为主机,主机必须属于某个主机组。 -
主机组(host group):
主机的逻辑组:它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。 通常在给不同用户组的主机分配权限时候使用主机组。 -
应用集(application):
一组监控项组成的逻辑分组,可以理解为监控项的汇总。 -
监控项(item)::
你想要接收的主机的特定数据,一个度量数据(如cpu1秒的中断次数,mysql某一时刻的读写量。) -
触发器(trigger):
一个被用于定义问题阈值和“评估“监控项接收到的数据的逻辑表达式。当接收到的数据高于阈值时,触发器从"OK“变成"Problem“状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。 -
事件(event):
单次发生的需要注意的事情,例如触发器状态改变(到达触发值)或发现有监控代理自动注册。 -
动作(action):
一个对事件做出反应的预定义的操作,如触发值状态改变了,需要进行什么操作。 -
媒介(media):
发送告警通知的手段;告警通知的途径。 -
异常(proplem):
一个处在"异常“状态的触发器。 -
模版(template):
组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD, Web场景)的集合。模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。 -
远程命令(remote command):
一个预定义好的,满足-些条件的情况下, 可以在被监控主机上自动执行的命令 -
通知(notification):
利用已选择的媒体途径把跟事件相关的信息发送给用户