小生博客:http://xsboke.blog.51cto.com

        -------谢谢您的参考,如有疑问,欢迎交流

目录:

  1. 监控在自动化运维中扮演的角色
  2. 什么是监控系统及功能
  3. 监控内容及实现监控的形式
  4. 多种监控软件的对比

一、监控在自动化运维中扮演的角色。

  1. 实现基本的半自动化
> OS的自动安装(kickstart-PXE)
> 配置操作系统的管理工具(puppet,saltstack..)
> 联动工具(ansible,func)
> 监控:报警,监控,监控系统本身
  1. 自动化运维-运维框架
> 运维标准:流程化、规范化..
> 机器管理:对硬件本身的管理,对操作系统的管理
> 集群框架自动部署(传统集群,分布式集群)
> 任务管理,关联关系,容量管理
> 安全控制,灾难管理(地理原因等)
> 监控系统

二、什么是监控系统及功能。

  1. 什么是监控系统,监控系统是怎么工作的?
> Snmp(nms/agent)协议
   Windows:snmp
   Linux:net-snmp(命令snmp get,get-next,get-bulk)
   Snmp有三个版本:v1、v2、v3,通用版本为v2,v1和v2的数据传输是明文,没有v3安全,但v2依然是同行版本。
   监控一般分为监控端(nms,网络管理或网络监控系统)和被监控端(agent)
   监控端定期到被监控端采集数据并且将数据反馈给snmp,被监控端收集自身数据
>专用agent(zabbix、cacti、nogios
>脚本,基于ssh来做监控
  1. 不同的监控指标,最后实现的功能也可能不一致
> 比如监控流量与服务,流量有趋势,但是服务没有,服务只有开启和关闭或者还有未知状态
> Snmp固然实现了网络管理功能,但是snmp只采集数据,不会保存数据
> 更高级的工具,通过snmp协议,将采集的数据保存

三、监控内容及实现监控的形式

  1. 要监控什么
> 设备/软件:服务、路由器、IO子系统、操作系统、网络流量
> 意外问题:服务器宕机、服务停止、服务器无法使用
> 关键性事件:磁盘慢了、CPU使用率达到100%了
  1. 如何进行监控
> 基本方案:命令工具(top、iostat、innotop等等)
> 图形化解决方案:nagios、cacti、zabbix

四、多种监控软件的对比

  1. cacti
> 使用snmp或者脚本,周期性的到每一个节点上采集数据,并且将数据保存下来
> 数据展示
> 数据分析及报警;一旦数据超过定义的阈值,就需要报警
> cacti在报警方面的功能是很一般的,比如逐级报警
> cacti依赖于snmp/脚本采集数据,不需要在任何一个被监控端上安装agent
> 只是一个数据采集、保存、展示、报警的机制
> Cacti使用rrd数据库保存数据,可以理解为一个圆,而数据是一个时间序列数据,所以一开始大小就决定了
> Rrdtool就可以完成数据的采集、保存、绘图,所以cacti只是一个展示工具,负责协调rrd工作
  1. nagios(只是一个强大的报警工具)
> 报警功能比cacti好,支持状态切换(正常、警戒、触发报警、故障恢复)
> Nagios支持更多的报警功能:email、EMS等等
> 自动分析依赖关系,如果nagios发现一个关键设备出现故障,则与关键设备相连的设备不再报警
> Nagios只关心状态的正常与否,在状态转换时报警,所以nagios默认是不保存数据的
> 当然通过nagios的插件,也能实现数据的保存
> 一般超过200个节点,nagios报警就会出现延迟
> Nagios可以实现主动监控,就是因为agent的存在
  1. zabbix(本系列文章以zabbix监控为主,后期将详细介绍)