add dynamic
This commit is contained in:
@@ -6,7 +6,7 @@ import sys
|
||||
from pathlib import Path
|
||||
|
||||
from .llm import ollama_summary
|
||||
from .logs import read_events, summarize_events
|
||||
from .logs import local_in_failures, read_events, summarize_events, top_field_values
|
||||
from .mitigation import FortiGateClient, parse_allowlist, suggest_block_candidates
|
||||
from .policies import audit_policies, read_policies
|
||||
from .syslog_server import listen_udp_syslog
|
||||
@@ -27,6 +27,13 @@ def analyze_logs(args: argparse.Namespace) -> int:
|
||||
_print_json(
|
||||
{
|
||||
"summary": summarize_events(events),
|
||||
"diagnostics": {
|
||||
"top_source_ips": top_field_values(events, "srcip", limit=10),
|
||||
"top_services": top_field_values(events, "service", limit=10),
|
||||
"top_actions": top_field_values(events, "action", limit=10),
|
||||
"top_subtypes": top_field_values(events, "subtype", limit=10),
|
||||
"local_in_failures": local_in_failures(events, limit=10),
|
||||
},
|
||||
"block_candidates": [
|
||||
{"src_ip": candidate.src_ip, "score": candidate.score, "reasons": candidate.reasons}
|
||||
for candidate in candidates
|
||||
|
||||
Reference in New Issue
Block a user