原創軟體-1 羊大系統資源監控,一款能讓你掌握server硬件狀態的工具
各位好,再過幾天就要迎來農曆新年了,先祝大家新年快樂!
這次給大家分享一款我自己開發的工具,名為(羊大資源監控)。
會開發這個工具,是因為我一直以來都在使用linux系統,並不屬各種服務作為server,
由於我用的linux是純粹的server版,都是用指令跟server交互,沒有圖形化介面,
每次要查看硬碟空間的使用狀況、或是查看網路流量、cpu、記憶體狀態都要記一堆指令,輸出的結果又比較難看懂,
所以一直在尋找一款好用的硬體監控工具,例如寶塔、netdata等工具都嘗試過,
但大多的問題都是不夠直覺,並且部署起來不方便、而且常常還綑綁一堆不需要的功能,
最終,我嘗試自己開發了一個簡單好用的監控工具,
開箱即用,不需要複雜的部署過程、也不需要各種疑難雜症的排錯指令,
本工具在之後如果需要,也會考慮開源,讓更多人一起完善各種功能。
接下來就來說明該怎麼使用本工具!
有什麼功能
- 顯示對外IP
- 顯示即時網路流量
- 統計總網路流量
- 指定日期清除流量統計
- 以表格顯示每一天統計到的網路流量
- cpu負載百分比
- 記憶體/內存用量百分比
- 記憶體/內存用量,以gb顯示
- 硬碟/硬盤用量,包括總空間、已用空間、使用率百分比
- 系統啟動時間,從系統日誌中計算出的系統運行時間
- 開放直連監控頁面或必須用反向代理的開關
適合那些系統
本工具只在ubuntu22.04系統上做過測試,不過應該可以在任何linux系統中運行,
另外,windows上如果特別編譯出一個版本也可以運行,
但windows替代工具很多,就不多提供一個版本了。
下載
- V1.0版
點我下載羊大資源監控V1.0
上傳工具到server,並且打開防火牆的10888
- 下載羊大資源監控壓縮包並解壓
- 將文件夾中的
03
以及
start.sh
這個文件上傳到你的server上,建議可以放到下面的路徑
/opt/python/ - 開啟防火牆的10888端口,
無論你是用ufw還是firewall,都需要用指令來開啟10888的tcp port(端口) - 接下來,你有兩種使用方式
直接啟動可執行檔案(不推薦)
只要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系統上的配置步驟:
- 你的系統要有nginx,你可以用apt安裝,像這樣
apt update
apt install nginx
- 用你知道的方式,在這個路徑下新增一個檔案(推薦使用winSCP)
/etc/nginx/sites-available/
名字隨便取,最好只有純英文,且不要有空格,例如server - 把羊大資源壓縮包中的nginx配置中的內容複製,貼到剛剛建立的檔案中,並稍作修改,主要需要修改的是
server_name yyy.com;
把yyy.com改為你自己的域名,要小心不要刪除到行尾的分號,
改好之後保存 - 接下來需要把網站配置建立一個捷徑到另外一個目錄下,(有人稱捷徑為快捷方式或軟鏈接),輸入下面這個指令
ln -s /etc/nginx/sites-available/server /etc/nginx/sites-enabled/
指令中的server是剛剛創建的檔案名,
這個操作的意思是把我們指定的文件拉一個捷徑到啟用網站的目錄
- 重新加載nginx,輸入
nginx -s reload
修改無誤的話命令行會輸出ok之類的訊息,或是完全沒有輸出,
這個操作就是加載啟用網站目錄下的所有網站配置文件 - 最後記得設定防火牆開放10666,因為網站配置中就指定的是10666 port,
如果不滿意可以回去修改配置檔案,然後重新加載nginx,
並且記得開放對應的防火牆規則。
有人會疑惑,為什麼開了10888還要開10666,
在使用了nginx反向代理之後,你就可以關閉防火牆的10888port,因為這個10888是直接連線到此監控工具,
而nginx配置文件中是監聽10666port的連線請求,用戶連線的時候是先聯到10666,之後由nginx轉發到10888根監控工具建立連線。
如果你設定好了反向代理,那在瀏覽器打網址的時候是類似這樣→
http://你的網址:10666
給網頁加密碼
nginx配置檔案中有兩行是被注釋掉的,當你需要加密碼的時候可以取消注視,這兩行就是
# auth_basic "輸入帳號密碼";
# auth_basic_user_file /etc/nginx/password/1;
你可以先取消注釋在創建密碼文件,或順序倒過來也可以,
但記得必須在兩者都完成後才能重新加載nginx,不然會報錯,
創建密碼的步驟簡單描述如下:
- 先安裝生成密碼的包,在命令行中輸入
'apt install apache2-utils' - 生成一個密碼文件
'htpasswd -c ./yyy root'
其中的yyy是生成的檔名,root是帳號名稱,
帳號名稱是用來登入的帳號名,不是用來登入server的帳號名,所以可以修改成別的,
輸入後需要重複輸入兩次你想要的密碼 - 然後修改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;
- 之後重新加載nginx,沒報錯就ok了
'nginx -s reload' - 嘗試訪問看看,應該就能看到瀏覽器要求你輸入帳號密碼了
更新日誌
- V1.1
解決達到重置流量統計的日期時,無法正確重置的bug
總結
如果你覺得這個工具好用,歡迎給我打賞支持,
如果你想讓工具更加好用,歡迎加我QQ,我們可以討論開源或協作開發,
最後,希望我的汗水積累出的成果能對你有所幫助囉!