From 0b64f2ed0320f9dfa47a1423f14da7182b0065a0 Mon Sep 17 00:00:00 2001 From: Spencer Date: Sun, 14 Sep 2025 22:01:00 -0500 Subject: [PATCH] Switched to SQLlite database --- AGENTS.md | 0 CONSTRAINTS.md | 0 PROGRESS.md | 0 README.md | 0 SPEC.md | 26 ++++++++++++++++++++++++++ requirements.txt | 3 ++- 6 files changed, 28 insertions(+), 1 deletion(-) mode change 100644 => 100755 AGENTS.md mode change 100644 => 100755 CONSTRAINTS.md mode change 100644 => 100755 PROGRESS.md mode change 100644 => 100755 README.md mode change 100644 => 100755 SPEC.md mode change 100644 => 100755 requirements.txt diff --git a/AGENTS.md b/AGENTS.md old mode 100644 new mode 100755 diff --git a/CONSTRAINTS.md b/CONSTRAINTS.md old mode 100644 new mode 100755 diff --git a/PROGRESS.md b/PROGRESS.md old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/SPEC.md b/SPEC.md old mode 100644 new mode 100755 index 6d8d9ee..2ed3846 --- a/SPEC.md +++ b/SPEC.md @@ -108,3 +108,29 @@ The project will be composed of the following files: ## 7. Testing and Debugging The script is equipped with a test mode, that only runs the script once, and not continuously. To enable, change the `TEST_MODE` variable in `config.py` to `True`. Once finished testing, change the variable back to `False`. + +## 8. Future Enhancements + +### 8.1. Process Monitoring + +**Description:** The agent will be able to monitor a list of critical processes to ensure they are running. If a process is not running, an anomaly will be generated. + +**Implementation Plan:** + +1. **Configuration:** Add a new list variable to `config.py` named `PROCESSES_TO_MONITOR` which will contain the names of the processes to be monitored. +2. **Data Ingestion:** Create a new function in `monitor_agent.py` called `get_running_processes()` that uses the `psutil` library to get a list of all running processes. +3. **Data Analysis:** In `analyze_data_locally()`, compare the list of running processes with the `PROCESSES_TO_MONITOR` list from the configuration. If a process from the configured list is not found in the running processes, generate a "high" severity anomaly. +4. **LLM Integration:** The existing `generate_llm_report()` function will be used to generate a report for the new anomaly type. +5. **Alerting:** The existing alerting system will be used to send alerts for the new anomaly type. + +### 8.2. Docker Container Monitoring + +**Description:** The agent will be able to monitor a list of critical Docker containers to ensure they are running and healthy. If a container is not running or is in an unhealthy state, an anomaly will be generated. + +**Implementation Plan:** + +1. **Configuration:** Add a new list variable to `config.py` named `DOCKER_CONTAINERS_TO_MONITOR` which will contain the names of the Docker containers to be monitored. +2. **Data Ingestion:** Create a new function in `monitor_agent.py` called `get_docker_container_status()` that uses the `docker` Python library to get the status of all running containers. +3. **Data Analysis:** In `analyze_data_locally()`, iterate through the `DOCKER_CONTAINERS_TO_MONITOR` list. For each container, check its status. If a container is not running or its status is not "running", generate a "high" severity anomaly. +4. **LLM Integration:** The existing `generate_llm_report()` function will be used to generate a report for the new anomaly type. +5. **Alerting:** The existing alerting system will be used to send alerts for the new anomaly type. \ No newline at end of file diff --git a/requirements.txt b/requirements.txt old mode 100644 new mode 100755 index 8c61ee4..382baf9 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,5 @@ discord-webhook ollama syslog-rfc5424-parser python-nmap -schedule \ No newline at end of file +schedule +docker