Выставить работоспособность системы Windows через HTTP, машиночитаемую?

Существуют ли какие-либо готовые инструменты, которые предоставят базовое состояние компьютера Windows (доступ к сети, загрузка системы и т. Д.) Через HTTP в машиночитаемой форме, к которой я смогу получить доступ с другого хоста?

2 ответа

Если под "готовыми" вы подразумеваете "родной для ОС", то нет *.

Обычными собственными методами сбора статистики производительности Windows являются Perfmon (TCP 445), WMI (TCP 445) или SNMP (UDP 161/162).

Вы заинтересованы в том, чтобы просто использовать HTTP для подключения к данным или на самом деле хотите запустить удобочитаемый веб-сервер на каждой целевой машине Windows, показывающей панель состояния работоспособности? Если вы используете серверы HP или Dell, они уже включены в системные агенты, предоставляемые поставщиком, хотя в основном они ориентированы на статистику оборудования, поэтому не очень подходят для гостей виртуальных машин.

  • Я полагаю, вы можете рассчитывать, используя WinRM через HTTP(S) и собирая статистику perfmon напрямую...

Хорошо - не совсем то, что вы искали, но мне было скучно, и это тривиальный вопрос, который нужно решить. Вот небольшое приложение колбы:

#!/usr/bin/env python

import psutil
import flask
import json

from flask import Flask
app = Flask(__name__)

def getStats():
    data = {}
    data['cpu_percent'] = psutil.cpu_percent(interval=1, percpu=True)
    data['memory_virt'] = psutil.virtual_memory()
    data['disk_io'] = json.dumps(psutil.disk_io_counters()) 
    data['disk_usage'] = psutil.disk_usage("C:") # double check this, I'm on osx
    return json.dumps(data)

@app.route('/')
def main():
    return getStats()

if __name__ == "__main__":
    app.run(host='0.0.0.0')

Который возвращает JSON-представление вашего процессора, памяти, дискового ввода-вывода и использования диска:

{
   "disk_usage":[
      371011354624,
      273490915328,
      97258295296,
      73.8
   ],
   "memory_virt":[
      17179869184,
      5456252928,
      68.2,
      14814887936,
      102600704,
      5523148800,
      5353652224,
      3938086912
   ],
   "disk_io":"[18150220, 10587005, 1112392108544, 834027424256, 9743448, 3448989]",
   "cpu_percent":[
      20.0,
      1.0,
      16.0,
      0.0,
      12.0,
      0.0,
      16.7,
      1.0
   ]
}

Все, что вам нужно для запуска этой программы

(save the code above to remote-mon.py and open port 5000 in Windows Firewall)
pip install flask psutil
python remote-mon.py

Затем вы можете вызвать http://{{machine'sIP}}:5000/ для объекта json.

Другие вопросы по тегам