SNMP多纬度监控

linux的多维度监控

监控的目的

  • 报告系统的健康状态

每一部分必须同时监控,内容、吞吐量、使用率

监控资源的类别

  • 公开数据
  1. web ssh ftp 数据库
  2. tcp和udp端口
  • 私有数据
  1. cpu、内存、网卡、流量信息等使用信息
  2. 用户进程等用户信息

常用的Linux系统监控命令

  • ps
  • ifconfog
  • top
  • swapon -a
  • uptime
  • netstat或ss
  • du
  • iostat
  • ping
  • free
  • traceroute

硬件监控

远程控制卡:

  • DELL服务器:idrac
  • HP服务器:ilo
  • IBM服务器:imm

通常使用ipmitool进行控制管理,在虚拟机上不支持ipmi,物理机上可以使用可以对物理机实现实时监控。
使用ipmi有两种方式:本地调用或者是远程调用。

yum -y install OpenIPMI ipmitool   #安装文件

ipmi配置网络,有两种方式:

  • -1->ipmi over lan
  • -2->独立的拉一根网线

硬件监控:

  • 1.使用ipmi
  • 2.机房巡检

路由器和交换机默认提供:SNMP 监控

Linux中的SNMP的使用

1.安装

yum -y install net-snmp net-snmp-utils

2.配置

vim /etc/snmp/snmod.conf
rocommunity node1 192.168.175.179

3.启动并查看端口

systemctl start snmpd
netstat -lntp   #通常snmp监控161,199
linux snmp oid

linux smnp mib

snmp的工作模式就是访问多次oid来获取相应的值,最后将获取到的值用cacti来绘制一个图表

4.获取方式:

snmpget -v2c -c node1 192.168.175.23 1.3.6.1.4.1.2021.10.1.3.1

系统监控

  • cpu
  • 内存
  • IO Input/Output(网络、磁盘)

cpu三个重要的概念:

  • 上下文切换
  • 运行队列(负载)
  • 使用率
  • 确定服务类型

CPU监控

CPU单位:时间片

1.什么是CPU的上下文切换?

微观的角度上来说一个时刻CPU只能执行一个任务。优先级决定了那个一进程先运行。标准意义上来说一个Linux可以运行5-10万个进程,CPU调度器实施的进程切换过程,调度上下文切换。

挂起进程:将原来的数据从要挂起的进程中拿出来,放到新的进程中去。原来的进程等待恢复。

2.什么是运行队列?

  1. 运行队列 -> 线程排队等待CPU调度运行之路

  2. 负载 -> 单位时间里面排队的平均数(负载是一个参考值)

3.什么是使用率?

用户态:

内核态:

什么是确定服务类型?

  1. I/O密集型:数据库

  2. CPU密集型:Web、emil

确定性能的基准线

正在运行的队列 -> 1-3线程 1CPU/4核 负载不超过12 (经验值)

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

上下文切换:

常用的管理工具:

  • top
  • vmstat
  • mpstat

    yum -y install sysstat #系统监控软件

内存

  • 内存单位: 页 4KB

  • 内存的概念: 寻址、空间

  • 操作工具: free -m 、vmstat

硬盘

  • I/OPS IO’s Per Second
  • 顺序IO (速度可以等同内存速率)
  • 随机IO

磁盘I/O监控工具:

yum -y install iotop
iostat #可以检测I/O

网络监控工具:

yum -y install iftop

公网测试ping:

http://alibench.com    # 阿里一般很慢用的人太多
http://ce.cloud.360.cn      # 360还行
http://ping.chinaz.com

报表生成器:常用来做性能测试生成报表

nmon   # 可以生成好看的数据报表
chmod +x nmon16e_x86_rhel72 
./nmon16e_x86_rhel72    # 显示图形化界面
--------------------------------------
但是问题在我们平时不需要看图形做报表的时候需要看数据平均数
所以我们让它自己搜集信息最后给我们一堆可以处理的数据。

nmon

举个例子:
./nmon16e_x86_rhel72  -c 10 -s 10 -f -m /tmp  # 生成报表
上传电脑后分析报表,得到结果

应用监控

举例说明:Nginx

准备编译环境:

yum -y install -v gcc glibc gcc-c++ pcre-devel openssl-devel # 配置编译的环境
tar -xf nginx-1.12.2.tar.gz  #解压
configure Shell 脚本  # 它的作用是生产 Makefile

编译:

./configure --prefix=/usr/local/nginx-1.12.2 \
--user=www --group=www --with-http_ssl_module \
--with-http_stub_status_module \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path==/var/log/nginx/error.log

make -j 4 && make install  

创建软连接:

ln -s /usr/local/nginx-1.12.2 /usr/local/nginx
systemctl stop httpd # 防止占用端口

配置nginx的监控:

vim /usr/local/nginx/conf/nginx.conf
        location /nginx-status {
            stub_status on;
            access_log  off;    # 不记录日志
            allow 192.168.175.0/24;  # 只允许某网段访问
        }

启动nginx:

cd /usr/local/nginx/sbin
./nginx   # 如果报错查看报错内容

更新配置文件

/usr/local/nginx/sbin/nginx -s reload 重载配置文件
/usr/local/nginx/sbin/nginx 启动

访问查看:

192.168.175.179:nginx-status

SNMP多纬度监控》有3个想法

  1. Excellent read, I just passed this onto a friend who was doing a little research on that. And he just bought me lunch because I found it for him smile So let me rephrase that: Thanks for lunch! “High living and high thinking are poles apart.” by B. J. Gupta.

  2. What i don’t realize is if truth be told how you’re not actually a lot more smartly-appreciated than you might be right now. You’re so intelligent. You recognize therefore significantly on the subject of this matter, produced me in my opinion believe it from a lot of various angles. Its like women and men aren’t involved unless it’s one thing to accomplish with Lady gaga! Your personal stuffs great. At all times maintain it up!

发表评论

电子邮件地址不会被公开。 必填项已用*标注