將此篇文章跟 Facebook 上的朋友分享將此篇文章跟 Plurk 上的朋友分享將此篇文章跟 Twitter 上的朋友分享列印轉寄
2018/12/3

SQL語法統一取得資源現況 系統管理者必備法寶

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

吳惠麟
隨時掌握處理程序、對外連線狀態、系統記憶體、使用者資訊、歷史指令等系統資源,是系統管理者最重要的工作內容。本文將介紹一套開源碼系統管理工具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 相關欄位說明


這篇文章讓你覺得滿意不滿意
送出
相關文章
Squid快取搭配Sarg 加速瀏覽還能監控連外
實戰eXo Platform 打造企業內部社群平台(下)
實戰eXo Platform 打造企業內部社群平台(上)
開源Suricata入侵偵測 揪出網路攻擊與異常行為
動手玩Google雲端平台 實戰架設LAMP網站主機
留言
顯示暱稱:
留言內容:
送出
熱門點閱文章