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和私有云都包括,大家可直观的进行体验。
除此之外我们还提供了详细的产品文档,以及多云管理介绍的博客和用例。
目前,行云管家已经连续三年保持云管理领域市场领先地位,我们正帮助 20000+企业级用户,管理着 100000 余台云主机。作为数字化解决方案领导者,行云管家将以持续创新的多云管理技术与方案,与企业携手努力,致力消除复杂性,简化百行百业的数字化转型之旅。
大家有不明白的地方,可以随时咨询我,我免费给大家解答。
(完)
Linux云主机 监控方案浅析的更多相关文章
- linux云主机怎么安装WDCP
linux云主机 教你成功安装WDCP的2个方法(第一个不成功就试第2个) 工具/原料 Xshell 云服务器 方法/步骤 1 先用Xshell连接你的服务器 2 输入一下代码 wget ...
- Linux云主机安装JDK,配置hadoop的详细方式
云主机我使用的是青云的,还有好多其他品牌,比如阿里云 unitedstack 等等. 注册完青云后,会有试用券发到账户,可以利用此券试用其服务. 1 首先创建好一个主机,按照提示选择好系统,创建好一个 ...
- OpenStack平台上,linux云主机可以使用xshell连接,但是无法xftp连接
笔者在OpenStack云平台上创建了CentOS6.6的云主机,用了一段时间后,发现xshell可以连接,但是xftp却连接不上. 于是进行伟大的百度操作,检查网络设置.ssh服务设置等,均正常,否 ...
- 挂载Linux云主机硬盘到本地计算机
现在移动硬盘已经是每个人的生活必需品了,当然网络也是我们生活的必需品,我们现在就是要用网络存储代替硬盘存储,当然再实际使用过程中需要考虑到以下两个问题: 网络延迟 云主机磁盘IO 以上两个关键 ...
- 制作linux云主机镜像
目录 制作linux云主机镜像 1.物理机环境准备 2.安装kvm虚拟机 3.操作虚拟机 4.在物理机上处理镜像 5.拷贝制作好的raw格式的镜像 6.发布镜像到云平台 制作linux云主机镜像 1. ...
- Linux云主机安全入侵排查步骤
导语 经常有用户报障系统被植入恶意程序,如挖矿软件.ddos攻击病毒.syn映射攻击病毒等,可以按照以下流程为用户排查入侵病毒类型: 一.定位病毒进程 对于用户反馈云主机性能卡顿,CPU和内存占用较高 ...
- 本地为Windows,使用Xshell登录Linux云主机
以某东的云主机为实例 1. 下载并安装远程登录软件 下载Xshell软件 下载后双击xshell5_5.0.1332.exe进行安装 2. 安装完成,打开Xshell,并点击新建,根据要求输入相应参数 ...
- linux云主机小技巧
微信服务器安装 安装库 python 3.5环境下 pip安装web.py时 会报错 "no module named "utils" 等问题 更换命令为“pip ins ...
- Azure Linux 云主机使用Root超级用户登录
Azure的Linux虚拟机是可以灵活使用root超级用户的管理员权限的: 1:使用sudo passwd root指令设置超级用户root密码: 使用创建Linux时设置的用户名和密码登陆,使用su ...
随机推荐
- NodeJS 实现阿里云推送。
虽然阿里云推送也有 NodeJS SDK ,只要在项目中引用 aliyun-sdk 就可以使用了.里面的推送功能了. 我在这里就不写怎么使用aliyun-sdk.给出来的DEMO是回调形式的.用起来有 ...
- 案例46-crm练习客户登录
1 login.jsp代码 <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- lua输入函数名字符串执行函数
str = "testA()"loadstring(str)() function testA() ------end 使用loadstring即可执行后面在xlua用了下发现不能 ...
- 【转】Python中不尽如人意的断言Assertion
原文地址:Python中不尽如人意的断言Assertion Python Assert 为何不尽如人意 Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛 ...
- tomcat局域网内发布html
1. 保证tomcat装好,启动 验证:浏览器输入:localhost:8080,看到下面页面表示成功 2. 把html文件或包含html的目录拷到Apach安装目录的Root目录下 (例如:C:\P ...
- BNU 4260 ——Trick or Treat——————【三分求抛物线顶点】
ial Judge Prev Submit Status Statistics Discuss Next Type: None None Graph Theory 2-SAT ...
- C++程序设计基础(5)sizeof的使用
1.知识点 (1)sizeof是一个单目运算发,而不是一个函数,其用于获取操作数所占内存空间的字节数. (2)sizeof的操作数可以使类型名,也可以是表达式,如果是类型名则直接获得该类型所占字节数, ...
- dpkg: error: dpkg status database is locked by another process 解决方法
使用dpkg -i/apt命令安装,报错: ------------------------------------------------------------- dpkg: error: dpk ...
- 在 UWP 应用中创建、使用、调试 App Service (应用服务)
在 Windows 10 中微软为 UWP 引入了 App Service (即应用服务)这一新特性用以提供应用间交互功能.提供 App Service 的应用能够接收来自其它应用传入的参数进行处理后 ...
- jq on方法绑定多个事件
一.jquery为多个选择器绑定同一个事件 $("#start,#end").on("click",function(){ alert("The pa ...