您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何解決用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。
此模式用于從過去發生的 Overcloud 節點中提取 錯誤 和 警告 信息。作為用戶,系統將提示你提供“開始時間”和“調試級別”,以用于提取錯誤或警告消息。例如,如果在過去 10 分鐘內出了問題,你則可以只提取該時間段內的錯誤和警告消息。
此操作模式將為每個 Overcloud 節點生成一個包含結果文件的目錄。結果文件是經過壓縮的簡單文本文件(*.gz
),以減少從 Overcloud 節點下載所需的時間。將壓縮文件轉換為常規文本文件,可以使用 zcat
或類似工具。此外,Vi 的某些版本和 Emacs 的任何最新版本均支持讀取壓縮數據。結果文件分為幾部分,并在底部包含目錄。
LogTool 可以即時檢測兩種日志文件:標準和非標準。在標準文件中,每條日志行都有一個已知的和已定義的結構:時間戳、調試級別、信息等等。在非標準文件中,日志的結構未知。例如,它可能是第三方的日志。在目錄中,你可以找到每個部分的“名稱 –> 行號”例如:
原始數據 - 從標準 OSP 日志中提取的錯誤/警告消息: 這部分包含所有提取的錯誤/警告消息,沒有任何修改或更改。這些消息是 LogTool 用于模糊匹配分析的原始數據。
統計信息 - 每個標準 OSP 日志的錯誤/警告信息數量: 在此部分,你將找到每個標準日志文件的錯誤和警告數量。這些信息可以幫助你了解用于排查問題根本原因的潛在組件。
統計信息 - 每個標準 OSP 日志文件的唯一消息: 這部分提供指定時間戳內的唯一的錯誤和警告消息。有關每個唯一錯誤或警告的更多詳細信息,請在“原始數據”部分中查找相同的消息。
統計信息 - 每個非標準日志文件在任意時間的唯一消息: 此部分包含非標準日志文件中的唯一消息。遺憾的是,LogTool 無法像標準日志文件那樣的處理方式處理這些日志文件。因此,在你提取“特定時間”的日志信息時會被忽略,你會看到過去創建的所有唯一的錯誤/警告消息。因此,首先,向下滾動到結果文件底部的目錄并查看其部分-使用目錄中的行索引跳到相關部分,其中第 3、4 和 5 行的信息最重要。
所有 Overcloud 節點的日志將被壓縮并下載到 Undercloud 主機上的本地目錄。
該模式“grep”(搜索)由用戶在所有 Overcloud 日志上提供的字符串。例如,你可能希望查看特定請求的所有日志消息,例如,“Create VM”的失敗的請求 ID。
該模式顯示每個 Overcloud 節點上的當前 CPU、RAM 和磁盤信息。
該模式使用戶可以在 Overcloud 節點上運行自己的腳本。例如,假設 Overcloud 部署失敗,你就需要在每個控制器節點上執行相同的過程來修復該問題。你可以實現“替代方法”腳本,并使用此模式在控制器上運行它。
此模式僅下載 Overcloud 上 “給定的時間戳”的“上次修改時間”的日志。例如,如果 10 分鐘前出現錯誤,則與舊日志文件就沒有關系,因此無需下載。此外,你不能(或不應)在某些錯誤報告工具中附加大文件,因此此模式可能有助于編寫錯誤報告。
這與上面的模式 1 相同。
此模式用于在節點上搜索不正常的 Docker。
此模式允許你從 Jenkins 或 Log Storage 下載 OSP 日志(例如,cougar11.scl.lab.tlv.redhat.com
),并在本地分析。
此模式可以幫助你了解 Overcloud 或 Undercloud 部署過程中出了什么問題。例如,在overcloud_deploy.sh
腳本中,使用 --log
選項時會生成部署日志;此類日志的問題是“不友好”,你很難理解是什么出了問題,尤其是當詳細程度設置為 vv
或更高時,使得日志中的數據難以讀取。此模式提供有關所有失敗任務的詳細信息。
此模式用于分析 Gerrit(Zuul)日志文件。它會自動從遠程 Gerrit 門下載所有文件(HTTP 下載)并在本地進行分析。
GitHub 上有 LogTool,使用以下命令將其克隆到你的 Undercloud 主機:
git clone https://github.com/zahlabut/LogTool.git
該工具還使用了一些外部 Python 模塊:
默認情況下,SSH 模塊通常會安裝在 Undercloud 上。使用以下命令來驗證是否已安裝:
ls -a /usr/lib/python2.7/site-packages | grep paramiko
如果需要安裝模塊,請在 Undercloud 上執行以下命令:
sudo easy_install pipsudo pip install paramiko==2.1.1
此 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
在運行時會創建兩個日志文件:Error.log
和 Runtime.log
。請在你要打開的問題的描述中添加兩者的內容。
LogTool 進行硬編碼以處理最大 500 MB 的文件。
在 github.com/zahlabut/LogTool 獲取。
上述就是小編為大家分享的如何解決用Python腳本發現OpenStack Overcloud中的問題了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。