Linux云主机 监控方案浅析-程序员宅基地

技术标签: 运维  操作系统  数据库  

1、为何需要监控

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

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

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

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

  • 当服务器进行维护时,需要暂停监控项的告警提示,否则当我们在维护MySQL,监控系统还会给我们报警说MySQL挂了。

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

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

在出现故障以后进行问题分析时,还要靠监控系统。因为监控系统真实的记录了故障发生现场这台服务器的状况。我们可以通过不同纬度的分析,找出问题的原因。

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

2.1、Linux 自带命令实现监控

在Linux环境下,可以通过Python或Shell命令来获取系统的状态信息,

常用的监控命令的如:

1、监控系统负载

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

2、监控内存使用情况

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

3、监控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

4、监控系统进程

[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

5、监控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

6、监控网络性能:

[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.2、云厂商的监控

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

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

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

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

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

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

而对于局域网主机,我们可以通过安装行云管家Agent来获得监控服务。

3.1、行云管家 与 云厂商 监控模式对比

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

3.2、免安装,免运维

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

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

3.3、专业服务器性能监控

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

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

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

3.4、微信实时接收告警消息

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

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

告警推送不限量:告警推送不限次数,完全免费。

3.5、不仅仅是多云主机监控平台

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

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

行云管家Demo环境

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

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

大家有不明白的地方,可以随时咨询我,我免费给大家解答。

(完)

转载于:https://my.oschina.net/BJCHEN/blog/3016694

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chouxian9255/article/details/100811338

智能推荐

(转载)java synchronized详解-程序员宅基地

文章浏览阅读422次。java synchronized详解记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块..._java make synchronized invalid

Android 多种投屏神器(Vysor,Total Control,scrcpy )-程序员宅基地

文章浏览阅读1.9w次,点赞6次,收藏32次。一,Vysor1,Vysor特点及优点特点或者说优点:极强的跨平台性能,Mac、Windows、Linux系统上都可以用;免费;无需Android系统Root 即可玩转电脑控制Android 设备;2,官网https://www.vysor.io/3,使用3.1,Win客户端(建议使用)直接下载windows客户端安装,运行就可以使用,使用也很简单,可以通过局域网和数据线连接Android设备,然后实现投屏;3.2,Chrome浏览器3.2.1,从官网Download进入_total control

Java反射机制_object o3 = m; object o4 = n; system.out.println(o-程序员宅基地

文章浏览阅读144次。概念:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。简单来说,反射机制指的是程序在运行时能够获取自身的信息。在 Java 中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。类的加载机制:new 对象()1.JVM加载对象.class文件1.1JVM在硬盘找对象.class文件并读取到内存中1.2JVM自动创建..._object o3 = m; object o4 = n; system.out.println(o3 == o4)

NDK各个版本,待后续更新_android-ndk-r10e和ndk 29差别-程序员宅基地

文章浏览阅读414次。ndk_r15c (July 2017)Windows 32-bit :https://dl.google.com/android/repository/android-ndk-r15c-windows-x86.zipWindows 64-bit :https://dl.google.com/android/repository/android-ndk-r15c-windows-x86_64.zipMac OS X :https://dl.google.com/android/repositor_android-ndk-r10e和ndk 29差别

Linux常用命令—grep_linux命令+grep-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏16次。简介grep命令(Global Regular Expression Print)是 Linux系统中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来 。grep 是linux中最为常用的三大文本(awk,sed,grep)处理工具之一,所以有必要掌握其用法。grep家族总共有三个成员构成:grep、egrep、fgrep。使用格式grep [选项] ..._linux命令+grep

关于the selection cannot be run on any server错误的问题,如何快速的解决。-程序员宅基地

文章浏览阅读3.9w次,点赞29次,收藏121次。最近在导入外来项目时,遇到了一个难题,就是出现了图中的错误。the selection cannot be run on any server(无法在任何服务器上运行所选内容)这个错误的原因在于Dynamic Web Module 的版本与server不匹配。Dynamic Web Module的版本可以通过右键项目名->properties->Project Facets可以..._the selection cannot be run on any server

随便推点

Cookie,会话,令牌-程序员宅基地

文章浏览阅读804次。会话cookieAre you new to web-development, feeling confused with different Web Storage elements? 您是Web开发的新手,对不同的Web存储元素感到困惑吗? If yes, then you are at the right place This article will give you a brief e..._会话和令牌

Linux查找文本中指定字符的小技巧_linux查找指定字符后的数据-程序员宅基地

文章浏览阅读3.6k次。在Linux的vi编辑器中,如果要查看指定文件中的某项内容,由于内容过于庞大,可以打开vi编辑器后再打一个【/】,括号中间的字符,然后输入你要查找的字符这样就可以找到你需要的字符了,方便我们查看大容量的日志文件。_linux查找指定字符后的数据

编译chromium 总结_<includepath>$(includepath);$(dxsdk_dir)include</i-程序员宅基地

文章浏览阅读2.5k次。编译chromium 总结http://www.chromium.org/developers/how-tos/build-instructions-windows这是官网的详细地址,但我只用他的说明还不够 可以参考这篇文章http://blog.sina.com.cn/s/blog_41608ead0101578b.htmlwin7+vs2010+vs2010SP1+DIR_$(includepath);$(dxsdk_dir)include

Struts-笔记-2-程序员宅基地

文章浏览阅读61次。2 .搭建Struts开发环境 2.1 搭建环境l 导入jar 包。 Add Library 导入jar包 l 建立一个配置文件:struts-config.xml &lt...

【杭电oj】1872 - 稳定排序(结构体排序)_wygoj-程序员宅基地

文章浏览阅读695次。稳定排序Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4632 Accepted Submission(s): 1802Problem Description大家都知道,快速排序是不稳定的排序方法。_wygoj

Java中 GC是什么_gc钱包是干嘛的?-程序员宅基地

文章浏览阅读2.3w次,点赞9次,收藏17次。Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,在使用JAVA的时候,一般不需要专门编写内存回收和垃圾清理代 码。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。电脑的内存大小的不变的,当我们使用对象的时候,如使用New关键字的时候,就会在内存中生产一个对象,但是我们在使用JAVA开发的时候,当一个对象使用完_gc钱包是干嘛的?

推荐文章

热门文章

相关标签