• 监控知识点概述


    今天学习了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管理
           支持分布式部署
           支持模板和自动发现功能可以轻松的在大规模环境下部署

  • 相关阅读:
    多重共性和VIF检验
    类和对象
    哈希桶
    第9章 硬件抽象层:HAL
    第10章 嵌入式Linux的调试技术
    第8章 让开发板发出声音:蜂鸣器驱动
    第7章 LED将为我闪烁:控制发光二极管
    第6章 第一个Linux驱动程序:统计单词个数
    第5章 搭建S3C6410开发板的测试环境
    第四章:源代码的下载与编译
  • 原文地址:https://www.cnblogs.com/migongci0412/p/5223641.html
Copyright © 2020-2023  润新知