- Add a StreamHandler to the logger to output all logs to the console. - Log the LLM response to the console for real-time monitoring. - Update PROGRESS.md to reflect the completion of the task. - Fix a syntax error in monitor_agent.py.
3.5 KiB
3.5 KiB
Project Progress
Phase 1: Initial Setup
- Create
monitor_agent.py - Create
config.py - Create
requirements.txt - Create
README.md - Create
.gitignore - Create
SPEC.md - Create
PROMPT.md - Create
CONSTRAINTS.md
Phase 2: Data Storage
- Implement data storage functions in
data_storage.py - Update
monitor_agent.pyto use data storage - Update
SPEC.mdto reflect data storage functionality
Phase 3: Expanded Monitoring
- Implement CPU temperature monitoring
- Implement GPU temperature monitoring
- Implement system login attempt monitoring
- Update
monitor_agent.pyto include new metrics - Update
SPEC.mdto reflect new metrics - Extend
calculate_baselinesto include system temps
Phase 4: Troubleshooting
- Investigated and resolved issue with
jclibrary - Removed
jclibrary as a dependency - Implemented manual parsing of
sensorscommand output
Phase 5: Network Scanning (Nmap Integration)
- Add
python-nmaptorequirements.txtand install. - Define
NMAP_TARGETSandNMAP_SCAN_OPTIONSinconfig.py. - Create a new function
get_nmap_scan_results()inmonitor_agent.py:- Use
python-nmapto perform a scan on the defined targets with the specified options. - Return the parsed results.
- Use
- Integrate
get_nmap_scan_results()into the main monitoring loop:- Call this function periodically (e.g., less frequently than other metrics).
- Add the
nmapresults to thecombined_datadictionary.
- Update
data_storage.pyto storenmapresults. - Extend
calculate_baselines()indata_storage.pyto includenmapbaselines:- Compare current
nmapresults with historical data to identify changes.
- Compare current
- Modify
analyze_data_with_llm()prompt to includenmapscan results for analysis. - Consider how to handle
nmappermissions. - Improve Nmap data logging to include IP addresses, open ports, and service details.
Phase 6: Code Refactoring and Documentation
- Remove duplicate
pingparsingimport inmonitor_agent.py. - Refactor
get_cpu_temperatureandget_gpu_temperatureto callsensorscommand only once. - Refactor
get_login_attemptsto use a position file for efficient log reading. - Simplify JSON parsing in
analyze_data_with_llm. - Move LLM prompt to a separate function
build_llm_prompt. - Refactor main loop into smaller functions (
run_monitoring_cycle,main). - Create helper function in
data_storage.pyfor calculating average metrics. - Update
README.mdwith current project status and improvements. - Create
AGENTS.mdto document human and autonomous agents.
Keeping track of Current Objectives
[x] Improve "high" priority detection by explicitly instructing LLM to output severity in structured JSON format. [x] Implement dynamic contextual information (Known/Resolved Issues Feed) for LLM to improve severity detection.
TODO
- Change baseline calculations to only use integers instead of floats.
- Add a log file that only keeps records for the past 24 hours.
- Log all LLM responses to the console.
- Reduce alerts to only happen between 9am and 12am.
- Get hostnames of devices in Nmap scan.
- Filter out RTT fluctuations below 10 seconds.
- Filter out temperature fluctuations with differences less than 5 degrees.