【视频】-《ECS 进阶概念-运维》 | 学习笔记(四)

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 快速学习【视频】-《ECS 进阶概念-运维》

开发者学堂课程【企业运维之弹性计算原理与实践【视频】-《ECS 进阶概念-运维》学习笔记(四),与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/1039/detail/15305


【视频】- 《ESC 进阶概念-运维》

 

内容介绍:

一、课程简介

二、ECS 远程方式

三、ESC 元数据&自定义数据

四、ECS 云助手

五、云助手功能演示

六、实例演示(一)

七、Sysak 工具

八、实例演示(二)

九、ECS 系统事件-概述

十、ESC 系统事件-事件状态

十一、ECS 系统事件-应用场景

十二、ECS 系统事件-事件处理

十三、ECS 进阶概念2

十四、实验-远程连接排查(方式一)

十五、远程连接排查(方式二)

十六、远程连接排查(方式三)

十七、CPU 指标

十八、排查案例

十九、案例排查演示

二十、小结

本课程主要包括了解云上系统事件,问题排查,ecs 运维以及演示四个部分。


十五、远程连接排查(方式二)

还有一个思路,先把服务再给它搞坏。把名字再给修改回去。又模拟到就开始坏掉的场景。image.png

1.查看命令含义

那么时候如果不想去一步步去尝试启动去看它的报错,有没有一步到位的办法?也是可以的,在ssh d服务里面,可以看一下它有个命令!

(1)、help

可以看一下下图地方,它提供了一些命令,就比如命令的help里可以看到,它提供了很多media。image.png

可以看到拿到命令之后,不知道怎么用,就像这样可以去看它的help。

(2)、name手册

或者是看它的name手册。看一下name手册,里面它就会详细打出来比如参数是干什么的?参数是干什么的?是ssh里面,命令其他系统里面都是有的。image.png

(3)、手册查找命令

它都会告诉用户有个使用手册,但手册可能它是一个英文的,大家可能要看一下有没有刚刚提到的一步到位的办法?不要每个去看,比如这地方,提供了一个/t的一个东西,/t参数是测试模式,去检查配置文件依赖的一些PR机是否是正常的,它自己去检查预期的,类似于一个预期的检测机制,可以看一下。/t看一下,之后它就告诉个地方。image.png

可以/t看一下,之后它就会告诉地方配置就已经告诉配置异常了,其实就按照刚才的思路去改就好,也不用每次去启动服务再去看。可以预启动一下,去检查一下,检查一下这些配置它到底有什么问题?是其中一种。然后就快点把它修好,看一下。这是一种方式。

2.运行服务测端口连接

多了一个点,写代码的时候要很小心。现在服务就起来了。那么下一步要做什么?测端口能不能连接,看能不能连接。输sshd,看下图地方已经让输密码。image.png

可以看到,已经连进去了,地方其实是跟上一种方法是一样的操作。

然后给看来,linux是两个同时登录的,linux是多用户同时登录的,可以支持多用户登录到机器上。然后远程地方就差不多是大概是这样。


十六、远程连接排查(方式三)

然后顺便演示一下,刚开始介绍的有两种方式,刚才VNC上面已经看了,VNC怎么去用。那workbench怎么去用。image.png

1.打开页面

也是打开一个页面。页面上,它可能会加一些实例信息,然后也是填,让填用户名密码这东西。把这些信息它会直接帮忙填好,因为是从对应的实例入口进来的。image.png

2.登录页面

进来它自己会识别到 linux,然后密码的用户名或者是root都会识别好,然后这地方也可以支持像证书登录,或者是这种凭据登录都是可以的。

然后有同学可能会想,端口不是22怎么办?不是22,点完整页面,其实可以改自定义。然后把密码输进去,确定之后,它就自动去登进去了。image.png

就在网页上登进去了,也是一样的,然后大家可以在地方做一些运维的动作,都是可以的。远程连接。


十七、CPU 指标

接下来介绍一个,也是云上常见的一个案例的一个排查,就比如一个CPU的问题。可以先介绍一下照片里面写的东西,再解释。

介绍一下CPU的一个问题。那云上可能熟悉的同学可能都知道可以有很多命令去查看cpu的情况,查看io的情况,使用率之类的。

1.top 命令

下面图,其实一个top的命令,top可以看到每个核cpu它的使用率是什么样的,当然这里面有很多参数,什么系统启动时间这些,大家都不用管,而且可能也有些基本信息,还是,load average, not load,地方其实提一个概念,在linux里面会给它定一个系统负载。

2.系统负载

系统负载什么概念?当它系统负载唯一的时候,那就表示这有一个盒处于打满的状态,红圈的地方为什么有三个值?它有三个值的意思它是一分钟、五分钟、15分钟三个值。然后当它唯一的时候,那就表示cpu有一盒被打满了不是打满,就相当于一个cpu处于一个满负荷的状态,但是满负荷它并不是cpU 一定要处于100%的使用率,它定义的规律,它可能还会有很多因素决定,比如一个r状态的进程或者t状态一个进程多少会决定一个root的值,有它都会决定的,所以在这看到系统荷载,下面会看到还有很多,比如us sy,还有ni、id,hi是什么意思,这些东西非常多,就一个cpu有这么多指标。

3.指标概念

这里简单提一下,因为概念不清楚,可能也没有办法去做一些排查,就可能对理解不够深入。

(1)、user ,system

比如us,user:看到它是一个用户态的,用户态mines就很博大精深,mines操作系统会有用户态和内核态,分为两个空间,内核态可能会管理一些比较危险的一些系统调用在里面,那么用户态用程序,客户的应用程序,一般是放在用户态运行,那么用户态通过一些系统调用,它可以把一些请求下发给内核态,内核态它去做一些这种高风险的,高危险的一些动作,下发到底层比如下发到java的硬件。它是避免用户它直接去调内核态的东西,因为内核态的东西随便调,风险可能很大。

US在用户态的一个cpu使用的一个百分比,那么system内核态的一个使用率的一个百分比。

(2)、ni

ni,其实其实关注的不是很多,但是也可以提一下,进程改变过优先级的进程占用cpu百分比,其实大家用的不是很多,但是可以关注一下,如果看到比较高了,知道它是什么。

(3)、idol

idol就很顾名思义,空闲的一个状态.

(4)、wa

WA,IO-wait这只是等待IO的一个情况,等待IO有哪些情况?哪些情况会等待IO?比如现在磁盘打满了,磁盘的每个盘它都有一个吞吐量上限,上限打满了,然后新的io下去之后,它肯定是要排队的,,它在一个队列排队,那么时候就相当于应用程序是在等i o的,时候等io的队列的越长,wa就会越高,相当于io可能有问题了,一个是打满了,而另一个当然还有极少数的情况下,比如硬盘坏了,就比如物理机的本地盘比硬盘有异常,比如刚才提到本盘实例,因为云盘的可用率是很高的,出现问题可能不是很大,一般都是本地盘的可能性应该大一点,比如那种底层出现问题了,io过不去,它也是看得到这种等待的。

(5)、hi,si

hi是硬件中断占比,其实提到了中断东西,其实操作性的原理里面的东西,博大的一个东西。

hi是什么?假设现在在给大家讲课,比如时候该突然一个电话打进来,我去接电话,那是电话对我来一个中断,要去响应中断,接电话去响应中断,然后把电话接完把电话挂了,然后再回来继续给大家介绍课,那么,中断处理完之后回到刚才的状态继续往下执行的任务,是操作系统,操作系统它要做的事情就这样。

那么哪些情况下需要中断,因为在系统里面有一些东西是需要高优先级处理的,比如有个网络的报文进来了,那肯定是需要优先去中断现在手上的事情要去处理网络报文,网络报文来实现处理,然后拿到底层,在虚拟化层面,就会给它发一个软中断,的报文发给虚拟机,然后给它发一个中断通知:有个包进来了,要去处理。要去做后面的响应处理,那么告诉到这。

当然软中断只是网络错其中一种,还有系统里面是有非常多软中断的,非常非常多的一个种类。当然这只是一种,现在硬件中断中的优先级比软中断的更高,硬件的一些事情是更高的一个事情,然后是中断占比。

(6)、st

然后ST, ST其实大家可能接触的更少,ST其实它是一般在虚拟机层面可能会有偷走的一个字眼,怎么理解偷走?之前介绍入门级实例是什么,它有一个特点,它是一个共享的。它共享的那就可能存在一些这种资源争抢,不同的一个虚拟机之间进行一个CPU之间的争抢,那么情况下,在虚拟机内部,看到它的ST,它的ST可能会比较高一点。意味着它是被偷走的一个资源。

但是现在企业就实例了,它都是企业的实例,每一个,比如十个盒子!假设买了一个十盒机器,当然不一定有规格,举个例子。这里每个盒,其实在物理机上面就企业级的实例都是给它绑定到唯一一个物理机的CPU盒上的,一一绑定的,别的机器它也是一一绑定的,就各自的完全独立了,就别人用的再多都不会有影响我们的性能,然后这种实例,是不存在这种争抢的一个情况。所以上一章也提到这种事情论文集,建议都是针对入门的,一些业务不重要的业务或者测试业务去使用,也是提到的一点。

4. 云监控

然后左下角的图那其实是一个云监控,云监控图cpu使用率不只是在机器内可以看,在机器外部也可以看。

机器外部云监控是怎么去做的?云监控它也是有一个客户端的,客户端也是在装在了ecs内部,它会定期去采集类似于这种top的一些结果,当然它不一定是采top,可能它一般是去读proc下面内核,调内核的一些接口,proc下面是内核的一些接口,它把那些接口里面调的数据出来进行一些计算自己去拿到的,但它不去执行这种新命令。

这是CPU的一个指标,简单的一个指标。image.png


十八、排查案例

下面案例,上面看到top命令,也介绍了这些指标的一些用处,那现在来看一下案例。image.png

案例sy也比较高的,两个盒的sy都比较高,然后剩下的盒的软中断也比较高,那么这种情况下怎么去查?第一个软中断比较高,第二个内核态的空间也比较高。还有用户态,用户态其实还好,并不是很高。但是总体加起来,它的性能可能会比较高一点。它的cpu占有率可能比较高一点。

 

十九、案例排查演示

1. nginx进程

看一下测试机,切一下屏幕。下图屏幕里面登到一台机器上来,刚刚和上面一样的一个测试机!测试机上面就大概是模拟的场景,sy也比较高。si比较高sy也比较高,然后怎么去查,看到现在看到现象,

其实top里面还有明确的一个点。地方有nginx两个进程。可以看到除了上面看到的整体的一个指标,可能还能看到上面的两个进程是它使用率也很高。image.png

2.访问日志

现在知道它是nginx进程,nginx进程怎么去排查?nginx业务现在表现是否正常的?地方需要结合大家的一些业务去分析,场景到底是不是正常的?比如一方面可以根据比如系统日志,nginx日志一般会有访问日志的,看一下访问日志的请求,是不是业务请求?

为什么?因为有很多请求,就比如服务是暴露在公网上的,那么共网上是很多其它的用户都是可以访问的,它是不限的,那么这种情况下可能会有些攻击性能,那么可以去看下日志。下图看到日志,日志很大。image.png

# du -sh可以查看日志多大,已经是19个g的日志,地方就明显感觉,如果了解自己业务的可能就会知道,业务不可能这么大,没有这么大的一个业务。image.png

然后可以看一下日志,可以看到因为这是测试模拟的,所以用的是一个工具来压测,可以看到请求很奇怪,全是一种请求,而且全是一个IP,那么就有理由怀疑请求它是一个攻击,可能不是的业务请求,业务请求比如经常都会带一些URL在后面之类的,那完全对一个页面扫描的肯定是不符合预期,那么这可能是一个攻击。image.png

3.cc 工具

那么这种情况下,因为有几种方式,因为比较简单,它是单ip的,那可以在安全组里面把ip屏蔽掉,那它的业务它就进不来了。这种事情是属于cc工具,属于cc应用层面的一些工具。image.png

比如是模拟访问一个页面,然后cc工具其实它的目的也很简单,把的资源耗尽,没法去提供正常服务,就比如去刷一个页面,页面可能要查数据库,同时十个客户端过来发,和同时一百个客户端过来请求,然后当请求达到一定量级的时候,那数据库连接可能就被打爆了,打爆了之后正常业务可能就没法响应了,相对于你的服务就挂掉了,然后这种情况下,是可以通过安全组去设ip去拦截的。

但是有一种情况通常的cc工具它都不会是单一 ip,它一般的时候会有很多的那种叫肉机也好,叫僵尸机器也好,都可以,它可以批量来发,不同的ip过来,所以,这种情况下通常是建议用wife去防护,wife它可以自动识别这类的工具,。

4.查看指标增长趋势

重点回到CPU高的问题上来!CPU高看那些东西?上面看到了基本的这些指标,si有一点高,但是可以了解它是大概是怎么增长的。

在proc里面它有一个softirqs文件,其实proc里面不是一个真正的文件,它其实是内核提供的一个接口,看的其实是内核的接口,接口会告诉当前里面有哪些东西。

(1)、si 高

然后连续刷了几次,看一下里面东西,就比如下图image.png

看到它有cpU 0 ,CPU1,然后这里面会有些中断,中断里面可以看到也有个net _rx,rx其实网络的一个收包,net _tx是网络的一个发包。那么可以看到收包的中断是非常多的,刚才看到CPU0的SI是比较高的,那这也是CPU0的中断是比较高的,而且第二次执行中间间隔几秒钟,发现它已经增加了非常多了,这两个之间差值比较大了。说明它增加的速度是比较快的,这方面就可以断定,si高是在处理网络的一个豹纹。

(2)、perf工具查热点调用

然后剩下的,如果还想去看,可以去抓一下内核态的一些热点调用,就比如经常会用到一个工具叫perf。先安装一下,机器应该是没有的。image.png

把工具它是做什么用的?它会在内核态去加一些keep public的一些探测点,也不介绍了,东西很深入。然后它会加一些探测点之后,去把这些热点调用函数抓出来。

这些地方可以看得到,当前内核态的热点调用都在这里,然后停一下。可以看一下第一个大概可以看得到,在do_softirq,看名字,其实能猜到它在处理软中断,其实它的软中断的一部分。

然后另一个在不断的做task的一个切换,上下文切换,进程一个切换,所以这些都是系统态的一些消耗,能看到当时这些内部在做什么,它是按百分比排下来的,都按占比在排着。image.png

5.处理攻击

(1)、处理方法

nginx导致的,而且也怀疑nginx它也是被攻击的一个情况所以一般怎么去处理?它就可以有两种方式,第一个安全组把它屏蔽掉,第二个可以在机器内加table的规则,然后把它屏蔽掉,这些都是可以的,然后这是一方面。

(2)、云监控

然后另一方面,是怎么处理?第二个也可以顺便介绍一下,在这是有云监控的,可以在地方可以去看一下。对于cpu视频使用率是多少,东西可以看到的,包括top里面看到的负载,这些都是在这可以看到的,一个整体的功能情况,这些数据都是来源于云监控,这是云监控提供的。image.png

包括磁盘的一些读写,模拟的case里面,其实它没有太多的io的动一个作,下面共网都是有的,这些在云监控里面再详细介绍一下,知道在地方查看就可以。image.png

6.其他情况

然后是云上的CPU的排查过程,但是CPU排查过程,它不一定是像样子的,可能有千奇百怪,比如看到是有些场景是属于机器中毒了,可能中了一个挖矿病毒,会不断的消耗的CPU资源,计算资源,它去做一个挖矿的计算,那么这可能是千奇百怪的,大家看到的进程可能也千奇百怪。

所以拿到这样的case之后,第一个要确认机器。因为是管理员,要很清楚的知道的机器上是什么业务,进程是不是的业务进程?如果不是,那么可以果断的把它杀掉,如果是,那可能要分析业务,它的业务日志是否正常?然后看一下它业务是否符合预期的?如果不符合,那么可能需要联系一下,比如业务方的一些负责人,因为通常作为运维,作为运维不一定有业务团队那么了解它的业务场景,所以,可能需要它们去协助看一下业务是否正确,然后如果确认清楚之后,那么可以再考虑是该业务优化,还是该拦截掉,确定了逻辑之后,再去执行对应的动作。基本上在处理这类问题的,套路其实差不多是这样子。


二十、小结

然后课程的差不多就到这了,后面就简单做一个小结。简单做一个小结。

1. ECS 远程方式

一开始介绍的ECS的远程的一个基本方式,前面的课程包括ECS的一些基本概念之类的。这可能来扩展了一些。在创建了ecs之后管理,这有三种方式, ssh客户端自己找的第三方。

workbench和VNC这两种云上提供的,那么这两种区别是什么?区别workbench是一个网页版的ssh,这还是依赖网络去连接的。那么vnc,其实是底层转发出来的一个渠道,那么时候通常用于问题排查,比如网络断了,无法连接了,那么通过vnc去看,那么是远程这块。

2. 弹性网卡

然后弹性网卡这块也介绍到了很多场景,就比如多网卡、多ip的一些需求,或者是做一些故障转移,或者是做一些sip协议它需要一些直通模式这些场景,是弹性网卡的应用,大家可以下来看一下。

还有一种有些场景可能需要配一些多个公网出口,客户在近期内它可能自己去控制一些业务,业务在哪一个出口出去,都是有的,这样需求。

3. 元数据

接下来是元数据,元数据其实包含了自定义数据和基本的一些实例的一些数据。实例数据它是包括实例规格,实例的网络类型,实际的公共ip mac地址,这些都是在里面配置的,可以再组织内部去拿到这些信息,然后以便让脚本,或者一些自动化的功能可以自动跑下去。

自定义东西不是阿里提供的,但是提供了一个入口,用户可以把自己的一些数据,写成脚本或者自己需求写成脚本,让ecs在创建的过程中自动把任务给执行掉,那么就完成了这样一个自动化配置,是自定义数据。

4. 云助手

接下来就介绍的是云助手,云助手主要是也演示了,批量执行,定时执行,以及包括自动化执行,包括实验也演示了,包括管理软件生命周期,可以做一个了解,可能没去演示,可以定期去检测一些软件的一些功能,或者是该更新,是不是该换掉之类的,也可以做一些这种定制的任务。

5. 系统事件

下一个是系统的事件,是阿里云推的可获的一个事件,告诉客户产生了计划内的事件或者非预期的事件,或者需要做一个架构升级,或者是存在ddos攻击安全事件,或者实例发生的变化。都是可以推送到系统事件里面去,在云监控里面可以去订阅,去消费事件,消费之后它可以告诉:第一可以发通知,第二可以推送到一些消息队列。那么实现后面的一个自动化的操作,自动化的一些东西。

6.问题排查

后面的介绍了两个案例的一个排查,一个是无法远程,一个是cpu的一个使用率异常。大概的一个排查思路,就比如无法远程,可能通过先探测一下网络正常,比如pain,telnet看一下是否正常,然后安全组方便是否放行,接下来再通过vnc进去看一下远程服务是不是监听的?是不是运行的?如果没有运行,怎么去看它的日志?怎么去排查?是一个基本的思路。

7. cpu使用

然后下一个cpu使用,简单介绍了一下CPU的一些指标!各项指标以及举了一个例子。那当然,例子是比较常见的一个例子,它也里面也涵盖的比较多,涵盖lsy和si两个指标,还有一个ulr,ulr其实并不太高。但是大家也可以做一个了解,这种通常情况下遇到的可能是比较奇怪的一些case可能它si非常高,或者si比较高,其中有一项比较高,是相当于同时覆盖了两个场景。

可以了解一下这方面的一个排查思路,比如sql要看各业务,要去评估它是不是在正常业务?如果不是,怎么去屏蔽它。如果是正常业务,那是不是业务该扩容或者优化,扩容东西在后面会介绍ess以及实现一个自动化的一个扩容,都是会介绍到的。image.png

以上整体就是所有的课程。

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 运维 安全
2024-3-18隐语学习笔记:数据可信流通,从运维信任到技术信任
数据要素可信流通,重构技术信任体系。信任四要素:身份可确认,利益可依赖,能力有预期,行为有后果。外循环中四要素遭到破坏,导致信任降级甚至崩塌:责任主体不清,能力参差不齐,利益诉求不一致,责任链路难追溯。数据可信流通 需要从运维信任走向技术信任。
|
2月前
|
存储 弹性计算 数据可视化
ECS实例概念
ECS实例是云上的虚拟计算服务器
29 2
|
4月前
|
存储 运维 应用服务中间件
[运维日志] Web 服务器日志依日期归档(Powershell 实现,附源代码)
[运维日志] Web 服务器日志依日期归档(Powershell 实现,附源代码)
76 0
|
4月前
|
缓存 网络协议 Linux
Linux C/C++ 开发(学习笔记十三):百万并发的服务器实现
Linux C/C++ 开发(学习笔记十三):百万并发的服务器实现
55 0
|
5月前
|
弹性计算 运维 安全
带你读《云上自动化运维宝典》——ECS省钱指南来啦!万字长文教你如何选择与业务形态最匹配的付费方式(1)
带你读《云上自动化运维宝典》——ECS省钱指南来啦!万字长文教你如何选择与业务形态最匹配的付费方式(1)
364 0
|
22小时前
|
开发框架 Java .NET
什么是JavaWeb(概念|应用|服务器)?
什么是JavaWeb(概念|应用|服务器)?
5 1
|
4月前
|
弹性计算 运维 安全
ECS系统如何高效运维|开发者分享会
今天分享的内容来自阿里云弹性计算技术专家郑大禹的“ECS系统高效运维实践”。全文围绕ECS运维的痛点和挑战、如何实现高效运维以及典型案例分享这3个主题内容进行讲解。
111427 4
|
2月前
|
开发框架 Java .NET
JavaWeb概念、应用、服务器
静态网站是指在服务器上预先准备好的网页内容,用户访问时服务器直接将这些静态页面发送给用户浏览器,没有经过额外的处理或数据库查询。
12 0
|
2月前
|
存储 弹性计算 固态存储
ecs基本概念
ecs基本概念
22 1
|
3月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
134 0