自己動手用python撰寫一個服務器資源監控程式(牛,牛,牛,親測有效)
由于自己的公司服務器比較多,涉及的區縣也是較多,服務器大多數還是windows得,還比較分散,還得需要每天登錄到服務器上面查看一下cpu的使用率,mem的使用率,各個磁盤的狀態等等問題,手動查詢需要一臺一臺的服務器登錄上去查看,身為一名剛入職不到半年的老運維,看不下去了,只能騷一把,利用強大的python;來實作這個功能,豈不是美滋滋,哈哈哈
對于一個剛涉及到運維行業得人,學習一下這個,保證你不虧,甚至你還可以牛氣一把,升職加薪就靠它了
大佬們請讓步,小編只是一個小白,勿噴
- 涉及的思路步驟
- 首先的有一臺有公網的服務器,可以讓公司里面的所有服務器連接的公網ip,因為我們需要一個強大的資料庫來進行統計各個服務器的實時狀態
- 我們的需要部署一個程式到各個服務器上面,讓這個程式實時的匯總自己所在服務器的狀態,然后寫進資料庫里面
- 我們的利用有公網ip的這個服務器,在他的上面部署一個python的web界面,讓這個web實時的從資料庫里面提取資料,并展示出來
邏輯圖

效果圖

第一步:配置mysql服務器
購買一臺云服務
小編直接用的是阿里云的ecs云服務器,這個購買程序也是比較簡單的,當然你也可以用一個帶公網ip的物體服務器來代替它
其實沒有那么復雜,小編是因為公司里面沒有現成的環境,所以自己就搭建了一個,在選擇系統上,小編選擇的是centos7.5,那么問題來了,為什么小編不選擇windows系統呢,第一是因為小編熟悉linux系統,也是最近才接觸到windows系統,第二小編發現windows系統,很容易出現一些目前小編解決不了的問題,
安裝資料庫
這里就不做過多的展示了
大家可以參考lnmp架構里面的mysql安裝部分(保準你一看就懂,超簡單那):lnmp架構搭建
資料庫里面庫表以及欄位設定
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| yuancheng | #用的是這個庫
+--------------------+
5 rows in set (0.11 sec)
mysql> use yuancheng;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------+
| Tables_in_yuancheng |
+---------------------+
| yuancheng | #用的是這個表
+---------------------+
1 rows in set (0.00 sec)
mysql> select * from yuancheng; 表里面的欄位,小編都用拼音標注了哈,再看不懂就真的沒法了
+--------------------------+-----------------+-----------------+------------------+-------+-------+-------+------------------+-------+------------------+------------------+
| user_name | user_ip | denglucishu | zaixianzhuangtai | cpu | mem | c | d | e | f | g |
+--------------------------+-----------------+-----------------+------------------+-------+-------+-------+------------------+-------+------------------+------------------+
| ceshi | 192.168.100.10 | 功能待開發 | 功能待開發 | 0.0% | 38.7% | 28.0% | 無相關磁盤% | 2.0% | 無相關磁盤% | 無相關磁盤% |
********
省略
**************
+--------------------------+-----------------+-----------------+------------------+-------+-------+-------+------------------+-------+------------------+------------------+
10 rows in set (0.00 sec)
mysql>
小編為什么沒有寫出具體的操作步驟呢,第一呢,是應為,小編覺得這個應該是個基礎,考驗一下大家,第二呢小編里面用了好多的yuancheng,這個看起來比較的亂,小編還是希望大家可以按照自己的命名方式命名,
將python升級到3.8
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz #下載python3.8,沒有wget命令的自行下載yum -y install wget
tar -xf Python-3.8.0.tgz #小編比較懶,直接解壓到了當前家目錄
cd Python-3.8.0 #進到解壓后的目錄里面,進行編譯安裝
yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y #安裝一些依賴
mkdir /usr/Python-3.8.0 #創建一個目錄,我們需要將python3.8安裝到這個目錄里面
./configure --prefix=/usr/Python-3.8.0 #指定目錄進行安裝
echo $? #檢查一下上一步執行是否成功
make #make一下
echo $? #檢查上一步是否執行成功
make install #install一下
echo $? #檢查上一步是否執行成功
ln -s /usr/Python-3.8.0/bin/python3 /usr/bin/python3 #軟連接一下,省的寫環境檔案了
ln -s /usr/Python-3.8.0/bin/pip3 /usr/bin/pip3 #軟連接一下,省的寫環境檔案了
[root@localhost ~]# cd #回到家目錄
[root@localhost ~]# python3 --version #檢查一下是否安裝成功,出現以下版本基本上就是成功的標志了
Python 3.8.0
虛擬環境,安裝部署flask
[root@localhost ~]# mkdir /opt/yuancheng #創建一個叫yuancheng的目錄,一會我們所有的檔案都放到這個目錄下面
[root@localhost ~]# cd /opt/yuancheng
[root@localhost yuancheng]# python3 -m venv yuancheng #創建一個叫yuancheng的虛擬環境
[root@localhost yuancheng]# source yuancheng/bin/activate #激活以下虛擬環境
(yuancheng) [root@localhost yuancheng]# pip3 install flask #安裝flask模塊
出現前面的(yuancheng)代表著我們的虛擬環境基本上也就是布置好了,那么就有人要問了,為什么非要部署一個虛擬環境呢,這個就不懂了吧,首先呢,每個服務器上面都有python,都有著本身的作用,第二,部署一個虛擬環境,可以隨意折騰了,也算是減少一些影響生產業務的概率吧,
幾個重要的檔案
[root@localhost yuancheng]# pwd
/opt/yuancheng #這個是我們創建虛擬環境所在的目錄(也就是在這個目錄下面創建了一個叫yuancheng的虛擬環境)
[root@localhost yuancheng]# ls
login.html web.py yuancheng #這里需要注意的是這個就是在login.html這個是配合web.py腳本進行網頁展示的,后面的yuanhcneg就是虛擬環境了
[root@localhost yuancheng]# ll ./yuancheng/bin/activate #這個activate就是虛擬環境的激活檔案
-rw-r--r--. 1 root root 2214 4月 2 14:07 ./yuancheng/bin/activate
給腳本加上相應的執行權限
(yuancheng) [root@localhost yuancheng]# chmod a+x web.py
(yuancheng) [root@localhost yuancheng]# ll
總用量 8
-rw-r--r--. 1 root root 1850 4月 2 09:05 login.html
-rwxr-xr-x. 1 root root 1066 4月 6 20:54 web.py #可以執行的哈,為綠色的哈
drwxr-xr-x. 5 root root 74 4月 2 14:07 yuancheng
修改腳本里面的資料庫相應的配置

啟動腳本,從資料庫里面提取資料
(yuancheng) [root@localhost yuancheng]# ./web.py #啟動腳本,對資料庫進行資料提取
* Serving Flask app "web" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) #主要是這個5000埠號,訪問的話要用ip + 埠號
* Restarting with stat
* Debugger is active!
* Debugger PIN: 613-459-853
192.168.100.1 - - [06/Apr/2021 21:41:16] "GET / HTTP/1.1" 200 -
出現以上的內容,大家就可以到瀏覽器上面看看了,當前你的資料庫為空,應該沒有什么資料,
這里需要注意的是云服務器也得再安全組里面放行這個埠號,比如上面的埠號是5000,那么在安全組里面就得放行5000埠

將用于給資料庫寫入資料得腳本放到各個服務器上面

這個腳本也是相當得簡單,就是通過一些字串得組合,將資料寫入到資料庫里面,也就是我們第一步創建得那個庫表中,讓后web程式從資料庫里面提取資料,而后展現在瀏覽器上面,
雙擊程式,按照提示輸入就可以了

- 如果程式不報錯得話可以到瀏覽器上面重繪以下看看是不是已經寫進資料庫,并讀取資料了

看到上面得這個說明我們已經成功了,這個是一個服務器得,大家可以嘗試多臺服務器得,但是這里小編要告訴大家一個注意事項了,不要所有得服務器都用一個資料庫賬號和密碼,可以多設定幾個賬號密碼,并最小權限得原則合理使用
結束語
所有得原始碼,小編已經上傳到了資源里面
- 這個還是有點缺陷,大家可以試著實作以下自己得想要得功能
- 這個比較初級,大佬級別得任務勿噴
- 夜深了,小編著急,寫的有點不是很全,大家有問題就留言吧
- 這個還是值得大家學習得,相信你一定會有識訓得,你值得一試
- 有問題大家可以留言,小編抽空進行更新
相應原始碼下載地址:服務器監控.zip

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273623.html
標籤:其他
上一篇:Linux常用命令精講(全)
