监控很重要,是必不可少的,运维最重要的就是监控和备份
宕机损失案例:美国呼叫中心 24000 美金/小时
Cacti是RRDtool的前端应用程序,RRDtool是一种用于存储实时变化数据的开源数据库工具,其使用SNMP作为其默认收集算法,但如果你喜欢本地Perl的PHP脚本,那么你也可以使用它们。Cacti 是一款开源的基于Web的网络监控和专为数据记录而设计的图形化工具。它可以用于实时显示网络数据,如CPU负载或带宽利用率。
http://www.cacti.net/
软件设计目标: 流量与性能监测为主
数据展示平台: B/S
数据收集方式: SNMP(Simple Network Management Protocol)
Nagios 是一款用于监控IT基础架构和查看当前状态、历史日志和基本报告的开源软件工具。 Nagios 用户可以监控系统指标,网络协议,应用程序,服务器,网络基础架构和接收故障警报。Nagios提供三种类型的网络管理工具,Nagios XL,Nagios日志服务器和Nagios网络分析器。其中 Nagios XL 最适合网络监控(尽管其他两种也提供网络监控服务)。
http://www.nagios.org/
软件设计目标: 服务与性能监测为主
数据展示平台: B/S
数据收集方式: C/S(预定义/自定义脚本)
Zabbix 作为企业级的网络监控工具,通过从服务器,虚拟机和网络设备收集的数据提供实时监控,自动发现,映射和可扩展等功能。Zabbix的企业级监控软件为用户提供内置的Java应用服务器监控,硬件监控,VMware监控和CPU,内存,网络,磁盘空间性能监控。
http://www.zabbix.com/
软件设计目标: 全功能监控软件
数据展示平台: B/S
数据收集方式: C/S(官方客户端)
Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。
组合框架: LAP
数据收集: SNMP
绘制图形: RRDtool
(简单网络管理协议)用于收集设备内部发生的数据,如负载、磁盘状态、带宽之类
官方定义: RRDtool 是开源行业标准,高性能的时间序列数据记录和绘图系统。RRDtool 可以很容易 地集成到 shell 脚本、perl、python、ruby、lua 或 tcl 应用程序中
[root@localhost ~]$ mount -t iso9660 /dev/cdrom /mnt/cdrom #挂载本地yum光盘
[root@localhost ~]$
C/S 模式:采集监测数据
B/S 模式:管理监测数据
首先通过LAMP平台部署Cacti监控工具,之后通过客户端的web登录Cacti进行对其他客户端的设置,可以从下图看到Cacti采集数据时必须要使用SNMP协议来连接客户端进而能够采集数据,也就是说客户端必须支持SNMP协议,监控之后通过RRDtool来生成图表。
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Cacti
Nagios
命令(Commands)
“命令”用于定义Nagios如何执行某特定的监控工作。它是基于某特定的Nagios插件定义出的一个抽象层,通常包含一组要执行的操作。
时段(Time periods)
“时段”用于定义某“操作”可以执行或不能执行的日期和时间跨度,如工作日内的每天8:00-18:00等;
联系人和联系人组(Contacts and contact groups)
“联系人”用于定义某监控事件的通知对象、要通知的信息以及这些接收通知者何时及如何接收通知;一个或多个联系人可以定义为联系人组,而一个联系人也可以属于多个组;
主机和主机组(host and host groups)
“主机”通常指某物理主机,其包括此主机相关的通知信息的接收者(即联系人)、如何及何时进行监控的定义。主机也可以分组,即主机组(host groups),一个主机可同时属于多个组;
服务(Services)
“服务”通常指某主机上可被监控的特定的功能或资源,其包括此服务相关的通知信息的接收者、如何及何时进行监控等。服务也可以分组,即服务组(Service groups),一个服务可同时属于多个服务组;
Nagios 软件需安装在一台独立的服务器上运行,这台服务器称为监控中心,监控中心服务器可以采用 Linux 或 Unix 操作系统;每一台被监视的硬件主机或服务都运行一个与监控中心服务器进行通信的 Nagios 软件后台程序,也可以理解为 Agent 或插件均可。监控中心服务器读取配置文件中的指令与远程的守护程序进行通信,并且指示远程的守护程序进行必要的检查。虽然 Nagios 软件必须在 Linux 或 Unix 操作系统上运行,但是远程被监控的机器可以是任何能够与其进行通信的主机,根据远程主机返回的应答,Naigos 将依据配置进行回应;接着 Nagios 将通过本地的机器进行测试,如果检测返回值不正确,Nagios 将通过一种或多种方式报警。
zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 ( 基于 GPL V2 ) zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent
Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)
zabbix 安装完成后会产生 5 个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、 zabbix_server
,zabbix_java_gateway
是可选,这个需要另外安装
主机(host): 被监控的网络设备,可以写IP或者DNS;
主机组(host group): 主机组用于管理主机,可以批量设置权限;
监控项(item): 具体监控项,items值由独立的keys进行识别;
触发器(trigger): 为某个items设置触发器,达到触发器会执行action动作;
事件(event): 例如达到某个触发器,称之为一个事件;
动作(action): 对于特定事件事先定义的处理方法,默认可以发送信息及发送命令;
报警升级(escalation): 发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等。
媒介(media): 发送通知的方式,可以支持Mail、SMS、Scripts等;
通知(notification): 通过设置的媒介向用户发送的有关某事件的信息;
远程命令 达到触发器,可以在被监控端执行命令;
模板(template): 可以快速监控被监控端,模块包含:item、trigger、graph、screen、application;
web场景(web scennario) 用于检测web站点可用性,监控HTTP关键词;
web前端(frontend): Zabbix的web接口;
图形(graph) 监控图像;
屏幕(screens) 屏幕显示;
幻灯(slide show) 幻灯显示;