O02九、教你看懂OpenStack日誌

 
instance 從建立到刪除的整個生命週期都是有 Nova 管理的,後面各小節咱們以instance生命週期中不一樣操做場景爲例,詳細分析 Nova不一樣組件如何協調工做,並經過日誌分析加深你們對 Nova 的理解
 
在研究 Nova 各個操做以前,咱們先來學習一個重要的內容:OpenStack 日誌。OpenStack 的日誌記錄了很是詳細的細節信息,是咱們學習和Troubleshooting的利器。
 
日誌的位置
 
咱們實驗環境使用的是DevStack ,日誌統一放在 /opt/stack/logs 下面,每一個服務都有本身的日誌文件,從命名上很容易區分。
 
對於非 DevStack 安裝的OpenStack ,日誌通常放在 /var/log/xxx/ 目錄下
 
各個子服務的日誌文件也是單獨保存的,命名也很規範,容易區分。好比nova-api 的日誌,存放路徑  /var/log/nova/api.log
 
root@DevStack-Controller:~# ls /opt/stack/logs/ | grep -v 2019
c-api.log    #    cinder日誌
c-sch.log
c-vol.log
dstat-csv.log
dstat.log
g-api.log    #    glance-api 日誌
g-reg.log    #    glance-registry日誌
horizon.log
key-access.log
key.log    #    keystone日誌
n-api.log    #    nova-api日誌
n-cauth.log
n-cond.log
n-cpu.log    #    nova-compute日誌
n-dhcp.log
n-novnc.log
n-sch.log
placement-api.log
q-agt.log
q-dhcp.log    #    q- 是Neutron日誌
q-l3.log
q-meta.log
q-svc.log
screen
stack.sh.log
stack.sh.log.summary
 
日誌的格式
 
OpenStack 的日誌格式都是統一的,以下:
 
<時間戳><日誌等級><代碼模塊><Request ID><日誌內容><源代碼位置>
 
簡單說一下:
    <時間戳>            日誌記錄的時間點,年月日時分秒
    <日誌等級>        INFO  WARNING  ERROR  DEBUG 等
    <代碼模塊>        當前運行的模塊1
    <Request ID>    日誌會記錄連續不一樣的操做,爲了便於區分和增長可讀性,每一個操做都被分配惟一的 Request ID ,便於查找日誌內容
    <日誌內容>        這是日誌的主體,記錄當前正在執行的操做和結果等重要信息
    <源代碼位置>     日誌代碼的位置,包括方法名稱、源代碼文件的目錄位置和行號,這一項不是全部日誌都有
 
2019-05-23 16:35:16.430 
DEBUG 
nova.compute.manager 
[req-808daefa-2cd8-4c34-bd34-2730453805da admin admin] 
[instance: a0e2b485-f40c-43e4-beb6-049b6399f0ec] Starting instance... 
from (pid=4613) _do_build_and_run_instance /opt/stack/nova/nova/compute/manager.py:1766
 
2019-05-23 16:35:16.528 
INFO 
nova.compute.claims 
[req-808daefa-2cd8-4c34-bd34-2730453805da admin admin] 
[instance: a0e2b485-f40c-43e4-beb6-049b6399f0ec] Attempting claim: memory 256 MB, disk 0 GB, vcpus 1 CPU
 
關於日誌的幾點說明
 
    一、學習OpenStack 須要看日誌嗎?這個問題的答案取決於你是誰。若是你是OpenStack的最終用戶,那麼日誌對你不重要。你只須要愛GUI 上操做就能夠了,出過出了問題直接找管理員處理。但若是你是OpenStack的運維和管理人員,日誌對你就很是重要了。由於OpenStack操做若是出錯,GUI上給出的錯誤信息是很是籠統和簡要的,日誌則提供了大量的線索,特別是當debug選項打開以後。若是你正處於OpenStack的學習階段,正如咱們如今的狀態,那麼也強烈建議你多看日誌。日誌可以幫助你更加深刻理解 OpenStack 的運行機制
 
    二、日誌可以幫助咱們深刻學習OpenStack 和排查問題。但要想高效的使用日誌還有個前提:必須先掌握OpenStack的運行機制,而後針對性的查看日誌。就拿Instance Launch 的操做來講,若是以前不瞭解 nova-* 各子服務在操做中的協做關係,若是沒有理解流程圖,面對如此多並且分散的日誌文件,咱們也很難下手。
 
    三、對於OpenStack 的運維和管理員來講,在大部分狀況下,咱們不須要看源代碼。由於OpenStack的日誌記錄的很詳細了,足以幫助咱們分析和定位問題。但仍是有一些細節日誌沒有記錄,必要時能夠經過查看源代碼來來接得更清楚。即使如此,日誌也會爲咱們提供源代碼查看的線索,不須要咱們大海撈針。這一點咱們會在後面的操做分析中看到。
相關文章
相關標籤/搜索