1、首先打开手机网络检查网络。
2、其次打开手机进行测试网络连接是否异常。
3、最后点击刷新重新进入即可。
由于移动云管理平台需要与云之家、云企业平台等其他平台进行数据交互,为避免由于 *** 作系统时间异常而关联引发其他未知的错误,如云之家待办消息推送失败等,因此在移动云管理平台保存设置时,会强制对当前服务器的 *** 作系统时间的正确性进行检查,包含年、月、日、时、分。
建议设置服务器的 *** 作系统时间与Internet时间服务器同步,或根据正确的北京时间手工调整 *** 作系统时间,且时间差在1分钟以内。
注意手工修改后务必观察一段时间,确保设置不会自动被还原,如出现自动还原的情况,建议与客户的IT部门联系,检查是否受客户网络环境下策略设置的影响。智能运维(AIops)是目前 IT 运维领域最火热的词汇,全称是 Algorithmic IT operations platforms,正规翻译是『基于算法的 IT 运维平台』,直观可见算法是智能运维的核心要素之一。
本文主要谈算法对运维的作用,涉及异常检测和归因分析两方面,围绕运维系统Kale 中 skyline、Oculus 模块、Opprentice 系统、Granger causality(格兰杰因果关系)、FastDTW 算法等细节展开。
一、异常检测
异常检测,是运维工程师们最先可能接触的地方了。毕竟监控告警是所有运维工作的基础。设定告警阈值是一项耗时耗力的工作,需要运维人员在充分了解业务的前提下才能进行,还得考虑业务是不是平稳发展状态,否则一两周改动一次,运维工程师绝对是要发疯的。
如果能将这部分工作交给算法来解决,无疑是推翻一座大山。这件事情,机器学习当然可以做到。但是不用机器学习,基于数学统计的算法,同样可以,而且效果也不差。
异常检测之Skyline异常检测模块
2013年,Etsy 开源了一个内部的运维系统,叫 Kale。其中的 skyline 部分,就是做异常检测的模块, 它提供了 9 种异常检测算法 :
first_hour_average、
simple_stddev_from_moving_average、
stddev_from_moving_average、
mean_subtraction_cumulation、
least_squares
histogram_bins、
grubbs、
median_absolute_deviation、
Kolmogorov-Smirnov_test
简要的概括来说,这9种算法分为两类:
从正态分布入手:假设数据服从高斯分布,可以通过标准差来确定绝大多数数据点的区间;或者根据分布的直方图,落在过少直方里的数据就是异常;或者根据箱体图分析来避免造成长尾影响。
从样本校验入手:采用 Kolmogorov-Smirnov、Shapiro-Wilk、Lilliefor 等非参数校验方法。
这些都是统计学上的算法,而不是机器学习的事情。当然,Etsy 这个 Skyline 项目并不是异常检测的全部。
首先,这里只考虑了一个指标自己的状态,从纵向的时序角度做异常检测。而没有考虑业务的复杂性导致的横向异常。其次,提供了这么多种算法,到底一个指标在哪种算法下判断的更准?这又是一个很难判断的事情。
问题一: 实现上的抉择。同样的样本校验算法,可以用来对比一个指标的当前和历史情况,也可以用来对比多个指标里哪个跟别的指标不一样。
问题二: Skyline 其实自己采用了一种特别朴实和简单的办法来做补充——9 个算法每人一票,投票达到阈值就算数。至于这个阈值,一般算 6 或者 7 这样,即占到大多数即可。
异常检测之Opprentice系统
作为对比,面对相同的问题,百度 SRE 的智能运维是怎么处理的。在去年的 APMcon 上,百度工程师描述 Opprentice 系统的主要思想时,用了这么一张图:
Opprentice 系统的主体流程为:
KPI 数据经过各式 detector 计算得到每个点的诸多 feature;
通过专门的交互工具,由运维人员标记 KPI 数据的异常时间段;
采用随机森林算法做异常分类。
其中 detector 有14种异常检测算法,如下图:
我们可以看到其中很多算法在 Etsy 的 Skyline 里同样存在。不过,为避免给这么多算法调配参数,直接采用的办法是:每个参数的取值范围均等分一下——反正随机森林不要求什么特征工程。如,用 holt-winters 做为一类 detector。holt-winters 有α,β,γ 三个参数,取值范围都是 [0, 1]。那么它就采样为 (02, 04, 06, 08),也就是 4 3 = 64 个可能。那么每个点就此得到 64 个特征值。
异常检测之
Opprentice 系统与 Skyline 很相似
Opprentice 系统整个流程跟 skyline 的思想相似之处在于先通过不同的统计学上的算法来尝试发现异常,然后通过一个多数同意的方式/算法来确定最终的判定结果。
只不过这里百度采用了一个随机森林的算法,来更靠谱一点的投票。而 Etsy 呢?在 skyline 开源几个月后,他们内部又实现了新版本,叫 Thyme。利用了小波分解、傅里叶变换、Mann-whitney 检测等等技术。
另外,社区在 Skyline 上同样做了后续更新,Earthgecko 利用 Tsfresh 模块来提取时序数据的特征值,以此做多时序之间的异常检测。我们可以看到,后续发展的两种 Skyline,依然都没有使用机器学习,而是进一步深度挖掘和调整时序相关的统计学算法。
开源社区除了 Etsy,还有诸多巨头也开源过各式其他的时序异常检测算法库,大多是在 2015 年开始的。列举如下:
Yahoo! 在去年开源的 egads 库。(Java)
Twitter 在去年开源的 anomalydetection 库。(R)
Netflix 在 2015 年开源的 Surus 库。(Pig,基于PCA)
其中 Twitter 这个库还被 port 到 Python 社区,有兴趣的读者也可以试试。
二、归因分析
归因分析是运维工作的下一大块内容,就是收到报警以后的排障。对于简单故障,应对方案一般也很简单,采用 service restart engineering~ 但是在大规模 IT 环境下,通常一个故障会触发或导致大面积的告警发生。如果能从大面积的告警中,找到最紧迫最要紧的那个,肯定能大大的缩短故障恢复时间(MTTR)。
这个故障定位的需求,通常被归类为根因分析(RCA,Root Cause Analysis)。当然,RCA 可不止故障定位一个用途,性能优化的过程通常也是 RCA 的一种。
归因分析之 Oculus 模块
和异常检测一样,做 RCA 同样是可以统计学和机器学习方法并行的~我们还是从统计学的角度开始。依然是 Etsy 的 kale 系统,其中除了做异常检测的 skyline 以外,还有另外一部分,叫 Oculus。而且在 Etsy 重构 kale 20 的时候,Oculus 被认为是10 最成功的部分,完整保留下来了。
Oculus 的思路,用一句话描述,就是:如果一个监控指标的时间趋势图走势,跟另一个监控指标的趋势图长得比较像,那它们很可能是被同一个根因影响的。那么,如果整体 IT 环境内的时间同步是可靠的,且监控指标的颗粒度比较细的情况下,我们就可能近似的推断:跟一个告警比较像的最早的那个监控指标,应该就是需要重点关注的根因了。
Oculus 截图如下:
这部分使用的 计算方式有两种:
欧式距离,就是不同时序数据,在相同时刻做对比。假如0分0秒,a和b相差1000,0分5秒,也相差1000,依次类推。
FastDTW,则加了一层偏移量,0分0秒的a和0分5秒的b相差1000,0分5秒的a和0分10秒的b也相差1000,依次类推。当然,算法在这个简单假设背后,是有很多降低计算复杂度的具体实现的,这里就不谈了。
唯一可惜的是 Etsy 当初实现 Oculus 是基于 ES 的 020 版本,后来该版本一直没有更新。现在停留在这么老版本的 ES 用户应该很少了。除了 Oculus,还有很多其他产品,采用不同的统计学原理,达到类似的效果。
归因分析之 Granger causality
Granger causality(格兰杰因果关系)是一种算法,简单来说它通过比较“已知上一时刻所有信息,这一时刻 X 的概率分布情况”和“已知上一时刻除 Y 以外的所有信息,这一时刻 X 的概率分布情况”,来判断 Y 对 X 是否存在因果关系。
可能有了解过一点机器学习信息的读者会很诧异了:不是说机器只能反应相关性,不能反应因果性的么?需要说明一下,这里的因果,是统计学意义上的因果,不是我们通常哲学意义上的因果。
统计学上的因果定义是:『在宇宙中所有其他事件的发生情况固定不变的条件下,如果一个事件 A 的发生与不发生对于另一个事件 B 的发生的概率有影响,并且这两个事件在时间上有先后顺序(A 前 B 后),那么我们便可以说 A 是 B 的原因。』
归因分析之皮尔逊系数
另一个常用的算法是皮尔逊系数。下图是某 ITOM 软件的实现:
我们可以看到,其主要元素和采用 FastDTW 算法的 Oculus 类似:correlation 表示相关性的评分、lead/lag 表示不同时序数据在时间轴上的偏移量。
皮尔逊系数在 R 语言里可以特别简单的做到。比如我们拿到同时间段的访问量和服务器 CPU 使用率:
然后运行如下命令:
acc_count<-scale(acc$acc_count,center=T,scale=T)
cpu<-scale(acc$cpuload5,center=T,scale=T)
cortest(acc_count,cpu)
可以看到如下结果输出:
对应的可视化图形如下:
这就说明网站数据访问量和 CPU 存在弱相关,同时从散点图上看两者为非线性关系。因此访问量上升不一定会真正影响 CPU 消耗。
其实 R 语言不太适合嵌入到现有的运维系统中。那这时候使用 Elasticsearch 的工程师就有福了。ES 在大家常用的 metric aggregation、bucket aggregation、pipeline aggregation 之外,还提供了一种 matrix aggregation,目前唯一支持的 matrix_stats 就是采用了皮尔逊系数的计算,接口文档见:
>
IT产品主要包括以下几类:
1、计算机及软件:计算机系统、笔记本电脑、中央处理器、键盘、打印机、显示器、扫描仪、硬盘驱动器、电源等部件;以磁盘、磁带或只读光盘等为介质。
2、电讯产品:电话机、可视电话、传真机、电话交换机、调制解调器、送受话器、应答机、广播电视传输接收设备、寻呼机等。
3、半导体、半导体生产设备:各种型号和容量的芯片及晶片;包括多种生产半导体的设备和测试仪器、如蒸汽析出装置、旋转式甩干机、刻机、激光切割机、锯床及切片机、离心机、注射机、烘箱及加热炉、离子注入机、显微镜、检测仪器,以及上述产品的零部件和附件。
4、科学仪器:测量和检测仪器、分色仪、分光仪、光学射线设备等。
5、其他产品:文字处理机、计算器、现金出纳机、自动提款机、静止式变压器、显示板、电容器、电阻器、印刷电路、电子开关、连接装置、电导体、光缆、复印设备、计算机网络(局域网、广域网设备)、液晶显示屏、绘图仪、多媒体开发工具等。
扩展资料
IT产品的平均生命周期大约为5年,但有些应用程序驻留在相同硬件上的时间会比这更长。
IT设备为组织创造价值,在于IT数据存储和利用,应该权衡其内在价值,而不是作为二手设备卖掉的价格。最佳硬件更换时间是当服务器内在价值降低并且工作价值也下降时。自动化资产管理工具可以帮助用户准确评估折旧率。
IT设备的内在价值会因为其他组织需要备件和零部件而保持,但这并不是二手IT系统的唯一市场。
参考资料来源:百度百科-互联网技术
参考资料来源:百度百科-信息技术产品协议
随着互联网技术的不断发展,我们在进行服务器开发方面也掌握了很多的开发部署技术。今天,北京IT培训就给大家简单来介绍一下,都有哪些服务器开发部署方法是值得我们使用的。
停机部署
停机部署其实是简单粗暴的方式,就是简单地把现有版本的服务停机,然后部署新的版本。在一些时候,我们必需使用这样的方式来部署或升级多个服务。比如,新版本中的服务使用到了和老版本完全不兼容的数据表的设计。这个时候,我们对生产有两个变更,一个是数据库,另一个是服务,而且新老版本互不兼容,所以只能使用停机部署的方式。
这种方式的优势是,在部署过程中不会出现新老版本同时在线的情况,所有状态完全一致。停机部署主要是为了新版本的一致性问题。
这种方式不好的问题就是会停机,对用户的影响会很大。所以,一般来说,这种部署方式需要事前挂公告,选择一个用户访问少的时间段来做。
蓝绿部署
蓝绿部署与停机部署大的不同是,其在生产线上部署相同数量的新的服务,然后当新的服务测试确认OK后,把流量切到新的服务这边来。蓝绿部署比停机部署好的地方是,它无需停机。
我们可以看到这种部署方式,就是我们说的预发环境。在我以前的金融公司里,也经常用这种方式,生产线上有两套相同的集群,一套是Prod是真实服务的,另一套是Stage是预发环境,发布发Stage,然后把流量切到Stage这边,于是Stage就成了Prod,而之前的Prod则成了Stage。有点像换页似的。
这种方式的优点是没有停机,实时发布和升级,也避免有新旧版本同时在线的问题。但这种部署的问题就是有点浪费,因为需要使用双倍的资源(不过,这只是在物理机时代,在云计算时代没事,因为虚拟机部署完就可以释放了)。
另外,如果我们的服务中有状态,比如一些缓存什么的,停机部署和蓝绿部署都会有问题。
滚动部署
滚动部署策略是指通过逐个替换应用的所有实例,来缓慢发布应用的一个新版本。通常过程如下:在负载调度后有个版本A的应用实例池,一个版本B的实例部署成功,可以响应请求时,该实例被加入到池中。然后,版本A的一个实例从池中删除并下线。
这种部署方式直接对现有的服务进行升级,虽然便于 *** 作,而且在缓慢地更新的过程中,对于有状态的服务也是比较友好的,状态可以在更新中慢慢重建起来。但是,这种部署的问题也是比较多的。
在发布过程中,会出现新老两个版本同时在线的情况,同一用户的请求可能在新老版中切换而导致问题。
作为企业的运维人员,需要负责公司所有服务器、网络等硬件平台的运维工作,对每台服务器的状况,如磁盘、内存、网络、CPU等资源状况要有明确的了解,还要定期进行巡检和修复,避免服务器发生故障,导致公司业务的开展。但运维人员的精力是有效的,一旦管理的服务器过多,而管理效率无法提升,就有可能造成服务器故障,不利于公司业务的开展。那么,中小企业的IT运维人员如何才能高效地管理多台服务器呢?
一个优秀的运维人员,应该学会合理利用工具。而个人对服务器进行有效的监控和管理,除了传统的脚本命令,通过集群式面板工具,效率将会大大提高。通过面板工具,我们可以添加多台服务器进行管理维护。什么CPU持续过高、内存占用太多、磁盘空间不足、日志报错等问题,在面板工具中,我们都可以直观明了地发现问题,从而用最快速度解决问题,不必再耗费过多的时间重复这些基础、繁琐的工作。
而像我们这种服务器数量多且繁杂的,对于面板工具的挑选,最重要的一点就是添加服务器的限制少。以我现在在用的云帮手为例,全面兼容所有云服务商,同时兼容Windows、CentOS、Ubuntu、Debian、OpenSUSE、Fedora等云服务器 *** 作系统,对服务器、主机、站点的数量没有限制,哪怕我加了两百多台服务器,依旧运行得很流畅。
云帮手基础功能十分完善,资源监控/告警、安全防护、环境部署、站点管理、远程控制等功能在日常服务器的管理中帮助很大,集群化管理让我们不用再一台台服务器的去运行脚本修复问题,一键式的傻瓜 *** 作也让新加入团队的运维新人能够快速上手。更值得一提的是一键安全巡检和一键修复功能,只需要对每台服务器定期进行检测和修复,就能让隐患在最快的时间内发现并解除,避免因服务器故障而导致业务无法开展,让公司业务开展得更加顺畅。
在工作中,找到一款合适的工具,不仅能提高自己的工作效率,也是对公司发展的一种帮助,不止是像我们这样的运维岗位,我觉得不同的岗位也会有相应的工具能给予帮助,也可以分享一下你们工作中常用的工具,大家一起学习一下~。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)