返回顶部
首页 > 资讯 > 后端开发 > Python >如何解决用Python脚本发现OpenStack Overcloud中的问题
  • 355
分享到

如何解决用Python脚本发现OpenStack Overcloud中的问题

2023-06-16 15:06:45 355人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这期内容当中小编将会给大家带来有关如何解决用python脚本发现OpenStack Overcloud中的问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。OpenStack 在其 Overcloud 节

这期内容当中小编将会给大家带来有关如何解决用python脚本发现OpenStack Overcloud中的问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

OpenStack 在其 Overcloud 节点和 Undercloud 主机上存储和管理了一堆日志文件。因此,使用 OSP 日志文件来排查遇到的问题并不是一件容易的事,尤其在你甚至都不知道是什么原因导致问题时。

如果你正处于这种情况,那么 LogTool 可以使你的生活变得更加轻松!它会为你节省本需要人工排查问题所需的时间和精力。LogTool 基于模糊字符串匹配算法,可提供过去发生的所有唯一错误和警告信息。你可以根据日志中的时间戳导出特定时间段(例如 10 分钟前、一个小时前、一天前等)的这些信息。

LogTool 是一组 Python 脚本,其主要模块 PyTool.py 在 Undercloud 主机上执行。某些操作模式使用直接在 Overcloud 节点上执行的其他脚本,例如从 Overcloud 日志中导出错误和警告信息。

LogTool 支持 Python 2 和 Python 3,你可以根据需要更改工作目录:LogTool_Python2 or LogTool_python3

操作方式

1、从 Overcloud 日志中导出错误和警告信息

此模式用于从过去发生的 Overcloud 节点中提取 错误警告 信息。作为用户,系统将提示你提供“开始时间”和“调试级别”,以用于提取错误或警告消息。例如,如果在过去 10 分钟内出了问题,你则可以只提取该时间段内的错误和警告消息。

此操作模式将为每个 Overcloud 节点生成一个包含结果文件的目录。结果文件是经过压缩的简单文本文件(*.gz),以减少从 Overcloud 节点下载所需的时间。将压缩文件转换为常规文本文件,可以使用 zcat 或类似工具。此外,Vi 的某些版本和 EMacs 的任何最新版本均支持读取压缩数据。结果文件分为几部分,并在底部包含目录。

LogTool  可以即时检测两种日志文件:标准和非标准。在标准文件中,每条日志行都有一个已知的和已定义的结构:时间戳、调试级别、信息等等。在非标准文件中,日志的结构未知。例如,它可能是第三方的日志。在目录中,你可以找到每个部分的“名称  –> 行号”例如:

  • 原始数据 - 从标准 OSP 日志中提取的错误/警告消息: 这部分包含所有提取的错误/警告消息,没有任何修改或更改。这些消息是 LogTool 用于模糊匹配分析的原始数据。

  • 统计信息 - 每个标准 OSP 日志的错误/警告信息数量: 在此部分,你将找到每个标准日志文件的错误和警告数量。这些信息可以帮助你了解用于排查问题根本原因的潜在组件。

  • 统计信息 - 每个标准 OSP 日志文件的唯一消息: 这部分提供指定时间戳内的唯一的错误和警告消息。有关每个唯一错误或警告的更多详细信息,请在“原始数据”部分中查找相同的消息。

  • 统计信息 - 每个非标准日志文件在任意时间的唯一消息:  此部分包含非标准日志文件中的唯一消息。遗憾的是,LogTool  无法像标准日志文件那样的处理方式处理这些日志文件。因此,在你提取“特定时间”的日志信息时会被忽略,你会看到过去创建的所有唯一的错误/警告消息。因此,首先,向下滚动到结果文件底部的目录并查看其部分-使用目录中的行索引跳到相关部分,其中第  3、4 和 5 行的信息最重要。

2、从 Overcloud 节点下载所有日志

所有 Overcloud 节点的日志将被压缩并下载到 Undercloud 主机上的本地目录。

3、所有 Overcloud 日志中搜索字符串

该模式“grep”(搜索)由用户在所有 Overcloud 日志上提供的字符串。例如,你可能希望查看特定请求的所有日志消息,例如,“Create VM”的失败的请求 ID。

4、检查 Overcloud 上当前的 CPU、RAM 和磁盘使用情况

该模式显示每个 Overcloud 节点上的当前 CPU、RAM 和磁盘信息。

5、执行用户脚本

该模式使用户可以在 Overcloud 节点上运行自己的脚本。例如,假设 Overcloud 部署失败,你就需要在每个控制器节点上执行相同的过程来修复该问题。你可以实现“替代方法”脚本,并使用此模式在控制器上运行它。

6、仅按给定的时间戳下载相关日志

此模式仅下载 Overcloud 上 “给定的时间戳”的“上次修改时间”的日志。例如,如果 10 分钟前出现错误,则与旧日志文件就没有关系,因此无需下载。此外,你不能(或不应)在某些错误报告工具中附加大文件,因此此模式可能有助于编写错误报告。

7、从 Undercloud 日志中导出错误和警告信息

这与上面的模式 1 相同。

8、在 Overcloud 上检查不正常的 Docker

此模式用于在节点上搜索不正常的 Docker。

9、下载 OSP 日志并在本地运行 LogTool

此模式允许你从 jenkins 或 Log Storage 下载 OSP 日志(例如,cougar11.scl.lab.tlv.redhat.com),并在本地分析。

10、在 Undercloud 上分析部署日志

此模式可以帮助你了解 Overcloud 或 Undercloud 部署过程中出了什么问题。例如,在overcloud_deploy.sh 脚本中,使用 --log 选项时会生成部署日志;此类日志的问题是“不友好”,你很难理解是什么出了问题,尤其是当详细程度设置为 vv 或更高时,使得日志中的数据难以读取。此模式提供有关所有失败任务的详细信息。

11、分析 Gerrit(Zuul)失败的日志

此模式用于分析 Gerrit(Zuul)日志文件。它会自动从远程 Gerrit 门下载所有文件(Http 下载)并在本地进行分析。

安装

GitHub 上有 LogTool,使用以下命令将其克隆到你的 Undercloud 主机:

git clone https://github.com/zahlabut/LogTool.git

该工具还使用了一些外部 Python 模块:

Paramiko

默认情况下,ssh 模块通常会安装在 Undercloud 上。使用以下命令来验证是否已安装:

ls -a /usr/lib/python2.7/site-packages | grep paramiko

如果需要安装模块,请在 Undercloud 上执行以下命令:

sudo easy_install pipsudo pip install paramiko==2.1.1
BeautifulSoup

html 解析器模块仅在使用 HTTP 下载日志文件的模式下使用。它用于解析 Artifacts HTML 页面以获取其中的所有链接。安装 BeautifulSoup,请输入以下命令:

pip install beautifulsoup4

你还可以通过执行以下命令使用 requirements.txt 文件安装所有必需的模块:

pip install -r requirements.txt

配置

所有必需的参数都直接在 PyTool.py 脚本中设置。默认值为:

overcloud_logs_dir = '/var/log/containers'overcloud_ssh_user = 'heat-admin'overcloud_ssh_key = '/home/stack/.ssh/id_rsa'undercloud_logs_dir ='/var/log/containers'source_rc_file_path='/home/stack/'

用法

此工具是交互式的,因此要启动它,只需输入:

cd LogToolpython PyTool.py

排除 LogTool 故障

在运行时会创建两个日志文件:Error.logRuntime.log。请在你要打开的问题的描述中添加两者的内容。

局限性

LogTool 进行硬编码以处理最大 500 MB 的文件。

LogTool_Python3 脚本

在 github.com/zahlabut/LogTool 获取。

上述就是小编为大家分享的如何解决用Python脚本发现OpenStack Overcloud中的问题了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网Python频道。

--结束END--

本文标题: 如何解决用Python脚本发现OpenStack Overcloud中的问题

本文链接: https://lsjlt.com/news/284139.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何解决用Python脚本发现OpenStack Overcloud中的问题
    这期内容当中小编将会给大家带来有关如何解决用Python脚本发现OpenStack Overcloud中的问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。OpenStack 在其 Overcloud 节...
    99+
    2023-06-16
  • ​如何解决OpenStack云的互联问题
    如何解决OpenStack云的互联问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。摘要:用Neutron API建立Open...
    99+
    2024-04-02
  • Python脚本出现乱码问题怎么解决
    这篇文章主要介绍“Python脚本出现乱码问题怎么解决”,在日常操作中,相信很多人在Python脚本出现乱码问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python脚本出现乱码问题怎么解决”的疑...
    99+
    2023-06-30
  • 如何解决 shell 脚本重复执行的问题
    简介 flock 是文件锁命令,它可以保证linux系统上进程之间安全的访问临界资源,在shell脚本中,可以用来控制逻辑的互斥性 实例1 现有脚本 a.sh, 内容如下 #!/bin/bash echo "[...
    99+
    2022-06-04
    shell 脚本重复执行 解决shell脚本重复执行
  • 如何解决无法执行vbs脚本中遇到的问题
    如何解决无法执行vbs脚本中遇到的问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。有网友反映无法执行vbs文件,一般情况下,很多坏孩子用vbs写病毒,所以有时...
    99+
    2023-06-08
  • 详解超星脚本出现乱码问题的解决方法(Python)
    这种情况在挂载脚本后无法答题,任何关于答题脚本的脚本都无法使用。 看这个字体,已经读不出原文了,一开始以为是加密尝试使用加密算法破解,然后用BP、其他工具尝试解码无果。 之后尝试用...
    99+
    2024-04-02
  • 如何解决电脑当前页面脚本发生错误问题
    这篇文章主要介绍了如何解决电脑当前页面脚本发生错误问题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何解决电脑当前页面脚本发生错误问题文章都会有所收获,下面我们一起来看看吧。方法/步骤:在电脑上打开IE浏览器...
    99+
    2023-06-27
  • 在arcgis使用python脚本进行字段计算时是如何解决中文问题的
    一、引言   在arcgis打开一个图层的属性表,可以对属性表的某个字段进行计算,但是在平常一般都是使用arcgis提供的字段计算器的界面进行傻瓜式的简答的赋值操作,并没有使用到脚本对字段值进行逻辑的操作。...
    99+
    2022-06-04
    字段 如何解决 中文
  • 如何解决在SQL脚本中的注释引起的奇怪问题
    如何解决在SQL脚本中的注释引起的奇怪问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在数据库安装包中,我们通过osql.exe这个工具...
    99+
    2024-04-02
  • 如何用Python解决LeetCode数组题目的并发问题?
    LeetCode是全球知名的在线编程网站,提供了许多算法和数据结构题目供程序员练习。在LeetCode中,数组问题是一类非常常见的问题。然而,当数组问题涉及到并发时,解决方法就会变得更加复杂。在这篇文章中,我们将介绍如何使用Python来解...
    99+
    2023-11-05
    数组 leetcode 并发
  • 详解Shell脚本中^M的问题和解决方案
    目录^M 是什么?本质原因常用工具在开发过程中,有时候不小心将Windows本地创建的shell脚本(以 .sh 结尾的脚本),传到linux系统中,通过 vi或者view命令查看文件时,发现在末尾发现出现了很多^M字符...
    99+
    2022-06-05
    Shell^M问题 Shell^M
  • 如何在Unix系统中使用Java来解决Shell脚本的负载问题?
    如何在Unix系统中使用Java来解决Shell脚本的负载问题? 在Unix系统中,Shell脚本是非常常见的一种脚本语言。它可以方便地实现各种操作,比如文件操作、进程管理、网络操作等等。但是,在一些特定的场景中,Shell脚本的性能可能无...
    99+
    2023-08-03
    unix load shell
  • 解决Unity项目中UI脚本丢失的问题
    此脚本是解决UI脚本丢失 步骤:将此脚本放到项目下的Edit文件夹下,如果没有,请自行创建 步骤:点击窗口的Asstes → Reimport ui assemblies usi...
    99+
    2024-04-02
  • 如何解决vue中修改export default中脚本报一大堆错的问题
    这篇文章给大家分享的是有关如何解决vue中修改export default中脚本报一大堆错的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在写vue代码的时候遇到了一修改.v...
    99+
    2024-04-02
  • 如何解决PHP开发中的跨站脚本攻击
    跨站脚本攻击(Cross-site Scripting,XSS)是一种常见的Web安全漏洞,利用这种漏洞,攻击者可以在受害者的浏览器中执行恶意脚本代码,进而实施一些恶意行为。在PHP开发中,我们需要采取一些措施来防止和解决跨站脚本攻击。一、...
    99+
    2023-10-21
    跨站脚本攻击 解决 关键词:PHP开发
  • Vue开发中出现Loading Chunk Failed的问题如何解决
    本文小编为大家详细介绍“Vue开发中出现Loading Chunk Failed的问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue开发中出现Loading Chunk Failed的...
    99+
    2023-06-29
  • 如何解决redis的并发问题
    如何解决redis的并发问题?针对这个问题,今天小编总结了这篇文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。redis中的并发问题使用redis作为缓存已经很久了,redis是以单进程的形...
    99+
    2024-04-02
  • SQL拼接中的并发问题如何解决
    SQL 拼接中的并发问题可以通过以下方法来解决: 使用数据库事务:在执行 SQL 拼接操作时,将相关的 SQL 语句放在一个事务...
    99+
    2024-04-29
    SQL
  • 如何解决Springboot中Feignclient调用时版本问题
    这篇文章主要为大家展示了“如何解决Springboot中Feignclient调用时版本问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决Springboot中Feignclient调用...
    99+
    2023-06-29
  • 在python中如何解决死锁的问题
    这篇文章将为大家详细讲解有关在python中如何解决死锁的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.添加超时时间:fromthreading import Thread,&...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作