溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何解決用Python腳本發(fā)現(xiàn)OpenStack Overcloud中的問題

發(fā)布時(shí)間:2021-10-28 17:30:50 來源:億速云 閱讀:180 作者:柒染 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何解決用Python腳本發(fā)現(xiàn)OpenStack Overcloud中的問題,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

OpenStack 在其 Overcloud 節(jié)點(diǎn)和 Undercloud 主機(jī)上存儲(chǔ)和管理了一堆日志文件。因此,使用 OSP 日志文件來排查遇到的問題并不是一件容易的事,尤其在你甚至都不知道是什么原因?qū)е聠栴}時(shí)。

如果你正處于這種情況,那么 LogTool 可以使你的生活變得更加輕松!它會(huì)為你節(jié)省本需要人工排查問題所需的時(shí)間和精力。LogTool 基于模糊字符串匹配算法,可提供過去發(fā)生的所有唯一錯(cuò)誤和警告信息。你可以根據(jù)日志中的時(shí)間戳導(dǎo)出特定時(shí)間段(例如 10 分鐘前、一個(gè)小時(shí)前、一天前等)的這些信息。

LogTool 是一組 Python 腳本,其主要模塊 PyTool.py 在 Undercloud 主機(jī)上執(zhí)行。某些操作模式使用直接在 Overcloud 節(jié)點(diǎn)上執(zhí)行的其他腳本,例如從 Overcloud 日志中導(dǎo)出錯(cuò)誤和警告信息。

LogTool 支持 Python 2 和 Python 3,你可以根據(jù)需要更改工作目錄:LogTool_Python2 or LogTool_Python3。

操作方式

1、從 Overcloud 日志中導(dǎo)出錯(cuò)誤和警告信息

此模式用于從過去發(fā)生的 Overcloud 節(jié)點(diǎn)中提取 錯(cuò)誤警告 信息。作為用戶,系統(tǒng)將提示你提供“開始時(shí)間”和“調(diào)試級(jí)別”,以用于提取錯(cuò)誤或警告消息。例如,如果在過去 10 分鐘內(nèi)出了問題,你則可以只提取該時(shí)間段內(nèi)的錯(cuò)誤和警告消息。

此操作模式將為每個(gè) Overcloud 節(jié)點(diǎn)生成一個(gè)包含結(jié)果文件的目錄。結(jié)果文件是經(jīng)過壓縮的簡(jiǎn)單文本文件(*.gz),以減少從 Overcloud 節(jié)點(diǎn)下載所需的時(shí)間。將壓縮文件轉(zhuǎn)換為常規(guī)文本文件,可以使用 zcat 或類似工具。此外,Vi 的某些版本和 Emacs 的任何最新版本均支持讀取壓縮數(shù)據(jù)。結(jié)果文件分為幾部分,并在底部包含目錄。

LogTool  可以即時(shí)檢測(cè)兩種日志文件:標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)。在標(biāo)準(zhǔn)文件中,每條日志行都有一個(gè)已知的和已定義的結(jié)構(gòu):時(shí)間戳、調(diào)試級(jí)別、信息等等。在非標(biāo)準(zhǔn)文件中,日志的結(jié)構(gòu)未知。例如,它可能是第三方的日志。在目錄中,你可以找到每個(gè)部分的“名稱  –> 行號(hào)”例如:

  • 原始數(shù)據(jù) - 從標(biāo)準(zhǔn) OSP 日志中提取的錯(cuò)誤/警告消息: 這部分包含所有提取的錯(cuò)誤/警告消息,沒有任何修改或更改。這些消息是 LogTool 用于模糊匹配分析的原始數(shù)據(jù)。

  • 統(tǒng)計(jì)信息 - 每個(gè)標(biāo)準(zhǔn) OSP 日志的錯(cuò)誤/警告信息數(shù)量: 在此部分,你將找到每個(gè)標(biāo)準(zhǔn)日志文件的錯(cuò)誤和警告數(shù)量。這些信息可以幫助你了解用于排查問題根本原因的潛在組件。

  • 統(tǒng)計(jì)信息 - 每個(gè)標(biāo)準(zhǔn) OSP 日志文件的唯一消息: 這部分提供指定時(shí)間戳內(nèi)的唯一的錯(cuò)誤和警告消息。有關(guān)每個(gè)唯一錯(cuò)誤或警告的更多詳細(xì)信息,請(qǐng)?jiān)凇霸紨?shù)據(jù)”部分中查找相同的消息。

  • 統(tǒng)計(jì)信息 - 每個(gè)非標(biāo)準(zhǔn)日志文件在任意時(shí)間的唯一消息:  此部分包含非標(biāo)準(zhǔn)日志文件中的唯一消息。遺憾的是,LogTool  無法像標(biāo)準(zhǔn)日志文件那樣的處理方式處理這些日志文件。因此,在你提取“特定時(shí)間”的日志信息時(shí)會(huì)被忽略,你會(huì)看到過去創(chuàng)建的所有唯一的錯(cuò)誤/警告消息。因此,首先,向下滾動(dòng)到結(jié)果文件底部的目錄并查看其部分-使用目錄中的行索引跳到相關(guān)部分,其中第  3、4 和 5 行的信息最重要。

2、從 Overcloud 節(jié)點(diǎn)下載所有日志

所有 Overcloud 節(jié)點(diǎn)的日志將被壓縮并下載到 Undercloud 主機(jī)上的本地目錄。

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

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

4、檢查 Overcloud 上當(dāng)前的 CPU、RAM 和磁盤使用情況

該模式顯示每個(gè) Overcloud 節(jié)點(diǎn)上的當(dāng)前 CPU、RAM 和磁盤信息。

5、執(zhí)行用戶腳本

該模式使用戶可以在 Overcloud 節(jié)點(diǎn)上運(yùn)行自己的腳本。例如,假設(shè) Overcloud 部署失敗,你就需要在每個(gè)控制器節(jié)點(diǎn)上執(zhí)行相同的過程來修復(fù)該問題。你可以實(shí)現(xiàn)“替代方法”腳本,并使用此模式在控制器上運(yùn)行它。

6、僅按給定的時(shí)間戳下載相關(guān)日志

此模式僅下載 Overcloud 上 “給定的時(shí)間戳”的“上次修改時(shí)間”的日志。例如,如果 10 分鐘前出現(xiàn)錯(cuò)誤,則與舊日志文件就沒有關(guān)系,因此無需下載。此外,你不能(或不應(yīng))在某些錯(cuò)誤報(bào)告工具中附加大文件,因此此模式可能有助于編寫錯(cuò)誤報(bào)告。

7、從 Undercloud 日志中導(dǎo)出錯(cuò)誤和警告信息

這與上面的模式 1 相同。

8、在 Overcloud 上檢查不正常的 docker

此模式用于在節(jié)點(diǎn)上搜索不正常的 Docker。

9、下載 OSP 日志并在本地運(yùn)行 LogTool

此模式允許你從 Jenkins 或 Log Storage 下載 OSP 日志(例如,cougar11.scl.lab.tlv.redhat.com),并在本地分析。

10、在 Undercloud 上分析部署日志

此模式可以幫助你了解 Overcloud 或 Undercloud 部署過程中出了什么問題。例如,在overcloud_deploy.sh 腳本中,使用 --log 選項(xiàng)時(shí)會(huì)生成部署日志;此類日志的問題是“不友好”,你很難理解是什么出了問題,尤其是當(dāng)詳細(xì)程度設(shè)置為 vv 或更高時(shí),使得日志中的數(shù)據(jù)難以讀取。此模式提供有關(guān)所有失敗任務(wù)的詳細(xì)信息。

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

此模式用于分析 Gerrit(Zuul)日志文件。它會(huì)自動(dòng)從遠(yuǎn)程 Gerrit 門下載所有文件(HTTP 下載)并在本地進(jìn)行分析。

安裝

GitHub 上有 LogTool,使用以下命令將其克隆到你的 Undercloud 主機(jī):

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

該工具還使用了一些外部 Python 模塊:

Paramiko

默認(rèn)情況下,SSH 模塊通常會(huì)安裝在 Undercloud 上。使用以下命令來驗(yàn)證是否已安裝:

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

如果需要安裝模塊,請(qǐng)?jiān)?Undercloud 上執(zhí)行以下命令:

sudo easy_install pipsudo pip install paramiko==2.1.1
BeautifulSoup

此 HTML 解析器模塊僅在使用 HTTP 下載日志文件的模式下使用。它用于解析 Artifacts HTML 頁面以獲取其中的所有鏈接。安裝 BeautifulSoup,請(qǐng)輸入以下命令:

pip install beautifulsoup4

你還可以通過執(zhí)行以下命令使用 requirements.txt 文件安裝所有必需的模塊:

pip install -r requirements.txt

配置

所有必需的參數(shù)都直接在 PyTool.py 腳本中設(shè)置。默認(rèn)值為:

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/'

用法

此工具是交互式的,因此要啟動(dòng)它,只需輸入:

cd LogToolpython PyTool.py

排除 LogTool 故障

在運(yùn)行時(shí)會(huì)創(chuàng)建兩個(gè)日志文件:Error.logRuntime.log。請(qǐng)?jiān)谀阋蜷_的問題的描述中添加兩者的內(nèi)容。

局限性

LogTool 進(jìn)行硬編碼以處理最大 500 MB 的文件。

LogTool_Python3 腳本

在 github.com/zahlabut/LogTool 獲取。

上述就是小編為大家分享的如何解決用Python腳本發(fā)現(xiàn)OpenStack Overcloud中的問題了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI