linux启用日志记录功能,Linux下启用Open vSwitch的日志功能以便调试和排障
問題 我試著為我的Open vSwitch部署排障,鑒于此,我想要檢查它的由內建日志機制生成的調試信息。我怎樣才能啟用Open vSwitch的日志功能,并且修改它的日志等級(如,修改成INFO/DEBUG級別)以便于檢查更多詳細的調試信息呢?
Open vSwitch(OVS)是Linux平臺上最流行的開源的虛擬交換機。由于當今的數據中心日益依賴于軟件定義網絡(SDN)架構,OVS被作為數據中心的SDN部署中的事實標準上的網絡元素而得到飛速應用。
Open vSwitch具有一個內建的日志機制,它稱之為VLOG。VLOG工具允許你在各種網絡交換組件中啟用并自定義日志,由VLOG生成的日志信息可以被發送到一個控制臺、syslog以及一個便于查看的單獨日志文件。你可以通過一個名為ovs-appctl的命令行工具在運行時動態配置OVS日志。
這里為你演示如何使用ovs-appctl啟用Open vSwitch中的日志功能,并進行自定義。
下面是ovs-appctl自定義VLOG的語法。
$ sudo ovs-appctl vlog/setmodule[:facility[:level]]
Module:OVS中的任何合法組件的名稱(如netdev,ofproto,dpif,vswitchd等等)
Facility:日志信息的目的地(必須是:console,syslog,或者file)
Level:日志的詳細程度(必須是:emer,err,warn,info,或者dbg)
在OVS源代碼中,模塊名稱在源文件中是以以下格式定義的:
VLOG_DEFINE_THIS_MODULE();
例如,在lib/netdev.c中,你可以看到:
VLOG_DEFINE_THIS_MODULE(netdev);
這個表明,lib/netdev.c是netdev模塊的一部分,任何在lib/netdev.c中生成的日志信息將屬于netdev模塊。
在OVS源代碼中,有多個嚴重度等級用于定義幾個不同類型的日志信息:VLOGINFO()用于報告,VLOGWARN()用于警告,VLOGERR()用于錯誤提示,VLOGDBG()用于調試信息,VLOG_EMERG用于緊急情況。日志等級和工具確定哪個日志信息發送到哪里。
要查看可用模塊、工具和各自日志級別的完整列表,請運行以下命令。該命令必須在你啟動OVS后調用。
$ sudo ovs-appctl vlog/list
輸出結果顯示了用于三個場合(facility:console,syslog,file)的各個模塊的調試級別。默認情況下,所有模塊的日志等級都被設置為INFO。
指定任何一個OVS模塊,你可以選擇性地修改任何特定場合的調試級別。例如,如果你想要在控制臺屏幕中查看dpif更為詳細的調試信息,可以運行以下命令。
$ sudo ovs-appctl vlog/setdpif:console:dbg
你將看到dpif模塊的console工具已經將其日志等級修改為DBG,而其它兩個場合syslog和file的日志級別仍然沒有改變。
如果你想要修改所有模塊的日志等級,你可以指定“ANY”作為模塊名。例如,下面命令將修改每個模塊的console的日志級別為DBG。
$ sudo ovs-appctl vlog/setANY:console:dbg
同時,如果你想要一次性修改所有三個場合的日志級別,你可以指定“ANY”作為場合名。例如,下面的命令將修改每個模塊的所有場合的日志級別為DBG。
$ sudo ovs-appctl vlog/setANY:ANY:dbg
本文由 LCTT 原創翻譯,Linux中國 榮譽推出
總結
以上是生活随笔為你收集整理的linux启用日志记录功能,Linux下启用Open vSwitch的日志功能以便调试和排障的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P8多少钱啊?
- 下一篇: 越南沉香木手串价格?