监控知识点概述

今天学习了zabbix监控,赵班长首先在宏观层面给我们介绍了一下监控,以前我认识监控是有局限性的,以为监控就是监控工具,下面整理下听课笔记
一、课程大纲
      监控概述
      业务监控
      网络监控
      应用监控
      单机监控
      分布式监控zabbix
二、详解
      监控概述

      业务监控
            业务指标-->流量分析-->舆论监控
      网络监控
            我们需要知道全国不同地区访问我们网站的情况,Smokeping是一款不错的监控网络状态的开源工具
      应用监控
            Apache、Nginx、Memcached、Redis等
      单机监控
            硬件、CPU、Memory、IO(Disk IO、Network IO)、CPU调度、上下文切换、运行队列、CPU使用率
      分布式监控zabbix

1、Apache状态监控

    http.conf:
    include conf/extra/http-info.conf
    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from 124.192.129.162
    </Location>
    ExtendedStatus ON
    <Location /server-info>
        SetHandler server-info
        Order deny,allow
        Deny from all
        Allow from 124.192.129.162
    </Location>

2、Nginx状态监控

    server{
        server_name 127.0.0.1
        location /nginx_status{
            stub_status on;
            access_log off;
            allow 127.0.0.1;
            deny all;
        }
    }

    Active connections :当前Nginx正处理的活动连接数
    serveraccepts handled requests :总共处理了$1个连接,成功创建$2次握手(证明中间没有失败的),总共处理了$3个请求
    Reading :nginx当前读取到客户端的Header信息数。
    writing :nginx当前返回给客户端的Header信息数。
    waiting :开启keep-alive的情况下,这个值等于active-(reading+writing),意思就是Nginx已经处理完正在等候下一次请求指令的驻留连接。

3、监控阀值的设定指标
     Run Queues -每个处理器应该运行队列不超过1-3个线程,例子:一个双核处理器应该运行队列不要超过6个线程。

     CPU Utiliation -如果一个CPU被充分使用,利用率分类之间均衡的比例应该是
        65%-70% User Time
        30%-35% System Time
        0%-5%   ldle Time
     Context Switches -上下文切换的数目直接关系到CPU的使用率,如果CPU利用率保持在上述均衡状态时,大量的上下文切换是正常的。

4、不同厂商物理机带的监控接口
    DELL IDRAC
    iDRAC又称为Integrated Dell Remote Access Controller,也就是集成戴尔远程控制卡,这是戴尔服务器的独有功能,iDRAC卡相当于是附加在服务器上的一计算机,可以实现一对一的服务器远程管理与监控,通过与服务器主板上的管理芯片BMC进行通信,监控与管理服务器的硬件状态信息。它拥有自己的系统和IP地址,与服务器上的OS无关。是管理员进行远程访问和管理的利器,戴尔服务器集成了iDRAC控制卡,我们就可以扔掉价格昂贵的KVM设备了。
    参看:http://server.yesky.com/113/33312613.shtml
    HP   ILO
    参看:http://wangchunhai.blog.51cto.com/225186/837529
    IBM  IMM
    参看:http://vdisk.weibo.com/s/aVo-nnanM7SWt

5、监控一台机器时,考虑流程
    1、确定业务类型
    2、熟悉监控指标
    3、确定性能基准线
    4、使用工具--获取数据--展示--设置阀值--触发报警--告警通知--通知升级。


6、RRDTool
    RRDtool不是一个监控软件,而是一个能对时系数据进行高性能记录检索和图形展现的开源库。不少监控软件都使用了RRDtool,所以有必要了解一下RRDtool。
    RRDtool之所以叫RRD(Round Robin Database) Tool,是因其存储数据的方式而得名。可以讲其想象成一个固定大小的环形存储空间,每插入一条记录,当前位置指针向前移动一下,指针移动一圈后覆盖之前的数据。这种结构使得RRD的大小不会扩张,因此也就不需要维护,特别适合性能数据采集的场景。
    RRDtool的功能有两个,一是作为时系数据的存储引擎,二是将存储的时系数据按不同要求绘制成png图片。

7、 性能数据的采集
      RRDtool或RDB可以解决性能数据的存储问题,但这些性能数据从哪收集呢?数据采集的方法很自由,常用的方法大概可以归纳为以下几种:

      1)代理(agent)
       一个专门收集性能数据的东西,一般是运行于被监控机器上的某个Deamon。代理采集数据然后传给监控服务器,那么代理又是如何得到数据的呢?无非是调用OS API,执行某个命令或者脚本。因为一般可以定制代理调用的脚本,所以代理采集数据的能力也是可以自由定制的。
      2)远程协议
      用于管理的共通协议SNMP,IMPI。或者常用的服务协议,http,ftp,ftp等。或是可以远程执行命令的协议telnet和ssh。只要设置好相应的参数就可以透过网络实施远程监视了。
      3)定制脚本
     有些管理系统上可以配置用于监控的定制脚本。有了定制脚本就可以自由扩展监控对象了。
     下面介绍监控相关的共通协议SNMP和IMPI。
8、SNMP
     SNMP全称是Simple Network Management Protocol,SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台。被管理的系统上运行一个叫做代理者(agent)的软件元件,通过SNMP向管理系统报告。代理者和管理系统之间通信的方式有两种,一种是管理系统向代理者询问一个具体的参数值(比如:你产生了多少ICMP不可达差错),另一种是代理者向管理系统主动报告有某些重要事情发生(比如:一个网口掉线了)。
    关于代理者和管理系统之间的交互,SNMP定义了5种报文
    1)get-request:从代理处提取一个或多个参数值
    2)get-next-request:从代理处提取一个或多个参数的下一个参数值
    3)set-request:设置代理的一个或多个参数值
    4)get-response:返回的一个或多个参数值。它是1)~3)的响应。
    5)trap:代理主动发出报文,通知管理系统某些事情发生。

    在SNMP体系中由代理提供,由管理系统查询和设置的信息集合称之为MIB(管理信息库)。MIB中的信息通过OID(对象标示符识别),比如:1.3.6.1.2.1.1.1.0。关于OID的定义可参照相关RFC。比如:
    http://www.ietf.org/rfc/rfc1907.txt
    标准中也有给厂商预留的OID(1.3.6.1.4.1),这样厂商可以在此OID下面进行扩展。
    很多网络设备都内置SNMP代理,这样外面的监控服务器可以通过SNMP协议获取信息。对于普通的服务器,可以通过安装一个snmp代理软件提供snmp信息。比如:
    安装和运行snmp代理

[root@zabbix ~]# yum install net-snmp
[root@zabbix ~]# /etc/init.d/snmpd start

    通过SNMP查看系统描述

[root@zabbix ~]# snmpget -v2c -c public localhost 1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux zabbix 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64
或者
[root@zabbix ~]# snmpget -v2c -c public localhost iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux zabbix 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64
或者
[root@zabbix ~]# snmpget -v2c -c public localhost sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux zabbix 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64

    参考:
    http://avery-leo.iteye.com/blog/379076
    http://www.cnblogs.com/aspx-net/p/3554044.html

9、IPMI
     IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。Ipmi 最大的优势在于它是独立于 CPU BIOS 和 OS 的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。

     要使用IPMI,服务器硬件本身必须提供对ipmi的支持。大多数厂商的服务器都支持IPMI,但并不是所有服务器都支持,所以应该先通过产品手册或在BIOS中确定服务器是否支持ipmi。如果你用的PC机或者虚拟机那肯定没戏了。

      通过ipmitool,可以本地或远程经由impi获取机器信息或控制机器。比如:
      # ipmitool -I lan -H 服务器地址 -U root -P 密码 power status
      # ipmitool -I lan -H 服务器地址 -U root -P 密码 power reset  (硬重启)

      参考:http://qa.blog.163.com/blog/static/1901470022013690328217/

10、zabbix
       zabbix和nagios一样是功能全面的监控软件。但是比nagios更加好用,图形能力更强,所以面临nagios和zabbix二选一的时候建议zabbix。

       zabbix的数据采集支持Zabbix agent,ICMP,SNMP,IPMI,http,ssh,定制脚本等
       发现问题自动告警
       数据展示盒配置设置全部统一的WEB GUI管理
       支持分布式部署
       支持模板和自动发现功能可以轻松的在大规模环境下部署

posted @ 2016-02-27 21:38  幻月0412  阅读(511)  评论(0编辑  收藏  举报