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