openstack实例控制台显示响应时间过长_监控OpenStack的技巧

如果你以前曾在云平台上工作过,你一定熟悉这些系统的分布式和解耦性质。解耦的分布式系统依赖于微服务来执行特定的任务,每个微服务都会暴露自己的REST(表示状态转移)API。这些微服务通常以诸如RabbitMQ或QPID等消息中间件的形式通过轻量级消息层相互通信。这正是OpenStack的工作原理。每个主要的OpenStack组件(Keystone、Glance、Cinder、Neutron、Nova等)公开REST端点,组件和子组件通过消息中间件进行通信。这种方法的优点首先是允许将故障分配给特定组件,其次是云基础设施运营商可以以水平方式扩展所有服务,并智能分配负载。然而,这种分布式解耦系统虽然非常有利,但也带来了固有的挑战,如何正确监控OpenStack服务。下面我们针对OpenStack服务监控的具体情况所面临的真实挑战以及每个难题可能的解决方案。

ef6a27c34a47ecfc5cf2945065cb6166.png

挑战一:系统不是一个整体

OpenStack的非整体性和解耦性通常被强调为其主要优点。这当然是一个重要的优势。然而,这显然会使任何监控整体服务状态的尝试变得复杂。在每个组件执行一个特定任务的分布式系统中,每个组件进一步分布到多个子组件中,因此,不难理解当特定一部分软件发生故障时,确定对服务的影响是多么困难。克服这个困难的第一步是了解云。你需要确定所有主要组件之间的关系,然后确定每个独立的特定服务之间的关系,它们的故障可能影响整体服务。简单地说,你需要知道云中所有组件之间的关系。考虑到这一点,不仅需要监视每个单独组件的状态,还要确定其他服务如何受到故障的影响。例如,如果Keystone死机,没有人能够获取服务目录或登录任何服务,但这通常不会影响虚拟机或其他已建立的云服务,除非重新启动服务且Keystone仍然宕机。然而,如果Apache失效,通过Apache工作的Keystone和其他类似的API服务可能会受到影响。因此,监控平台或解决方案不仅必须能够评估各个服务的状态,而且还要能够在服务故障之间进行关联,以便检查对整个系统的真正影响,并相应地发送警报或通知。

挑战二:OpenStack不仅仅是OpenStack

基于OpenStack的云不仅是分布式和解耦式系统,也是一种可在操作系统和其他在云基础设施中或与之相关的设备中创建资源的编排解决方案。这些资源包括虚拟机、持久卷、网络实体和临时磁盘以及许多其他小型系统。因此,监测解决方案必须考虑到这些基础组件。虽然这些资源可能不太复杂,并且不太容易出现故障,但是当它们停止运行时,主要OpenStack服务中的日志可能会掩盖真实的原因。它们仅在受到影响的OpenStack服务中显示结果,而不显示设备或失效的操作系统软件的实际根本原因。例如,如果libvirt失效,组件Nova将无法部署虚拟实例。 Nova-compute作为服务将被启动并运行,但在部署阶段实例将失败。为了检测这一点,你需要在nova-compute日志之外还监控libvirt。因此,有必要检查底层软件和主要组件之间的关系以及监控最终的链接,并考虑所有最终服务的一致性测试。需要监控内容包括存储、网络、hypervision层、每个单独的组件以及之间的关系。

挑战三:跳出固有思维模式

Cacti、Nagios和Zabbix是OpenSource监控解决方案的好例子。这些解决方案定义了一组非常具体的度量标准,用于识别操作系统上的可能问题,但是它们不提供确定更复杂的故障情况或甚至服务状态所需的专门的指标。这是需要有创造性的地方。你可以实施专门的指标和测试,以定义服务是否正常、降级或完全失败。像OpenStack这样的分布式系统,其中每个核心服务都暴露了一个REST API,并且连接到基于TCP的消息服务,容易受到网络瓶颈、连接池耗尽和其他相关问题的影响。许多相关服务连接到基于SQL的数据库,这可能会耗尽其最大连接池,意味着需要在监控解决方案中实施正确的连接状态监控指标,以检测可能的、影响API的连接相关问题。此外,可以构建cli测试来检查端点状态并测量其响应时间,这可以被转换成实际显示服务真实状态的指标。上述每一个监控解决方案和大多数其他商业或OpenSource解决方案可以通过自行设计专门指标来进行扩展。命令“time OpenStack catalogue list”可以测量Keystone API响应时间,评估结果,并在结果不符合预期时产生人工故障状态。此外,可以使用简单的操作系统工具,如“netstat”或“ss”,来监控API端点的不同连接状态,并了解服务中可能出现的问题。OpenStack云依赖关系的关键部分也可以这样做。请注意,消息中间件失败基本上将“杀死”OpenStack云。关键是不要偷懒!不要只用默认的指标,而是应该用与自己服务相关的指标。

挑战四:人为因素

人为因素关乎一切。没有经过测试的情景响应程序,单一故障不仅本身是一个问题,还将带来造更多的问题。在监控解决方案中云基础设施的任何事故及其相关警报中都应该有明确的记录,以清楚的步骤来解释如何检测、遏制和解决问题。人为因素必须考虑,即使有一个可以关联事件和建议适当的解决方案来检测事故的聪明系统。请务必记住,如果系统不正确或不完整,那么输出也将不准确或不完整。

总结一下,OpenStack监控不一定很困难,最重要的是要彻底。每个单独的服务以及与其他服务的互动都需要仔细监控。特殊指标甚至可以自己实现。通过一些TLC,可以轻松成功的监控OpenStack。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java8 创建list方式_Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!

今天来分享下在 Java 8 中创建 Stream 的 10 种方式,我就整理了 10 种,其实还有更多,仅供大家参考学习下。 1、Stream.of 可变参数 Stream<String> stream1 = Stream.of("A", "B", "C"); System.out.println("stream1:" + st…

js map满足条件跳出循环_js.es5 map循环一大坑:循环遍历竟然出现逗号!

一、mapmap大法好作为当今程序界最好用的循环方法之一map, 在我的项目里基本替代了for循环map循环常用的一些方法/********* ES6 **********///一行代码可以省略returnarray.map( item > console.log(item))>array.map( item > {return console.log(item)})//多行代码…

micropython按键控制流水灯_【micro:bit Micropython】The LED Display(1)控制像素点

使用DFrobot研发的micropython编程软件uPyCraft&#xff0c;下载固件(Firmware)和下载程序都非常方便。可以在DFrobot论坛中进行下载。uPyCraft软件运行界面官网中的micro:bit Micropython API介绍得非常详细&#xff0c;为开发人员提供了详细的文字说明和参照。micro:bit Micr…

python中exp_python中的exp是什么

Python exp() 函数描述exp() 函数返回 x 的指数&#xff0c;。语法import mathmath.exp(x)注意&#xff1a;exp() 是不能直接访问的&#xff0c;需导入 math 模块&#xff0c;通过静态对象调用该方法。参数x -- 数值表达式。返回值返回 x 的指数&#xff0c;。实例# -*- coding…

python干货_python 基础干货 02

list 与 tuplelist 类似 数组tuple 跟 list 一样, 只是一旦定义, 里边的内容不可以改变.这样, 上边的内容就不可以改变了."可变的" tuple, 不是说 tuple 是不可以改变的么?想内存dict 与 setdict 是 python内置字典, 其他语言中称为 map, 使用键-值(key-value)存储&…

mysql安装目录问题_Windows下MySQL的安装目录问题

今天发现一个MySQL的问题&#xff0c;当把MySQL的文件目录安放在t字母打头的目录下时&#xff0c;比如d:/test目录&#xff0c;mysql服务就起不来了&#xff0c;报告找不到文件:D:/test/mysql>bin/mysqld-nt.exe --console090811 10:09:55 [ERROR] Cant find messagefile D:…

大学考试分数越高学分越多吗_大学的绩点和学分有什么用?影响学生毕业吗

原标题&#xff1a;大学的绩点和学分有什么用&#xff1f;影响学生毕业吗网友一&#xff1a;读大学也要关心成绩&#xff0c;绩点和学分是两个重要指标&#xff0c;到底是什么&#xff0c;怎么计算&#xff1f;有什么用处&#xff1f;为什么很重要&#xff1f;面试官最看重哪些…

pandas输出到excel_python读写excel等数据文件方法汇总

python处理数据文件第一步是要读取数据&#xff0c;文件类型主要包括文本文件&#xff08;csv、txt等&#xff09;、excel文件、数据库文件、api等。下面整理下python有哪些方式可以读取数据文件。1. python内置方法&#xff08;read、readline、readlines&#xff09;read()&a…

dijkstra算法_Python实现图的经典DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

讲在前面的话&#xff0c;图的算法太多&#xff0c;理论知识肯定一篇文章讲不完&#xff0c;关于理论知识大家可以参考教材Sedgewick的《算法》或reference的链接,本文主要还是想在一篇文章中记录六种算法的Python代码。同样想吐槽一下&#xff0c;虽然网上博客很多&#xff0c…

深度学习试题_高中生物:今年高考试题3点显著变化及5个备考建议!不看准吃亏...

新课标下的新高考即将开启&#xff0c;最后一届旧高考模式在不同寻常的2020年七月份已圆满结束。今年全国Ⅰ卷理综生物试题有几个明显变化。1.内容、范围不变&#xff0c;考查理解能力和实践能力加强作为过渡期的高考&#xff0c;全国高考Ⅰ卷理综生物试题题型结构保持不变&…

电脑工具栏怎么调整到下面_雷电模拟器4.0怎么玩召唤与合成 一键下载轻松游玩 - 工具软件...

召唤与合成是一款既不是卡牌&#xff0c;也不是消除&#xff0c;也不算策略的高烧脑解谜手游&#xff0c;很多玩家想要利用雷电模拟器来在电脑上运行手游&#xff0c;却不知道怎么操作&#xff0c;下面就来教教大家如何在雷电模拟器上玩召唤与合成。1、首先要下载游戏&#xff…

ESP8266网络相框采用TFT_eSPI库TJpg_Decoder库mixly库UDP库实现图片传送

用ESP8266和TFT_ESPI模块来显示图片数据。具体来说&#xff0c;我们将使用ILI9431显示器作为显示设备&#xff0c;并通过UDP协议将图片数据从发送端传输到ESP8266。最后&#xff0c;我们将解析这些数据并在TFT屏幕上显示出来。在这个过程中&#xff0c;我们将面临一些编程挑战&…

c++ vector 一部分_为什么现在的手机都采用Type-C接口?它到底好在哪里?看完你就明白了...

不知道你们有没有发现&#xff0c;现如今的安卓手机几乎都使用Type-C接口。前两年还只是大部分手机采用的Micro USB接口&#xff0c;只有很小一部分使用的是Type-C接口。那到底是什么原因导致它&#xff0c;能在那么快的速度几乎在业内通用呢&#xff1f;一、使用方便&#xff…

java listen_Java进阶-IO基础

计算机最重要的功能是处理数据。一个有用的计算机语言需要拥有良好的IO功能&#xff0c;以便让未处理的数据流入程序&#xff0c;让已处理的数据流出。与其他语言相比&#xff0c;Java的IO功能显得复杂。在其他语言中&#xff0c;许多IO功能(比如读取文件)&#xff0c;是被封装…

gorm preload 搜索_文件太多忘记了文件放在什么地方?那你可以试试这款文件搜索工具...

忘记了文件放在什么地方&#xff1f;文件太多不能一下子找到&#xff1f;那么你也许可以试试这款软件——ProFind for mac版&#xff0c;这是一款适用于macOS系统的文件搜索工具&#xff0c;它具有强大的功能和出色的性能&#xff0c;可为macOS提供高级文件搜索&#xff0c;并支…

c++ ftp服务端_FTP客户端软件介绍及使用

FTP客户端软件介绍及使用 客户端软件&#xff1a; ftp&#xff0c;lftp&#xff0c;lftpget&#xff0c;wget&#xff0c;curl ftp -A ftpserver port -A 主动模式 –p 被动模式 lftp –u username ftpserver lftp usernameftpserver lftpget ftp://ftpserver/pub/file gftp&am…

java中怎么使用json数据_JAVA中使用JSON进行数据传递

1.是不是只有xml传递数据的技术才是webservice&#xff1f;可以这么理解。webservice是基于SOAP协议&#xff0c;SOAP协议是基于XML的文本协议。所以webservice可以简单理解为是基于XML的传输技术&#xff0c;好比HTML是基于文本的传输协议。2.servlet是服务端的java程序的统称…

java 限制参数类型_java定义受限制的类型参数操作

有时您可能想限制可以在参数化类型中用作类型参数的类型。 例如&#xff0c;对数字进行操作的方法可能只希望接受Number或其子类的实例。 这就是有界类型参数的用途。受限制参数类型的方法示例要声明有界类型参数&#xff0c;请列出类型参数的名称&#xff0c;后跟extends关键字…

安卓手机运行ios教程_英雄联盟手游傻瓜安装教程,IOS/安卓双端可用!

软件/资料获取方式在文末正文&#xff1a;前几天发哥预告了一下LOL手游上线的事&#xff0c;本来以为国服也会同步上线&#xff0c;结果也是意料之中的跳票了&#xff0c;让我不禁想起当年玩魔兽世界时国服万年的TBC&#xff0c;不过据说LOL推迟上线是怕影响王者荣耀5周年庆典&…

easy excel date 类型解析报错_ptarchiver原理解析

pt-archiver原理解析作为MySQL DBA&#xff0c;可以说应该没有不知道pt-archiver了&#xff0c;作为pt-toolkit套件中的重要成员&#xff0c;往往能够轻松帮助DBA解决数据归档的问题。例如线上一个流水表&#xff0c;业务仅仅只需要存放最近3个月的流水数据&#xff0c;三个月前…