您好,登錄后才能下訂單哦!
這期內(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。
此模式用于從過去發(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 行的信息最重要。
所有 Overcloud 節(jié)點(diǎn)的日志將被壓縮并下載到 Undercloud 主機(jī)上的本地目錄。
該模式“grep”(搜索)由用戶在所有 Overcloud 日志上提供的字符串。例如,你可能希望查看特定請(qǐng)求的所有日志消息,例如,“Create VM”的失敗的請(qǐng)求 ID。
該模式顯示每個(gè) Overcloud 節(jié)點(diǎn)上的當(dāng)前 CPU、RAM 和磁盤信息。
該模式使用戶可以在 Overcloud 節(jié)點(diǎn)上運(yùn)行自己的腳本。例如,假設(shè) Overcloud 部署失敗,你就需要在每個(gè)控制器節(jié)點(diǎn)上執(zhí)行相同的過程來修復(fù)該問題。你可以實(shí)現(xiàn)“替代方法”腳本,并使用此模式在控制器上運(yùn)行它。
此模式僅下載 Overcloud 上 “給定的時(shí)間戳”的“上次修改時(shí)間”的日志。例如,如果 10 分鐘前出現(xiàn)錯(cuò)誤,則與舊日志文件就沒有關(guān)系,因此無需下載。此外,你不能(或不應(yīng))在某些錯(cuò)誤報(bào)告工具中附加大文件,因此此模式可能有助于編寫錯(cuò)誤報(bào)告。
這與上面的模式 1 相同。
此模式用于在節(jié)點(diǎn)上搜索不正常的 Docker。
此模式允許你從 Jenkins 或 Log Storage 下載 OSP 日志(例如,cougar11.scl.lab.tlv.redhat.com
),并在本地分析。
此模式可以幫助你了解 Overcloud 或 Undercloud 部署過程中出了什么問題。例如,在overcloud_deploy.sh
腳本中,使用 --log
選項(xiàng)時(shí)會(huì)生成部署日志;此類日志的問題是“不友好”,你很難理解是什么出了問題,尤其是當(dāng)詳細(xì)程度設(shè)置為 vv
或更高時(shí),使得日志中的數(shù)據(jù)難以讀取。此模式提供有關(guān)所有失敗任務(wù)的詳細(xì)信息。
此模式用于分析 Gerrit(Zuul)日志文件。它會(huì)自動(dòng)從遠(yuǎn)程 Gerrit 門下載所有文件(HTTP 下載)并在本地進(jìn)行分析。
GitHub 上有 LogTool,使用以下命令將其克隆到你的 Undercloud 主機(jī):
git clone https://github.com/zahlabut/LogTool.git
該工具還使用了一些外部 Python 模塊:
默認(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
此 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
在運(yùn)行時(shí)會(huì)創(chuàng)建兩個(gè)日志文件:Error.log
和 Runtime.log
。請(qǐng)?jiān)谀阋蜷_的問題的描述中添加兩者的內(nèi)容。
LogTool 進(jìn)行硬編碼以處理最大 500 MB 的文件。
在 github.com/zahlabut/LogTool 獲取。
上述就是小編為大家分享的如何解決用Python腳本發(fā)現(xiàn)OpenStack Overcloud中的問題了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。