版本: v2.1.0
最后更新: 2025-12-22
# 克隆仓库
git clone https://github.com/songqipeng/cloudlens.git
cd cloudlens
# 安装依赖
pip install -r requirements.txt
# 可选:安装 AI 预测依赖
pip install prophet
mysql -u cloudlens -p cloudlens < sql/init_mysql_schema.sql~/.cloudlens/.env 文件# 1. 添加云账号
./cl config add \
--provider aliyun \
--name prod \
--region cn-hangzhou \
--ak YOUR_ACCESS_KEY \
--sk YOUR_SECRET_KEY
# 2. 查询资源
./cl query ecs --account prod
# 3. 分析闲置资源
./cl analyze idle --account prod
# 交互式添加
./cl config add
# 命令行参数
./cl config add \
--provider aliyun \
--name staging \
--region cn-beijing \
--ak <YOUR_AK> \
--sk <YOUR_SK>
# 列出所有账号
./cl config list
./cl config remove --name staging
# 查询ECS实例
./cl query ecs --account prod
# 查询RDS数据库
./cl query rds --account prod
# 查询Redis实例
./cl query redis --account prod
# 查询VPC网络
./cl query vpc --account prod
# 查询弹性公网IP
./cl query eip --account prod
# 查询负载均衡
./cl query slb --account prod
# 导出为JSON
./cl query ecs --account prod --format json --output ecs.json
# 导出为CSV
./cl query ecs --account prod --format csv --output ecs.csv
# 并发查询所有账号
./cl query ecs --concurrent
# 分析最近7天的闲置资源
./cl analyze idle --account prod --days 7
# 强制刷新缓存
./cl analyze idle --account prod --days 7 --no-cache
闲置判定标准(满足任意2个条件):
# 检查30天内到期的资源
./cl analyze renewal --account prod --days 30
# 当前成本快照
./cl analyze cost --account prod
# 成本趋势分析
./cl analyze cost --account prod --trend
# 预测未来90天成本
./cl analyze forecast --account prod --days 90
# 分析折扣趋势并导出HTML报告
./cl analyze discount --export
# 指定账单目录
./cl analyze discount --bill-dir ./bills --export
# 基础安全检查
./cl analyze security --account prod
# CIS Benchmark 合规检查
./cl analyze security --account prod --cis
./cl analyze tags --account prod
# 测试账单API连接
./cl bill test --account prod
# 获取最近3个月账单(存储到MySQL)
./cl bill fetch --account prod --use-db
# 获取指定时间范围账单
./cl bill fetch --account prod --start 2025-01 --end 2025-06 --use-db
通过 Web 界面访问 /cost 页面,查看:
通过 Web 界面访问 /security/cis 页面,查看:
通过 Web 界面访问 /security 页面,查看:
# 干运行模式(默认,不会实际修改)
./cl remediate tags --account prod
# 指定标签
./cl remediate tags --account prod --env production --owner devops
# 实际执行修复
./cl remediate tags --account prod --confirm
./cl remediate history --limit 50
./cl report generate --account prod --format excel --include-idle
./cl report generate --account prod --format html
# 启动后端(终端1)
cd web/backend
python -m uvicorn main:app --reload --port 8000
# 启动前端(终端2)
cd web/frontend
npm run dev
/): 成本概览、资源统计、闲置资源/resources): 多类型资源查询和筛选/cost): 成本趋势和构成分析/discounts): 折扣趋势和高级分析/budgets): 预算创建和管理/virtual-tags): 虚拟标签创建和管理/alerts): 告警规则和通知配置/security): 安全评分和检查结果/optimization): 资源优化建议/reports): 生成和下载报告详细说明请参考 Web 快速开始指南
支持 SQL-like 语法:
# 查询包年包月实例
./cl query ecs --filter "charge_type=PrePaid"
# 查询即将到期的实例
./cl query ecs --filter "expire_days<7"
# 组合条件
./cl query ecs --filter "status=Running AND region=cn-hangzhou"
# 查看缓存状态
./cl cache status
# 清除所有缓存
./cl cache clear --all
# 清理过期缓存
./cl cache cleanup
问题:InvalidAccessKeyId.NotFound
解决方案:
./cl audit permissions --account prod问题:Access denied for user
解决方案:
~/.cloudlens/.env 文件mysql -u cloudlens -p cloudlensmysqladmin ping问题:页面显示错误
解决方案:
curl http://127.0.0.1:8000/health问题:某些页面显示无数据
解决方案:
./cl bill fetch --account prod --use-db建立定时任务:
# 每天运行
./cl analyze idle --account prod
./cl analyze cost --account prod
充分利用缓存机制,避免重复查询:
# 首次查询会缓存24小时
./cl query ecs --account prod
# 后续查询使用缓存,速度极快
./cl query ecs --account prod
查询多个账号时使用并发:
./cl query ecs --concurrent