?Linux服務器監控之實時監控加載硬件信息
???? Linux 負有盛名的特點之一是其非凡的穩定性。然而,如果您的硬件有缺陷或配置不正確,即使是世界上最穩定的操作系統也不會對您有什麼幫助。計算機系統是由軟件系統硬件系統組成的,檢測硬件狀態對於保障整個系統的穩定是非常重要的。不論操作系統是使用Linux、還是Windows,一旦硬件出現故障,那麼整個系統的安全就嚴重了。這裡我們則主要針對硬件進行監控。
???? 一、 硬件監控的實現原理
??? 我們看一下Linux根目錄下:/proc目錄的內容,每個Linux系統根據軟硬件不同/proc 虛擬文件系統的內容也有些差異。/proc 虛擬文件系統有三個很重要的目錄:net,scsi和sys。Sys目錄是可寫的,可以通過它來訪問或修改內核的參數,而net和scsi則依賴於內核配置。例如,如果系統不支持scsi,則scsi目錄不存在。除了以上介紹的這些,還有的是一些以數字命名的目錄,它們是進程目錄。net目錄包括多個 ASCII 格式的網絡偽文件, 描述了網絡層的部分情況,可以用arp 、netstat、route等命令來查詢這些文件。除了以上介紹的這些,還有的是一些以數字命名的目錄,它們是進程目錄。系統中當前運行的每一個進程都有對應的一個目錄在/proc下,以進程的 PID號為目錄名,它們是讀取進程信息的接口。而self目錄則是讀取進程本身的信息接口,是一個鏈接(link)。Proc文件系統的名字就是由之而起。
??? /proc 目錄裡主要文件內容,見表-1:
??? 二、 命令行下檢測加載硬件
??? 1. 命令行下的硬件浏覽器dmidecode
??? Dmidecode是命令行下獲取硬件信息的工具,官方網站:,最新版本:2.8。下載安裝方法:
???
#wegt http://download.savannah.gnu.org/releases/dmidecode/dmidecode-2.8.tar.gz
# gunzip dmidecode-2.8.tar.gz
#cd dmidecode-2.8
#make;make install
???
??? 安裝命令下有兩個主要執行程序:BIOSdecode和dmidecode。下面方便介紹:
??? (1) BIOS信息查看工具:BIOSdecode
??? BIOS是基本輸入/輸出系統的縮寫。BIOS是機器的硬件自帶的、在電腦沒有訪問磁盤上程序之前決定機器基本功能的軟件系統 。運行命令:./ BIOSdecode,界面見圖1。
圖1 Linux計算機BIOS信息
??? 下面我們詳細介紹圖1三個主要內容。
??? 1. SMBIOS
??? SMBIOS即System Management BIOS以結構的方式保存了用於管理的系統信息。是一種符合台式機管理接口(dmi) 的方法,它用來管理受控網絡中的計算機。SMBIOS 的主要組成部分是管理信息格式(mif) 數據庫,其中包括有關計算系統及其組件的信息。使用SMBIOS,系統管理員可以或得系統類型、功能、操作狀態以及系統組件的,安裝日期。mif 數據庫定義數據並提供訪問該信息的方法。BIOS 可以使諸如第三方管理軟件等應用程序使用SMBIOS。
??? 2.PNP BIOS
??? PNP BIOS即插即用BIOS,PnP 把 PnP 資源自動分配給硬件和對應的軟件. 就是, 把設備和它們的驅動程序配對並建立通信信道. Linux 需要 PnP ,Wintel(Microsoft 和 Intel) 創造了 PnP. 由於種種原因, Linux 小區有人不喜歡 PnP. 但不管喜歡與否, 今天的硬件大部分是 PnP 的, 除了有效的處理 PnP 外, Linux 別無選擇。
??? 3. APM和ACPI電源管理
??? 它們分別是APM(Advanced Power Management,高級電源管理)和ACPI(Advanced Configuration and Power Interface高級配置電源界面)。Linux都支持兩種形式的電源管理:
??? (1)APM
??? 目前APM 1.2是最新的APM標准,是一種基於BIOS的系統電源管理方案,它提供了CPU和設備電源管理並通過設備活動超時設定來決定何時將設備轉換到低耗能狀態。APM軟件組成如下:一個pmd守護進程,用來監視電池的使用情況;多個實用工具軟件,用來顯示和響應電池事件。它們包含於apmd軟件包中。
??? (2)ACPI
??? ACPI針對APM的缺陷而誕生。由於APM具有以上不足,ACPI應運而生,ACPI就是為了解決APM的缺陷而面世的。ACPI(Advanced Configuration and Power Interface,高級配置和電源界面)是一個由COMPAQ、Intel、Microsoft、Phoenix和Toshiba共同開發的開放的工業規范。ACPI建立了工業標准接口,這樣操作系統在膝上型電腦、桌上型電腦及服務器上就可以直接配置和電源管理。ACPI將現有的電源管理BIOS代碼、APM應用編程接口、PNP BIOS應用編程接口、多處理器規范表格等集合成一種新的電源管理和配置接口規范。該規范的好處就是,如果能確保新的電源管理技術能與操作系統及硬件協調工作的話,那就可以獨立用操作系統和硬件來發展新的電源管理技術。ACPI允許操作系統(而不是BIOS)控制電源管理,這一點與APM不相同。ACPI標准定義了硬件寄存器、BIOS接口(包含配置表格、控制方法以及主板設備列舉和配置)、系統和設備的電源狀態和ACPI熱模型。BIOS提供的支持代碼不是用匯編語言而是用AML(ACPI Machine Language,ACPI機器語言)編寫的。BIOS不能決定用於電源管理或資源管理的策略或超時。最後要指出的是系統中的所有設備可以互相進行通訊來了解彼此的使用情況,而且都受操作系統的控制,操作系統對正在運行的系統的狀態了如指掌,所以操作系統處於執行電源管理的最佳位置。
??? ACPId事件守護進程一方面監視電源事件,另一方面用來設置響應這些事件的規則,這些規則用來關閉某些硬件或關掉系統電源等。ACPI是一款設計用來替代APM電源管理的更具通用性的工具軟件,但是目前它還需進一步完善。綜上所述,ACPI比APM有著很多的優勢,所以推薦大家使用ACPI來對Linux系統進行電源管理。
??? dmidecode
??? dmidecode可以說是一個命令行下全面的硬件浏覽器。和一些Linux發行版本的硬件浏覽器(lspci)相比,它可以提供的信息非常豐富。
??? 運行命令:./dmidecode ,界面見圖2。
?