专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 行业应用

谈一下监控

发布时间:2010-06-06 17:28:33 文章来源:www.iduyao.cn 采编人员:星星草
谈谈监控

http://netkiller.github.io/journal/monitor.html

MrNeo Chen (陈景峰)netkiller, BG7NYT


中国广东省深圳市龙华新区民治街道溪山美地
518131
+86 13113668890
+86 755 29812080

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

文档出处:
http://netkiller.github.io
http://netkiller.sourceforge.net

 

2015-03-10

摘要
我的系列文档
Netkiller Architect 手札 Netkiller Developer 手札 Netkiller PHP 手札 Netkiller Python 手札 Netkiller Testing 手札
Netkiller Cryptography 手札 Netkiller Linux 手札 Netkiller Debian 手札 Netkiller CentOS 手札 Netkiller FreeBSD 手札
Netkiller Shell 手札 Netkiller Security 手札 Netkiller Web 手札 Netkiller Monitoring 手札 Netkiller Storage 手札
Netkiller Mail 手札 Netkiller Docbook 手札 Netkiller Version 手札 Netkiller Database 手札 Netkiller PostgreSQL 手札
Netkiller MySQL 手札 Netkiller NoSQL 手札 Netkiller LDAP 手札 Netkiller Network 手札 Netkiller Cisco IOS 手札
Netkiller H3C 手札 Netkiller Multimedia 手札 Netkiller Perl 手札 Netkiller Amateur Radio 手札 Netkiller DevOps 手札

目录
  • 1. 背景
  • 2. 概述
  • 3. 怎样监控
    • 3.1. 卫星监测
    • 3.2. 逐级诊断
    • 3.3. 模拟人工
    • 3.4. 数据分析
    • 3.5. 监控与开发
  • 4. 总结

1. 背景

每个企业都意识到监控工作的重要性,但80%企业的监控工作仍然处在监控的初级阶段。

什么事初级阶段呢?
  1. 被动监控,故障发生运维人员永远不是第一个发现故障的人
  2. 监控IP地址与TCP端口,很多时候HTTP 80端口正常接受请求,但WEB服务器不能正常工作。
  3. 人肉监控(人肉运维),采用人海战术,桌面摆放很多显示器,甚至投影仪,要求监控者盯着各种仪表板界面,制定各种工作流程以及KPI考核监控人员。
  4. 人肉测试,要求监控人员每间隔几分钟人工操作一次,以确认系统正常工作,例如(没15分钟登陆一次,下一笔顶单,做一次支付等等)。
  5. 万能的重启,定其重启所有的服务器。
什么事中级阶段呢?
  1. 报警:手机短信更靠谱,因为手机随身携带(邮件不算,邮件到达速度慢,各种因素不稳定)
  2. 监控服务:探测服务的可用性,而不是仅仅监控端口,注意我是指私有协议的监控(HTTP,SMTP,FTP,MySQL 不算在内)
  3. 故障分析:通过日志与调试工具分析软件BUG,指导开发人员改善软件质量,使其故障不会再次发生,达到不用restart重启方式解决故障
  4. 半自动化测试

什么事高级阶段呢? 我认为高级阶段是监控与灾备系统打通融合一体。除此之外监控与开发密切相关,在开发阶段需要为监控数据采集做铺垫,每开发一个新功能就要想到未来这个功能是否需要监控,怎样监控。数据前期采集与数据挖掘非常重要,监控不仅能做软件与硬件的性能分析,还能提供决策支持。

除了监控,另一个息息相关的是自动故障转移,有兴趣可以看看我的其他文章 http://netkiller.github.io/journal/

2. 概述

你在百度上搜索监控多半是一些开源或商业软件的安装配置指南。这些文章中会告诉你怎样监控CPU、内存、硬盘空间以及网络IP地址与端口号码。

开源软件无非是 Nagios, Cacti, Mrtg, Zibbix ..... 这些软件在我的电子出书《Netkiller Monitoring 手札》中都有详细说明安装与配置方法。

商业软件也有很多如 SolarWinds, Whit's Up,PRTG ......

所有的服务器,网络设备,监控你都做了,那么按照我上面的监控分级,你处于监控的那个阶段?

3. 怎样监控

监控都有哪些手段跟方式呢?

3.1. 卫星监测

通常是通过IP地址访问远程主机,实施监控,常用方法是SNMP,SSH,以及各种Agent(代理),方式是请求然后接收返回结果,通过结果判断主机状态。

			
      Monitor Server
            |
-------------------------------
  |         |           |
[Web]    [Mail]    [Database]
			
			

以监控服务器为中心,星型散射连接其他监控节点,没有什么优点,缺点是Web跟Mail节点的通信没有监控

3.2. 逐级诊断

这个词是我想出来的,不知道是否确切,一级一级的向下探测,寻找故障点

			
      Monitor Server
              |
-------------------------------      
  |           |             |
  V           V             V
  |           |             |
[Web] ---> [Cache] ---> [Database]
  \                         ^
   `------------------------|			
			
			

首先监控服务器跟星型拓扑一样监控,再让Web节点去访问Cache节点然后返回监控结果,以此类推,让Cache节点访问Database, 让Web访问Database节点。

将所有业务逻辑都逐一模拟一次,任何一个环节出现问题,立即发出警告。

3.3. 模拟人工

这里主要监控服务是否可用,可以检查软件的工作情况,涉及测试环节。

通过自动化测试工具辅助监控,例如模拟鼠标点击,键盘输入,可以监控图形界面程序与网页程序。

Windows 监控可以通过 Windows Automation API实现,通过程序控制,能够模拟人工操作软件,实现操作匹配返回结果实现自动化监控

Web页面监控的方案就太多了,比较经典的是Webdriver衍生出的各种工具Selenium - Web Browser Automation最为出名。我通过这个工具模拟用户操作,例如用户注册,登陆,发帖,下单等等,然后匹配返回结果实现自动化监控与报警

3.4. 数据分析

通过数据分析,将故障消灭在故障发生前。举一个例子,开发人员忘记设置redis 时间,虽然程序一直完好工作,但redis内存不断增长,总一天会出现故障。

我们通过采集redis状态信息,分析一段时间内数据变化发现了这个问题。

3.5. 监控与开发

谈到监控很多人认为这是运维的事情,实则不然,不懂运维的测试不是好开发。

开发过程中需要考虑到监控,例如Nginx的status模块, MySQL的show status命令, Redis的info命令,都是为监控预留的。那么你开发的程序是否考虑到了监控这块呢?

你可以通过日志形式或者管道,再或者Socket将程序的运行状态提供给监控采集程序。

4. 总结

好的监控的能让你对系统了如指掌,做到心里有数。有数据才好说话。

1 楼 ghost_fly 2015-03-10  
前面链接都内网地址
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • 《松本行弘的程序全世界》之面向对象

    《松本行弘的程序世界》之面向对象 最近读《SICP》把脑细胞搞死大半,还没看完2章,而且看得也是一知半解,实在是受不了了,...

  • GroovyHelp 3.2.7 GA公布

    GroovyHelp 3.2.7 GA发布 GroovyHelp简介   GroovyHelp是一款Javadoc及Groovydoc搜索查阅软件,它能够帮助Java开发人员以...

  • Velocity在Roller中的使用

    Velocity在Roller中的应用 Velocity是java世界中出现比较早,也比较成熟的、性能比较好的、应用也比较广泛的模板框架。   所...

  • Rpc远程调用框架的设计与兑现(2)

    Rpc远程调用框架的设计与实现(2) 接上: 3   基于Json的前后端数据交互 3.1   轻量级的数据交换形式 3.1.1    什么是Jso...

  • excel 单元格的锁定 以及 JXL的兑现方式

    excel 单元格的锁定 以及 JXL的实现方式 在使用excel表格时,有些列是不希望用户可以修改的,诸如审计日志里面确定的部分,而审计...

  • 仓秤跟散料秤:java连接opc Server

    仓秤和散料秤:java连接opc Server 这三篇都是之前写好的,一直没发。 这次一起发出来吧。   java连接硬件很痛苦,特别是对我这...

  • Rpc远程调用框架的设计与兑现(1)

    Rpc远程调用框架的设计与实现(1) Rpc远程调用框架的设计与实现 1     Rpc远程调用框架设计概述 1.1   研究背景 1.1.1...

  • 集合中的线程安全有关问题

    集合中的线程安全问题 一、why? Java中常用的集合框架推荐使用的三个实现:HashSet\ArrayList\HashMap都是线程不安全的.如...

  • Java定时任务的兑现

    Java定时任务的实现 本例依据Java自身提供的接口实现,通过监听器(Listener)和定时器(Timer)定时执行某个任务(Task)。 MyListener: ...

  • java中log日记的使用

    java中log日志的使用 一、介绍  Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控...

热门推荐: