本文目錄一覽:
- 1、如何用python做一個設備運維軟體
- 2、python 監控一個文件夾?
- 3、如何使用python腳本實現對windows系統監控
- 4、使用python,在linux上監控遠程windows的CPU、硬碟、內存使用率?
- 5、如何實現Python伺服器性能監控
如何用python做一個設備運維軟體
Python開發的jumpserver跳板機
jumpserver跳板機是一款由Python編寫開源的跳板機(堡壘機)系統,實現了跳板機應有的功能。基於ssh協議來管理,客戶端無需安裝agent。
企業主要用於解決:可視化安全管理
特點:完全開源,GPL授權
Python編寫,Django開發框架,容易再次開發
實現了跳板機基本功能:認證、授權、審計。集成了Ansible、批量命令等。功能強大。
通俗點就是起到監控誰在伺服器上做了什麼操作等。錄像回放、命令搜索、實時監控、批量上傳下載等。
第三:Python開發的Magedu分散式監控系統
以自動化運維視角為出發點,自動化功能、監控告警、性能調優,結合saltstack實現自動化配置管理等內容進行了全方位的深入剖析。
企業主要用於解決:自動化監控常用系統服務、應用、網路設備等。分散式可監控更多伺服器,分區域監控再匯總。Zabbix監控結合Python自定義監控腳本。
監控系統需求討論:
監控常用系統服務、應用、網路設備等?一台主機上可監控多個不同服務、不同服務的監控間隔可不同?同一個服務在不同主機上的監控間隔、報警閾值可不同?告警級別?數據可視化,如何做出簡潔美觀的用戶界面?如何實現單機支持5000+機器監控需求?採取何種通信方式?主動、被動?
第四:Python開發的Magedu的CMDB
cmdb的開發需要包含三部分功能:採集硬體數據、API、頁面管理。
企業主要用於解決:項目功能,採集硬體數據、Api、頁面管理。統計資產,例如伺服器存放位置,伺服器上的賬號等等。
執行服務的過程如下:伺服器的客戶端採集硬體數據,然後將硬體信息發送到API,API負責將獲取到的數據保存到資料庫中,後台管理程序負責對伺服器信息的配置和展示。
第五:Python開發的任務調度系統
Python任務調度系統的multiprocessing模塊不但支持多進程,其中managers子模塊還支持把多進程分布到多台機器上。
企業主要用於解決:通俗的理解,批量管理crontab定時任務。原理用戶通過web頁面設置任務,傳輸到任務調度系統伺服器上的客戶端,客戶端收集數據反饋給伺服器端,伺服器端根據任務具體內容調度後端的集群伺服器做定時任務。
一個服務進程可以作為調度者,將任務分布到其他多個機器的多個進程中,依靠網路通信。想到這,就在想是不是可以使用此模塊來實現一個簡單的作業調度系統。
第六:Python運維流程系統
使用python語言編寫的調度和監控工作流的平台內部用來創建、監控和調整數據管道。任何工作流都可以在這個使用Python來編寫的平台上運行。
企業主要用於解決:通俗點說就是規範運維的操作,加入審批,一步一步操作的概念。
是一種允許工作流開發人員輕鬆創建、維護和周期性地調度運行工作流(即有向無環圖或成為DAGs)的工具。這些工作流包括了如數據存儲、增長分析、Email發送、A/B測試等等這些跨越多部門的用例。
這個平台擁有和 Hive、Presto、MySQL、HDFS、Postgres和S3交互的能力,並且提供了鉤子使得系統擁有很好地擴展性。除了一個命令行界面,該工具還提供了一個基於Web的用戶界面讓您可以可視化管道的依賴關係、監控進度、觸發任務等。
來個小總結
python 監控一個文件夾?
笨辦法是在循環中不斷讀取目錄以及目錄中文件的最後修改時間,如果有變更,則說說文件被修改。
這種辦法需要不斷的循環讀取文件信息,這對cpu佔用較高,同時也會產生一定的磁碟IO,短時間小範圍使用尚可,如果長時間運行在伺服器上,或者監控一個包含很多文件的目錄則不可取。
辦法之二是利用操作系統提供的功能來實現。
比如在Windows中,可以利用Windows API【ReadDirectoryChangesW】來實現。這可以免去大量的磁碟IO。因為文件修改的頻率一般不高,可以使用定計時器進行循環,對cup的佔用也會少很多。
如何使用python腳本實現對windows系統監控
示例:
#!/usr/bin/env python
# encoding: utf-8
“””
MonitorLog.py
Usage: MonitorLog.py …
Monitor the log file
-f log file
-h help info
python MonitorLog.py -f C:\monitor.log
Created by zhoubo on 2011-08-29.
“””
import sys
import os
import getopt
import subprocess
import time
import codecs
import winsound
ABSPATH = os.path.dirname(os.path.abspath(__file__))
MONITERCONF = ‘moniter_keyword.txt’ #utf8 file
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], ‘hf:’)
except getopt.GetoptError, err:
print str(err)
print __doc__
return 1
path = ”
for k, v in opts:
if k == ‘-f’:
path = v
elif k == ‘-h’:
print __doc__
return 0
if not (path and os.path.exists(path)):
print ‘Invalid path: %s’ % path
print __doc__
return 2
#命令行元組
cmd = (‘tail’, ‘-f’, path)
print ‘ ‘.join(cmd)
output = subprocess.Popen(cmd, stdout=subprocess.PIPE)
keywordMap = {}
#載入監控的關鍵字信息
with codecs.open(os.path.join(ABSPATH, MONITERCONF), ‘r’, ‘utf8’) as f:
lines = f.readlines()
for line in lines:
line = line.strip()
if not line:
continue
keyword, wav = line.strip().split(‘:’)
keywordMap[keyword] = wav
while True:
line = output.stdout.readline()
#process code,得到輸出信息後的處理代碼
if not line:
time.sleep(0.01)
continue
line = line.strip().decode(‘utf8’)
print line
for keyword in keywordMap:
if line.find(keyword) -1:
winsound.PlaySound(keywordMap[keyword],
winsound.SND_NODEFAULT)
#time.sleep(0.01)
return 0
if __name__ == ‘__main__’:
sys.exit(main())
使用python,在linux上監控遠程windows的CPU、硬碟、內存使用率?
你需要安裝wmic,它實現了linux下能使用wmi,安裝以後就可以用了,下面是例子。
import wmi_client_wrapper as wmi
wmic = wmi.WmiClientWrapper(
username=”Administrator”,
password=”password”,
host=”192.168.1.149″,
)
output = wmic.query(“SELECT * FROM Win32_Processor”)
如何實現Python伺服器性能監控
其實你完全可以使用現成的工具:linux系統的話,監控工具比較好的有ganglia,zabbix windows系統的話,用自帶的「性能監視器」(老版本的windows叫性能計數器)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/253542.html