多维监控体系

监控概述

监控对象:
1.监控对象的理解:CPU 是怎么工作的。原理
2.监控对象的指标:CPU使用率 CPU负载 CPU个数 上下文切换
3.确定性能基准线:怎么样才算故障?CPU负载多少才算高

监控范围:
1.硬件监控 服务器的硬件故障
2.操作系统监控 CPU 内存 IO 进程
3.应用服务监控
4.业务监控


硬件监控

服务器:

远程控制卡:DELL服务器:iDRAC
HP服务器:ILO
IBM服务器:IMM

方式:Linux就可以使用IPMI BMC控制器

工具:ipmitool
1.硬件要支持
2.操作系统 Linux IPMI
3.管理工具 ipmitool

安装:yum install -y OpenIPMI ipmitool

启动:systemctl start ipmi

帮助:ipmitool help

使用IPMI有两种方式 1 本地调用 2 远程调用 (IP地址 用户名和密码)

ipmi配置网络,有两种方式:
1. ipmi over lan(通过网卡)
2. 独立(通过插入网线控制)

硬件监控方式:   1.使用IPMI   2.机房巡检

snmp安装: yum install -y net-snmp net-snmp-utils

snmp配置:

cd /etc/snmp/
mv snmpd.conf snmpd.conf.bak
vim snmpd.conf

snmp启动: systemctl start snmpd

snmp默认udp启动端口:netstat -nulp 

snmp默认tcp启动端口:netstat -ntlp 

  

snmp参考文档:http://www.ibm.com/developerworks/cn/linux/l-cn-snmp/index.html

snmpget -v2c -c shhnwangjian 192.168.137.11 1.3.6.1.2.1.1.3.0

1.3.6.1.2.1.1.3.0为OID

snmpget -v2c -c shhnwangjian 192.168.137.11 1.3.6.1.4.1.2021.10.1.3.1

这条命令表示获取一分钟系统平均负载

snmpwalk -v2c -c shhnwangjian 192.168.137.11 1.3.6.1.4.1.2021.10.1.3

这条命令表示获取一分钟、5分钟、15分钟的系统平均负载,等同于uptime

SNMP常用OID

1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3
CPU
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
Memory Statistics
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
Disk Statistics
The snmpd.conf needs to be edited. Add the following (assuming a machine with a single ‘/’ partition):
disk / 100000 (or)
includeAllDisks 10% for all partitions and disks
The OIDs are as follows
Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1
Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1
Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1
Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1
System Uptime: .1.3.6.1.2.1.1.3.0
Examples
These Commands you need to run on the SNMP server
Get available disk space for / on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.9.1.7.1
this will return available disk space for the first entry in the
‘disk’ section of snmpd.conf; replace 1 with n for the nth entry
Get the 1-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.1
Get the 5-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.2
Get the 15-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.3
Get amount of available swap space on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.4.4.0
Variable Descriptor Object Identifier 
System Group  
sysDescr 1.3.6.1.2.1.1.1 
sysObjectID 1.3.6.1.2.1.1.2 
sysUpTime 1.3.6.1.2.1.1.3 
sysContact 1.3.6.1.2.1.1.4 
sysName 1.3.6.1.2.1.1.5 
sysLocation 1.3.6.1.2.1.1.6 
sysServices 1.3.6.1.2.1.1.7 
Interfaces Group  
ifNumber 1.3.6.1.2.1.2.1 
ifTable  1.3.6.1.2.1.2.2 
ifEntry 1.3.6.1.2.1.2.2.1 
ifIndex 1.3.6.1.2.1.2.2.1.1 
ifDescr 1.3.6.1.2.1.2.2.1.2 
ifType 1.3.6.1.2.1.2.2.1.3 
ifMtu 1.3.6.1.2.1.2.2.1.4 
ifSpeed 1.3.6.1.2.1.2.2.1.5 
ifPhysAddress 1.3.6.1.2.1.2.2.1.6 
ifAdminStatus 1.3.6.1.2.1.2.2.1.7 
ifOperStatus 1.3.6.1.2.1.2.2.1.8 
ifLastChange 1.3.6.1.2.1.2.2.1.9 
ifInOctets 1.3.6.1.2.1.2.2.1.10 
ifInUcastPkts 1.3.6.1.2.1.2.2.1.11 
ifInNUcastPkts 1.3.6.1.2.1.2.2.1.12 
ifInDiscards 1.3.6.1.2.1.2.2.1.13 
ifInErrors 1.3.6.1.2.1.2.2.1.14 
ifInUnknownProtos 1.3.6.1.2.1.2.2.1.15 
ifOutOctets 1.3.6.1.2.1.2.2.1.16 
ifOutUcastPkts 1.3.6.1.2.1.2.2.1.17 
ifOutNUcastPkts 1.3.6.1.2.1.2.2.1.18 
ifOutDiscards 1.3.6.1.2.1.2.2.1.19 
ifOutErrors 1.3.6.1.2.1.2.2.1.20 
ifOutQLen 1.3.6.1.2.1.2.2.1.21 
ifSpecific 1.3.6.1.2.1.2.2.1.22 
IP Group  
ipForwarding 1.3.6.1.2.1.4.1 
ipDefaultTTL 1.3.6.1.2.1.4.2 
ipInReceives 1.3.6.1.2.1.4.3 
ipInHdrErrors 1.3.6.1.2.1.4.4 
ipInAddrErrors 1.3.6.1.2.1.4.5 
ipForwDatagrams 1.3.6.1.2.1.4.6 
ipInUnknownProtos 1.3.6.1.2.1.4.7 
ipInDiscards 1.3.6.1.2.1.4.8 
ipInDelivers 1.3.6.1.2.1.4.9 
ipOutRequests 1.3.6.1.2.1.4.10 
ipOutDiscards 1.3.6.1.2.1.4.11 
ipOutNoRoutes 1.3.6.1.2.1.4.12 
ipReasmTimeout 1.3.6.1.2.1.4.13 
ipReasmReqds 1.3.6.1.2.1.4.14 
ipReasmOKs 1.3.6.1.2.1.4.15 
ipReasmFails 1.3.6.1.2.1.4.16 
ipFragsOKs 1.3.6.1.2.1.4.17 
ipFragsFails 1.3.6.1.2.1.4.18 
ipFragCreates 1.3.6.1.2.1.4.19 
ipAddrTable  1.3.6.1.2.1.4.20 
ipAddrEntry 1.3.6.1.2.1.4.20.1 
ipAdEntAddr 1.3.6.1.2.1.4.20.1.1 
ipAdEntIfIndex 1.3.6.1.2.1.4.20.1.2 
ipAdEntNetMask 1.3.6.1.2.1.4.20.1.3 
ipAdEntBcastAddr 1.3.6.1.2.1.4.20.1.4 
ipAdEntReasmMaxSize 1.3.6.1.2.1.4.20.1.5 
ICMP Group  
icmpInMsgs 1.3.6.1.2.1.5.1 
icmpInErrors 1.3.6.1.2.1.5.2 
icmpInDestUnreachs 1.3.6.1.2.1.5.3 
icmpInTimeExcds 1.3.6.1.2.1.5.4 
icmpInParmProbs 1.3.6.1.2.1.5.5 
icmpInSrcQuenchs 1.3.6.1.2.1.5.6 
icmpInRedirects 1.3.6.1.2.1.5.7 
icmpInEchos 1.3.6.1.2.1.5.8 
icmpInEchoReps 1.3.6.1.2.1.5.9 
icmpInTimestamps 1.3.6.1.2.1.5.10 
icmpInTimestampReps 1.3.6.1.2.1.5.11 
icmpInAddrMasks 1.3.6.1.2.1.5.12 
icmpInAddrMaskReps 1.3.6.1.2.1.5.13 
icmpOutMsgs 1.3.6.1.2.1.5.14 
icmpOutErrors 1.3.6.1.2.1.5.15 
icmpOutDestUnreachs 1.3.6.1.2.1.5.16 
icmpOutTimeExcds 1.3.6.1.2.1.5.17 
icmpOutParmProbs 1.3.6.1.2.1.5.18 
icmpOutSrcQuenchs 1.3.6.1.2.1.5.19 
icmpOutRedirects 1.3.6.1.2.1.5.20 
icmpOutEchos 1.3.6.1.2.1.5.21 
icmpOutEchoReps 1.3.6.1.2.1.5.22 
icmpOutTimestamps 1.3.6.1.2.1.5.23 
icmpOutTimestampReps 1.3.6.1.2.1.5.24 
icmpOutAddrMasks 1.3.6.1.2.1.5.25 
icmpOutAddrMaskReps 1.3.6.1.2.1.5.26 
TCP Group  
tcpRtoAlgorithm 1.3.6.1.2.1.6.1 
tcpRtoMin 1.3.6.1.2.1.6.2 
tcpRtoMax 1.3.6.1.2.1.6.3 
tcpMaxConn 1.3.6.1.2.1.6.4 
tcpActiveOpens 1.3.6.1.2.1.6.5 
tcpPassiveOpens 1.3.6.1.2.1.6.6 
tcpAttemptFails 1.3.6.1.2.1.6.7 
tcpEstabResets 1.3.6.1.2.1.6.8 
tcpCurrEstab 1.3.6.1.2.1.6.9 
tcpInSegs 1.3.6.1.2.1.6.10 
tcpOutSegs 1.3.6.1.2.1.6.11 
tcpRetransSegs 1.3.6.1.2.1.6.12 
tcpConnTable  1.3.6.1.2.1.6.13 
tcpConnEntry 1.3.6.1.2.1.6.13.1 
tcpConnState 1.3.6.1.2.1.6.13.1.1 
tcpConnLocalAddress 1.3.6.1.2.1.6.13.1.2 
tcpConnLocalPort 1.3.6.1.2.1.6.13.1.3 
tcpConnRemAddress 1.3.6.1.2.1.6.13.1.4 
tcpConnRemPort 1.3.6.1.2.1.6.13.1.5 
tcpInErrs 1.3.6.1.2.1.6.14 
tcpOutRsts 1.3.6.1.2.1.6.15 
UDP Group  
udpInDatagrams 1.3.6.1.2.1.7.1 
udpNoPorts 1.3.6.1.2.1.7.2 
udpInErrors 1.3.6.1.2.1.7.3 
udpOutDatagrams 1.3.6.1.2.1.7.4 
udpTable  1.3.6.1.2.1.7.5 
udpEntry 1.3.6.1.2.1.7.5.1 
udpLocalAddress 1.3.6.1.2.1.7.5.1.1 
udpLocalPort 1.3.6.1.2.1.7.5.1.2 
SNMP Group  
snmpInPkts 1.3.6.1.2.1.11.1 
snmpOutPkts 1.3.6.1.2.1.11.2 
snmpInBadVersions 1.3.6.1.2.1.11.3 
snmpInBadCommunityNames 1.3.6.1.2.1.11.4 
snmpInBadCommunityUses 1.3.6.1.2.1.11.5 
snmpInASNParseErrs 1.3.6.1.2.1.11.6 
NOT USED 1.3.6.1.2.1.11.7 
snmpInTooBigs 1.3.6.1.2.1.11.8 
snmpInNoSuchNames 1.3.6.1.2.1.11.9 
snmpInBadValues 1.3.6.1.2.1.11.10 
snmpInReadOnlys 1.3.6.1.2.1.11.11 
snmpInGenErrs 1.3.6.1.2.1.11.12 
snmpInTotalReqVars 1.3.6.1.2.1.11.13 
snmpInTotalSetVars 1.3.6.1.2.1.11.14 
snmpInGetRequests 1.3.6.1.2.1.11.15 
snmpInGetNexts 1.3.6.1.2.1.11.16 
snmpInSetRequests 1.3.6.1.2.1.11.17 
snmpInGetResponses 1.3.6.1.2.1.11.18 
snmpInTraps 1.3.6.1.2.1.11.19 
snmpOutTooBigs 1.3.6.1.2.1.11.20 
snmpOutNoSuchNames 1.3.6.1.2.1.11.21 
snmpOutBadValues 1.3.6.1.2.1.11.22 
NOT USED 1.3.6.1.2.1.11.23 
snmpOutGenErrs 1.3.6.1.2.1.11.24 
snmpOutGetRequests 1.3.6.1.2.1.11.25 
snmpOutGetNexts 1.3.6.1.2.1.11.26 
snmpOutSetRequests 1.3.6.1.2.1.11.27 
snmpOutGetResponses 1.3.6.1.2.1.11.28 
snmpOutTraps 1.3.6.1.2.1.11.29 
snmpEnableAuthenTraps 1.3.6.1.2.1.11.30

路由器和交换机:

通过SNMP监控

系统监控

重要指标: CPU 、内存 、IO Input/Output(网络、磁盘)

线程概念文章:

http://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=416915373&idx=1&sn=f80a13b099237534a3ef777d511d831a&scene=0#wechat_redirect&utm_source=tuicool&utm_medium=referral

1、CPU

三个重要的概念:(单位:时间片)
 - 上下文切换:CPU调度器实施的进程的切换过程,上下文切换
 - 运行队列(负载):运行队列
 - 使用率:

确定服务类型:

 - IO密集型 数据库
 - CPU密集型 web mail

确定性能基准线:

 - 运行队列:1-3线程 1CPU 4核 负载不超过12

 - CPU使用:65%-70% 用户态利用率
                    30-35% 内核态利用
                    0%-5% 空闲

监控工具:top vmstat mpstat

linux用户态和内核态

2、内存

单位: 页 4KB (读取按页为单位操作)

寻址、空间

监控工具:free、vmstat

根据available 查看可用内存

shared,进程间通信使用共享内存

si 数据从交换分区读取到内存的大小

so 数据从内存读取到交换分区的大小

3、硬盘

单位: 块

监控工具: df -h 、iotop (安装 yum install -y iotop)、iostat

IOPS  IO's Per Second 每秒的IO请求次数

分类:顺序IO 、随机IO

4、网络

监控工具:iftop、Smokeping、Piwik

http://alibench.com

http://ce.cloud.360.cn

http://ping.chinaz.com/

http://www.webpagetest.org/  (国外访问站点的性能测试网址)

IBM    nmon 二进制      性能测试用

http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/index.html

应用监控

举例Nginx

依赖模块安装: yum install -y gcc glibc gcc-c++ pcre-devel openssl-devel wget

cd /usr/local/src

wget http://nginx.org/download/nginx-1.10.1.tar.gz

tar zxf nginx-1.10.1.tar.gz 

备注: configure 是Shell脚本。执行它的作用:生成 Makefile文件

创建nginx用户 useradd -s /sbin/nologin -M nginx

编译安装

./configure --prefix=/usr/local/nginx-1.10.1 
--user=nginx --group=nginx 
--with-http_ssl_module 
--with-http_stub_status_module 

make

make install

ln -s /usr/local/nginx-1.10.1/ /usr/local/nginx

查看80端口是否被暂用,启动nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

netstat -ntlp

启动状态监控

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

/usr/local/nginx/sbin/nginx -s reload

原文地址:https://www.cnblogs.com/shhnwangjian/p/5897950.html