From 3dda7d01a0696f6e45404a3662e4e14d33f31889 Mon Sep 17 00:00:00 2001 From: Rens Pastoor <555408@student.fontys.nl> Date: Tue, 28 Oct 2025 15:00:32 +0100 Subject: [PATCH] added stuff + monitoring (to logfile) --- Case study 1/IN-NCB Case 1 analysis.docx | Bin 0 -> 40633 bytes Case study 1/diagram case 1.drawio | 343 ++++++++++++++++++ Case study 1/monitoring/collect.py | 19 + Case study 1/monitoring/collected_data.log | 1 + Case study 1/monitoring/prereq.txt | 0 Case study 1/monitoring/send_metrics.py | 32 ++ .../__pycache__/flask.cpython-313.pyc | Bin 0 -> 544 bytes python/flask_scripting/app.py | 12 + 8 files changed, 407 insertions(+) create mode 100644 Case study 1/IN-NCB Case 1 analysis.docx create mode 100644 Case study 1/diagram case 1.drawio create mode 100644 Case study 1/monitoring/collect.py create mode 100644 Case study 1/monitoring/collected_data.log create mode 100644 Case study 1/monitoring/prereq.txt create mode 100644 Case study 1/monitoring/send_metrics.py create mode 100644 python/flask_scripting/__pycache__/flask.cpython-313.pyc create mode 100644 python/flask_scripting/app.py diff --git a/Case study 1/IN-NCB Case 1 analysis.docx b/Case study 1/IN-NCB Case 1 analysis.docx new file mode 100644 index 0000000000000000000000000000000000000000..78906e683e284b2a1333f7c8486e8172dc366b5e GIT binary patch literal 40633 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Case study 1/monitoring/collect.py b/Case study 1/monitoring/collect.py new file mode 100644 index 0000000..54a8096 --- /dev/null +++ b/Case study 1/monitoring/collect.py @@ -0,0 +1,19 @@ +from flask import Flask, request, jsonify +from datetime import datetime +import json + +app = Flask(__name__) + +@app.route('/collect', methods=['POST']) +def collect(): + data = request.get_json() + timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + with open("collected_data.log", "a") as f: + f.write(f"{timestamp} - {json.dumps(data)}\n") + + print(f"[{timestamp}] Data received from {data.get('hostname', 'unknown')}") + return jsonify({"status": "success"}), 200 + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=5000) diff --git a/Case study 1/monitoring/collected_data.log b/Case study 1/monitoring/collected_data.log new file mode 100644 index 0000000..5ae5d5f --- /dev/null +++ b/Case study 1/monitoring/collected_data.log @@ -0,0 +1 @@ +2025-10-28 14:55:03 - {"hostname": "hp-arch", "os": "Linux", "cpu_percent": 1.9, "memory_percent": 30.8, "disk_usage": 85.2, "time": "2025-10-28T14:55:03.021372"} diff --git a/Case study 1/monitoring/prereq.txt b/Case study 1/monitoring/prereq.txt new file mode 100644 index 0000000..e69de29 diff --git a/Case study 1/monitoring/send_metrics.py b/Case study 1/monitoring/send_metrics.py new file mode 100644 index 0000000..7dc375c --- /dev/null +++ b/Case study 1/monitoring/send_metrics.py @@ -0,0 +1,32 @@ +import psutil +import platform +import requests +import socket +from datetime import datetime + +SERVER_URL = "http://localhost:5000/collect" # change this! + +def collect_metrics(): + data = { + "hostname": socket.gethostname(), + "os": platform.system(), + "cpu_percent": psutil.cpu_percent(interval=1), + "memory_percent": psutil.virtual_memory().percent, + "disk_usage": psutil.disk_usage('/').percent, + "time": datetime.now().isoformat() + } + return data + +def send_data(data): + try: + response = requests.post(SERVER_URL, json=data, timeout=5) + if response.status_code == 200: + print("Data sent successfully") + else: + print("Server returned:", response.status_code) + except Exception as e: + print("Error sending data:", e) + +if __name__ == "__main__": + metrics = collect_metrics() + send_data(metrics) \ No newline at end of file diff --git a/python/flask_scripting/__pycache__/flask.cpython-313.pyc b/python/flask_scripting/__pycache__/flask.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..733339c73808bb3be11f6de5b0e4a81289139b5e GIT binary patch literal 544 zcmYjNy-EW?5Z=9?+{GY@f}(}QpC%xliKqxcti&Hk;T0AJj$qc@;pO(2+Z3jXq%bcK zu($FJd=AS6C1Pb4$qP7pM#(I*`_0U^-_FixdU}eWJ?*{wFL-{c;Lpr47_|}fiA!91 zPR=OMyuun{4YWL|(lt`mcj+%1jH+>w8{eEb+<%5^ER)@F1v1Etz1-yWR>%%v4ny_zHello, World!" + + +app.run(host="127.0.0.1", port=5000) \ No newline at end of file