關連式資料庫 系統管理 作業系統 開源碼 跨平台

靈活運用osquery 系統資源狀態隨時查詢

2018-12-03
隨時掌握處理程序、對外連線狀態、系統記憶體、使用者資訊、歷史指令等系統資源,是系統管理者最重要的工作內容。本文將介紹一套開源碼系統管理工具osquery,讓管理者可以透過關連式資料庫的SQL語法來隨時查看所需的系統資源相關資訊。

TTY:表示該程序是在那個終端機上面運作,如果與終端機無關,則會顯示問號。

STAT:表示該程序目前的執行狀態,可分為下列的狀態:R(表示該程序目前正在運作中)、S(表示該程序目前正在睡眠當中,使用者可利用某些訊號喚醒該程序)、T(表示該程序目前正在偵測或是已經停止)、Z(表示為殭屍程序。意指該程序應該已經終止,但是其父程序卻無法正常地終止。此類程序在系統內並沒有任何的作用,但同樣地會占用系統相關的資源)。

START:表示該程序被觸發啟動的時間。

TIME:表示該程序實際使用CPU資源運作的時間。

COMMAND:執行該程序的實際指令。

在osquery上,便是使用processes資料庫表格來儲存系統內相關程序的資訊,可使用「select * from processes」指令來取得系統內的程序資訊,執行結果如圖3所示,而相關欄位說明如表1所示。


▲圖3 取得系統內的程序資訊。

表1 相關欄位內容說明

檢視系統對外連線的狀態

在系統內,可利用netstat指令來查看系統內對外連線的狀態。netstat指令常用的組態選項,如下所述:

-l:僅顯示連線狀態為Listening,就表示以常駐(Daemon)的形式提供服務,例如網站伺服器的網路服務資訊。

-a:顯示目前系統內所有通訊埠的連線狀態資訊。

-t:僅顯示通訊協定為TCP時的連線狀態。

-u:僅顯示通訊協定為UDP時的連線狀態。

-c:顯示連線狀態為CONNECTED(已連線)的資訊。

可以利用「netstat -l」指令來取得系統內正在執行的網路服務,如圖4所示。在osquery上,即是利用名稱為「listening_ports」的資料庫表格來儲存系統內運作中的網路服務資訊,可使用「select * from listening_ports」指令來取得網路服務的資訊(圖5),相關欄位說明如表2所示。


▲圖4 查詢系統內正在執行的網路服務。


▲圖5 取得網路服務的資訊。

表2 相關欄位說明


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!