Linux云主机 监控方案浅析

一、为什么须要监控

监控是运维工程师的眼睛,它可帮助运维工程师第一时间发现系统的问题。html

对于服务器的整个生命周期,都要和监控打交道:linux

  • 当有服务器上架,都须要加入好比CPU负载、内存、网络、磁盘等基础监控项;ios

  • 当服务器上开始跑应用时,须要加入对应的应用监控,好比Tomcat/Resin,MySQL等;shell

  • 当服务器进行维护时,须要暂停监控项的告警提示,不然当咱们在维护MySQL,监控系统还会给咱们报警说MySQL挂了。缓存

以上操做,光靠手动去作将很是繁琐,监控系统需与其余运维系统共同协做来完成。举个例子,好比CMDB中一台服务器上架了,那么监控系统需自动为其加入基础监控项。安全

若是没有监控,咱们就没法知道系统与应用的运行情况,当问题发生时,监控系统需第一时间发出告警信息;告警信息中除了出问题的节点,还应该有些数据和简单的分析。好比问题先后一段时间的CPU负载、网络情况等,以帮助接到报警的人员快速定位问题。服务器

在出现故障之后进行问题分析时,还要靠监控系统。由于监控系统真实的记录了故障发生现场这台服务器的情况。咱们能够经过不一样纬度的分析,找出问题的缘由。微信

二、三种 Linux云主机 监控方案

2.一、Linux 自带命令实现监控

在Linux环境下,能够经过Python或Shell命令来获取系统的状态信息,网络

经常使用的监控命令的如:运维

一、监控系统负载

[root@CloudBility ~]# uptime
 13:42:08 up 3 days, 4 min,  1 user,  load average: 0.05, 0.04, 0.05

二、监控内存使用状况

[root@CloudBility ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1016396      340256       95112       75516      581028      413272
Swap:             0           0           0

三、监控CPU使用状况

[root@CloudBility ~]# mpstat
Linux 3.10.0-514.26.2.el7.x86_64 (keegv)    2019年03月01日     _x86_64_    (1 CPU)

13时44分39秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
13时44分39秒  all    1.79    0.00    0.39    0.59    0.00    0.00    0.00    0.00    0.00   97.22

四、监控系统进程

[root@keegv ~]# ps -el | more
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 31293 ep_pol ?        00:00:04 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0     3     2  0  80   0 -     0 smpboo ?        00:00:03 ksoftirqd/0

五、监控I/O性能:

[root@CloudBility ~]# iostat 
Linux 3.10.0-514.26.2.el7.x86_64 (keegv)    2019年03月01日     _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.79    0.00    0.39    0.59    0.00   97.22

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.74        15.27        25.55    3955533    6616344
vdb               0.00         0.00         0.00        920          0

六、监控网络性能:

[root@CloudBility ~]# netstat -i -c
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0      1500   930639      0      0 0       1012487      0      0      0 BMRU
lo       65536  1246803      0      0 0       1246803      0      0      0 LRU
eth0      1500   930652      0      0 0       1012502      0      0      0 BMRU
lo       65536  1246803      0      0 0       1246803      0      0      0 LRU

在此推荐使用Linux top 命令来对Linux系统进行监控。

Linux top命令详解

top 命令是Liunx性能监控程序,它能够在不少 类Unix 下使用,而且它也是 Linux 系统管理员最经常使用的监控系统性能的工具。

简单来讲,top 命令可以实时显示系统中各个进程的资源占用情况,相似于Windows的任务管理器,能够按期显示全部正在运行和实际运行进程而且更新到列表中。

top命令显示出 CPU 的使用、内存的使用、交换内存、缓存大小、缓冲区大小、过程控制、用户等信息。

它将显示系统中CPU最“敏感”的任务列表。该命令能够按CPU使用、内存使用和执行时间对任务进行排序;并且该命令的不少特性均可以经过交互式命令或者在我的定制文件中进行设定。

命令行输入:

[root@CloudBility ~]# top

第一行 时间相关

top - 13:21:57 ,系统当前时间 
 
up 2 days, 23:45,  系统开机到如今通过了多少时间 

1 user, 当前1用户在线 

load average: 0.02, 0.03, 0.05,系统1分钟、5分钟、15分钟的CPU负载信息

第二行 Tasks: 任务

74 total, 很好理解,就是当前有74个任务,也就是74个进程。 

1 running, 1个进程正在运行 

73 sleeping, 73个进程睡眠

0 stopped,中止的进程数 

0 zombie,僵死的进程数

第三行 Cpu(s):表示这一行显示CPU整体信息

1.7%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间

0.3%sy:内核占用CPU时间百分比 

0.0%ni:改变过优先级的进程占用CPU的百分比 

98.0%id:空闲CPU时间百分比 

0.0%wa:等待I/O的CPU时间百分比 

0.0%hi:CPU硬中断时间百分比 

0.0%si:CPU软中断时间百分比 

注:这里显示数据是全部cpu的平均值,若是想看每个cpu的处理状况,按1便可;折叠,再次按1;

第四行 Men:内存的意思

1016396K total,  物理内存总量 

342660K used,  使用的物理内存量 

112116K free,   空闲的物理内存量 

561788K buffers  用做内核缓存的物理内存量

第五行 Swap:交换空间

0 total:交换区总量 

0 used:使用的交换区量 

0 free:空闲的交换区量 

411372k avail Mem:可用内存空间

进程信息

PID:进程的ID 

USER:进程全部者 

PR:进程的优先级别,越小越优先被执行 

NInice:值 

VIRT:进程占用的虚拟内存 

RES:进程占用的物理内存 

SHR:进程使用的共享内存 

S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 

%CPU:进程占用CPU的使用率 

%MEM:进程使用的物理内存和总内存的百分比 

TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 

COMMAND:进程启动命令名称

注:强调一下,使用频率最高的是P、T、M,由于一般使用top,咱们就想看看是哪些进程最耗cpu资源、占用的内存最多;

P:CPU占用百分比排序,%CPU;

T:累计占据CPU时间排序,TIME+;

M:占据内存百分比排序,%MEM;

停停停,咱们不可能每次都登陆上去看服务器的监控信息吧。

2.二、云厂商的监控

云厂商提供的监控服务可用于收集获取云资源的监控指标或自定义的监控指标,探测服务可用性,以及针对指标设置警报。

能让咱们快速全面的了解云资源使用状况、业务的运行情况和健康度,并及时收到异常报警作出反应,保证应用程序顺畅运行。

可是云厂商提供的监控存在诸如监控项过少、监控数据丢失、监控频率太低等问题。

三、行云管家 一站式云计算管理平台

在行云管家中,咱们为用户提供了两种模式的监控服务:云厂商监控和行云管家Agent监控(须要在主机上安装行云管家Agent);

对于公有云主机而言,行云管家经过API集成了各大云厂商监控服务,用户可直接在行云管家中查看云厂商的监控数据。同时,若是云主机上已经安装了行云管家Agent,也可采用行云管家Agent监控;

而对于局域网主机,咱们能够经过安装行云管家Agent来得到监控服务。

3.一、行云管家 与 云厂商 监控模式对比

行云管家Agent监控模式,由安装在主机上的行云管家Agent插件直接向服务器汇报监控数据,有着稳定性高、频率高的优势,下面表格展现了两种监控模式的差别:

3.二、免安装,免运维

无需安装任何Agent,行云管家已经支持了阿里云、腾讯云、华为云、京东云、Ucloud、百度云、AWS、青云、、Azure等主流云厂商,可以让用户在一个主控台中完成对多云厂商的统一管理与监控,行云管家是运维人员最趁手的跨云管理工具。

行云管家支持Windows、Linux/Unix等主流操做系统,可无缝接入公有云厂商的云监控API接口,支持CPU、内存、进程、网络流量等十余项监控指标,并提供基于微信的实时监控告警通知。

3.三、专业服务器性能监控

丰富的监控指标:支持CPU、内存、进程、磁盘IO、网络流量、TCP链接数、平均负载等十余项监控指标;

监控项数据保留时间长:每一个监控项均提供30天的监控详情,监控详情细致入微;

监控数据频度高:监控数据粒度最低可至1分钟,报警更及时。

3.四、微信实时接收告警消息

基于微信的告警:只需绑定微信,便可接收告警消息;

查看告警方便快捷:可直接在手机中查看云资源的异常状态,第一时间解决问题;

告警推送不限量:告警推送不限次数,彻底免费。

3.五、不只仅是多云主机监控平台

行云管家为企业提供一站式的云计算管理平台,实现了对多家云厂商多种云计算资源的集中管理,从成本、监控、备份、安全等多个维度提供统一运维管控,对企业而言,只需一个控制台,便可整合操做多个公有云、多个私有云 、混合云以及各类异构资源,从而进行灵活的资源管理与运维。

目前,行云管家云计算管理平台已在官网上线了Demo环境,咱们已经导入了多家云服务商的资源,阿里云、腾讯云、华为云、AWS、Azure和私有云都包括,你们可直观的进行体验。

行云管家Demo环境

除此以外咱们还提供了详细的产品文档,以及多云管理介绍的博客和用例。

目前,行云管家已经连续三年保持云管理领域市场领先地位,咱们正帮助 20000+企业级用户,管理着 100000 余台云主机。做为数字化解决方案领导者,行云管家将以持续创新的多云管理技术与方案,与企业携手努力,致力消除复杂性,简化百行百业的数字化转型之旅。

你们有不明白的地方,能够随时咨询我,我免费给你们解答。

(完)

相关文章
相关标签/搜索