/*! # NAC监控平台 NAC区块链实时监控和性能分析平台。 ## 功能特性 - ✅ 实时节点监控 - ✅ 性能指标收集 - ✅ 告警通知 - ✅ 可视化仪表板 - ✅ 历史数据分析 ## 使用示例 ```bash # 启动监控服务 nac-monitor start --port 8080 # 查看监控状态 nac-monitor status # 导出监控数据 nac-monitor export --format json ``` */ mod metrics; mod alerts; mod dashboard; use clap::{Parser, Subcommand}; use colored::*; #[derive(Parser)] #[command(name = "nac-monitor")] #[command(about = "NAC监控平台", long_about = None)] #[command(version)] struct Cli { #[command(subcommand)] command: Commands, } #[derive(Subcommand)] enum Commands { /// 启动监控服务 Start { /// 监听端口 #[arg(short, long, default_value = "8080")] port: u16, /// 绑定地址 #[arg(short, long, default_value = "0.0.0.0")] bind: String, }, /// 查看监控状态 Status, /// 导出监控数据 Export { /// 导出格式(json/csv) #[arg(short, long, default_value = "json")] format: String, /// 输出文件 #[arg(short, long)] output: Option, }, } fn main() { env_logger::init(); let cli = Cli::parse(); match cli.command { Commands::Start { port, bind } => { println!("{}", "📊 NAC监控平台".bright_cyan().bold()); println!("监听地址: {}:{}", bind.bright_yellow(), port.to_string().bright_yellow()); let mut alert_mgr = alerts::AlertManager::new(); let metrics = metrics::NodeMetrics::collect(); alert_mgr.check_metrics(&metrics); dashboard::Dashboard::display(&metrics, alert_mgr.get_alerts()); println!("{}", format!("💡 访问 http://{}:{} 查看仪表板", bind, port).bright_blue()); } Commands::Status => { println!("{}", "📈 NAC监控状态".bright_cyan().bold()); let metrics = metrics::NodeMetrics::collect(); let mut alert_mgr = alerts::AlertManager::new(); alert_mgr.check_metrics(&metrics); dashboard::Dashboard::display(&metrics, alert_mgr.get_alerts()); } Commands::Export { format, output } => { println!("{}", "💾 导出监控数据".bright_cyan().bold()); println!("导出格式: {}", format.bright_yellow()); if let Some(out) = output { println!("输出文件: {}", out.bright_yellow()); } println!("{}", "✅ 数据导出功能即将实现".bright_green()); } } }