原創軟體-1 羊大系統資源監控,一款能讓你掌握server硬件狀態的工具

原創軟體-1 羊大系統資源監控,一款能讓你掌握server硬件狀態的工具

各位好,再過幾天就要迎來農曆新年了,先祝大家新年快樂!
這次給大家分享一款我自己開發的工具,名為(羊大資源監控)。
會開發這個工具,是因為我一直以來都在使用linux系統,並不屬各種服務作為server,
由於我用的linux是純粹的server版,都是用指令跟server交互,沒有圖形化介面,
每次要查看硬碟空間的使用狀況、或是查看網路流量、cpu、記憶體狀態都要記一堆指令,輸出的結果又比較難看懂,
所以一直在尋找一款好用的硬體監控工具,例如寶塔、netdata等工具都常試過,
但大多的問題都是不夠直覺,並且部署起來不方便、而且常常還綑綁一堆不需要的功能,
最終,我常是自己開發了一個簡單好用的監控工具,
開箱即用,不需要複雜的部署過程、也不需要各種疑難雜症的排錯指令,
本工具在之後如果需要,也會考慮開源,讓更多人一起完善各種功能。
接下來就來說明該怎麼使用本工具!

有什麼功能

  • 顯示對外IP
  • 顯示即時網路流量
  • 統計總網路流量
  • 指定日期清除流量統計
  • 以表格顯示每一天統計到的網路流量
  • cpu負載百分比
  • 記憶體/內存用量百分比
  • 記憶體/內存用量,以gb顯示
  • 硬碟/硬盤用量,包括總空間、已用空間、使用率百分比
  • 系統啟動時間,從系統日誌中計算出的系統運行時間
  • 開放直連監控頁面或必須用反向代理的開關

適合那些系統

本工具只在ubuntu22.04系統上做過測試,不過應該可以在任何linux系統中運行,
另外,windows上如果特別編譯出一個版本也可以運行,
但windows替代工具很多,就不多提供一個版本了。

下載

上傳工具到server,並且打開防火牆的10888

  1. 下載羊大資源監控壓縮包並解壓
  2. 將文件夾中的
    03
    以及
    start.sh
    這個文件上傳到你的server上,建議可以放到下面的路徑
    /opt/python/
  3. 開啟防火牆的10888端口,
    無論你是用ufw還是firewall,都需要用指令來開啟10888的tcp port(端口)
  4. 接下來,你有兩種使用方式

直接啟動可執行檔案(不推薦)

只要cd到03所在的路徑,之後用
./03
就可以啟動監控工具了!
之後在任何地方打開瀏覽器,輸入網址:
http://你的域名或IP位置:10888
例如
http://yyy.com:10888
就可以訪問到羊大資源監控的頁面,
但這種方式有個缺點,關閉命令行之後,資源監控的運行就會停止,
因為你是直接在命令行窗口的對話中運行,只要命令行窗口關閉,對話中運行在前台的任何程序都會隨之終止

後台運行(推薦)

前面有說到,還需要上傳start.sh到server,這個就是用來後台運行的腳本,
他會安裝screen到你的server上,這是一個可以在後台運行程序的工具,非常好用,
如果你按照我上面的說明將03和start.sh放到/opt/python這個路徑的話,
你只需要cd到/opt/python,之後在命令行中運行
./start.sh
就可以在後台運行羊大資源監控了,
另外,在/opt/python中還會多出一個output.log文件,這是運行過程中的命令行輸出,
你可以查看這個文件來檢查是否有報錯訊息,或是看看有沒有順利運行。
要注意的是,如果你將03這個主程序檔案放在其他位置,或是給他改名了,又想後台運行的話,需要修改start.sh中的最後兩行,
'''
#移動到主程序所在的目錄
cd /opt/python/
#在後台運行當前目錄中的03,並且名字是server
screen -L -Logfile output.log -dmS server ./03
'''
你可以隨意修改start.sh中的路徑和相關參數,
上面提到的名字,是後台運行我給他取的名字,在screen的命令中可以看到server,那就是給他的名字,
你可以在運行之後,在任何時候運行這個命令來把羊大資源監控呼叫回前台
'screen-r server'
這個時候,他看起來就像是我們直接在命令行使用./03一樣,
只要呼叫回前台,你就可以按
ctrl+c
停止運行

功能設定

羊大資源監控可以設定在指定的日期清除網路流量統計,
這是因為租用的server,都會在每個月的某一天重製流量而做的設計。
在第一次啟動工具之後,會在同一個目錄下生成名為
settings.json
的文件,你可以編輯裡面的設定,
現在只有兩個設定向

  • "public": false,
    設定是否可以直接訪問監控頁面,或是只能使用反向代理來訪問頁面
    如果你想直接訪問,那就要改為
    "public": true,
    如果想限制只能透過反向代理來訪問,那就可以改為
    "public": false,
  • "Start Date of Statistical Period": 13
    指定要清除的日期,
    以上面的例子來說,會在每個月的13日清除網路流量統計

修改完成後,保存文件,之後需要停止當前的監控程序,在重新運行,設定才會生效。

反向代理

下載的羊大資源監控壓縮包中,還有一個nginx的txt檔案,
這是用來配置反向代理網站的範例配置。
nginx是當前非常主流的網站框架,主打低耗且高效,總體來說比老牌的apache網站框架更好用,
如果你不太想配置,也可以將羊大資源監控改為可直接訪問監控頁面的設定,
會需要用反向代理,是因為後續還可以給頁面加密碼,這樣就不是隨便一個人都可以看到監控頁面的了。
另外,監控頁面至少都是每兩秒刷新一個或多個監控函數,要是同時太多裝置訪問的話,或許也會造成不必要的系統資源占用。
下面簡單說明在ubuntu系統上的配置步驟:

  1. 你的系統要有nginx,你可以用apt安裝,像這樣
apt update
apt install nginx
  1. 用你知道的方式,在這個路徑下新增一個檔案(推薦使用winSCP)
    /etc/nginx/sites-available/
    名字隨便取,最好只有純英文,且不要有空格,例如server
  2. 把羊大資源壓縮包中的nginx配置中的內容複製,貼到剛剛建立的檔案中,並稍作修改,主要需要修改的是
    server_name yyy.com;
    把yyy.com改為你自己的域名,要小心不要刪除到行尾的分號,
    改好之後保存
  3. 接下來需要把網站配置建立一個捷徑到另外一個目錄下,(有人稱捷徑為快捷方式或軟鏈接),輸入下面這個指令
ln -s /etc/nginx/sites-available/server /etc/nginx/sites-enabled/

指令中的server是剛剛創建的檔案名,
這個操作的意思是把我們指定的文件拉一個捷徑到啟用網站的目錄

  1. 重新加載nginx,輸入
    nginx -s reload
    修改無誤的話命令行會輸出ok之類的訊息,或是完全沒有輸出,
    這個操作就是加載啟用網站目錄下的所有網站配置文件
  2. 最後記得設定防火牆開放10666,因為網站配置中就指定的是10666 port,
    如果不滿意可以回去修改配置檔案,然後重新加載nginx,
    並且記得開放對應的防火牆規則

給網頁加密碼

nginx配置檔案中有兩行是被注示掉的,當你需要加密碼的時候可以取消注視,這兩行就是

#    auth_basic "輸入帳號密碼"; 
#    auth_basic_user_file /etc/nginx/password/1;

你可以先取消注示在創建密碼文件,或順序倒過來也可以,
但記得必須在兩者都完成後才能重新加載nginx,不然會報錯,
創建密碼的步驟簡單描述如下:

  1. 先安裝生成密碼的包,在命令行中輸入
    'apt install apache2-utils'
  2. 生成一個密碼文件
    'htpasswd -c ./yyy root'
    其中的yyy是生成的檔名,root是帳號名稱,
    帳號名稱是用來登入的帳號名,不是用來登入server的帳號名,所以可以修改成別的,
    輸入後需要重複輸入兩次你想要的密碼
  3. 然後修改nginx檔案,把這行後面的路徑改為剛剛生成密碼文件的路徑,路徑要包括檔名
    auth_basic_user_file /etc/nginx/password/1;
    例如密碼檔案放在/opt,檔名叫做123,那改完就會像這樣
    auth_basic_user_file /opt/123;
    此時你nginx中的這兩行就會像這樣
    auth_basic "輸入帳號密碼"; 
    auth_basic_user_file /opt/123;
  1. 之後重新加載nginx,沒報錯就ok了
    'nginx -s reload'
  2. 嘗試訪問看看,應該就能看到瀏覽器要求你輸入帳號密碼了

總結

如果你覺得這個工具好用,歡迎給我打賞支持,
如果你想讓工具更加好用,歡迎加我QQ,我們可以討論開源或協作開發,
最後,希望我的汗水積累出的成果能對你有所幫助囉!