-------26----张立

监控的意义

    我们如何及时的获得这些应用的运行状态信息,在出现问题时能够及时知道,这就是监控要做的事情。

监控的重要性

大家想想以下情况的发生:
    1、从应用层来角度来看:你公司业务的WEB 服务器拒绝连接了?客户无法给你们的邮箱发邮件了?论坛的大量用户无法登陆?DNS 无法正常解析?机房流量超过购买的带宽限制了?数据库服务器宕机了,用户无法写入数据了?我想上面的任何一个问题出现的话,对我们的业务造成的影响都是巨大的。
    2、从服务器、应用和网络设备的角度来看:目前服务器的CPU 负载多少,一天中那个时刻负载高,一个月中哪一天服务器CPU 的负载比较高?磁盘的使用率是多少?网卡的进口和出口流量?内存的使用率是多少?目前的磁盘I/O,是否考虑更换转速更快的磁盘?Apache 的连接数目前是多少,最大是多少?缓存服务器的缓存命中率是多少? MySQLReplication 是否同步?即使同步了,主从库数据是否一致?Oracle 的Redo log 切换是否频繁,是否需要增加日志组?DBWR 进程默认一个够用吗?数据库表空间的使用率?RMAN 备份是否成功?路由器或者交换机有什么错误日志......?

监控的对象:

    似乎没有确切的答案,在上一节讲解监控重要性所列举的内容,就是需要监控的对象。简单的说,监控的对象就是一切你想知道的状态的一个集合。通常情况下,我们可以将监控对象这么来分:
1.服务器监控,主要监控服务器如:CPU 负载、内存使用率、磁盘使用率、登陆用户数、进程状态、网卡状态等。
2.应用程序监控,主要监控该应用程序的服务状态,吞吐率和响应时间,因为不同应用需要监控的对象不同,这里不一一列举。
3.数据库监控,只所以把数据库监控单独列出来,足以说明它的重要性,一般监控数据库状态,数据库表或者表空间的使用情况,是否有死锁,错误日志,性能信息等等。
4.网络监控,主要监控当前的网络状况,网络流量,端口,连接等。

监控工具。
Linux 平台下的监控方法基本上可以分为两种,
第一种是通过外部检测命令或者代理程序获得被监控主机的相关状态,代表工具:Nagios、Munin、Ganglia。
第二种是通过SNMP 协议来实现对服务器和网络设备的监控工作,代表工具:Cacti。其中Nagios 可以使用check_snmp 命令,或者自己写脚本来使用SNMP 协议获取数据。

什么是Nagios

    Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

功能介绍

Nagios 可以监控的功能有:
1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等); 2、监控主机资源(处理器负荷、磁盘利用率等);
3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
4、并行服务检查机制;
5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明 晰主机宕机或不可达状态;
6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
7、具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;
8、自动的日志回滚;
9、可以支持并实现对主机的冗余监控;
10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;