catonetworks/cato-cli
GitHub: catonetworks/cato-cli
这是一个 Python 编写的 CLI 工具,通过 Cato Networks GraphQL API 简化网络和安全管理操作。
Stars: 14 | Forks: 3
# Cato Networks GraphQL API CLI
该软件包提供了一个简单易用的命令行界面,符合行业标准(例如 AWS CLI),并使客户能够通过 [Cato Networks GraphQL API](https://api.catonetworks.com/api/v1/graphql2) 轻松管理 Cato Networks 配置和流程,便于集成到配置管理、编排或自动化框架中以支持 DevOps 模型。
## 概述
CatoCLI 是一个命令行界面,用于访问 Cato Networks GraphQL API,使您能够:
- 生成详细的网络和安全报告
- 分析用户和应用程序活动
- 监控网络性能和事件
- 以多种格式(JSON、CSV)导出数据
- 自动化报告和监控任务
## 前置条件
- Python 3.6 或更高版本
- 已安装 CatoCLI(`pip3 install catocli`)
- 有效的 Cato Networks API 令牌和账户 ID
- 正确的身份验证配置(请参阅[身份验证设置](#authentication-setup))
## 安装说明
`pip3 install catocli`
## 身份验证设置
在使用任何查询操作之前,请配置您的 CatoCLI 配置文件:
```
# 交互式配置
catocli configure set
# 非交互式配置
catocli configure set --cato-token "your-api-token" --account-id "12345"
# 列出已配置的配置文件
catocli configure list
# 显示当前配置文件
catocli configure show
```
### 启用命令行 Tab 自动补全
有关启用 Tab 补全的详细信息,请参阅 [TAB_COMPLETION.md](TAB_COMPLETION.md)。
### 文档
有关配置文件管理的详细信息,请参阅 [PROFILES.md](PROFILES.md)。
[点击此处](https://support.catonetworks.com/hc/en-us/articles/4413280536081-Generating-API-Keys-for-the-Cato-API) 查看如何创建用于身份验证的 API 密钥。
## 运行 CLI
```
catocli -h
catocli query -h
catocli query entityLookup -h
catocli query entityLookup '{"type":"country"}`
// Override the accountID value as a cli argument
catocli query entityLookup -accountID=12345 '{"type":"country"}`
```
## 本地运行(非 pip 包形式)
```
git clone git@github.com:Cato-Networks/cato-cli.git
cd cato-cli
python3 -m catocli -h
```
### 高级 cato-cli 主题
- [常用模式与最佳实践](./catocli_user_guide/common-patterns.md) - 输出格式、时间范围、过滤模式
- [Python 集成 - Windows](./catocli_user_guide/python-integration-windows.md) - Windows 特定的 Python 自动化示例
- [Python 集成 - Unix/Linux/macOS](./catocli_user_guide/python-integration-unix.md) - 基于 Unix 的 Python 集成指南
- [SIEM 集成指南](./catocli_user_guide/siem-integration.md) - 实时安全事件流式传输到 SIEM 平台
- [Terraform 规则集成](./catocli_user_guide/terraform-rules-integration.md) - 将策略规则导出/导入到 Terraform 以进行 IaC 管理
## 自定义报告查询操作
### 自定义报告分析查询
| 操作 | 描述 | 指南 |
|-----------|-------------|--------|
| [账户指标](./catocli_user_guide/account-metrics.md) | 按站点、用户或接口的网络性能指标 | 📊 |
| [应用程序统计](./catocli_user_guide/app-stats.md) | 用户活动和应用程序使用分析 | 📱 |
| [应用程序统计时间序列](./catocli_user_guide/app-stats-timeseries.md) | 按小时/每日细分的流量分析 | 📈 |
| [事件时间序列](./catocli_user_guide/events-timeseries.md) | 安全事件、连接性和威胁分析 | 🔒 |
| [套接字端口指标](./catocli_user_guide/socket-port-metrics.md) | 套接字接口性能和流量分析 | 🔌 |
| [套接字端口时间序列](./catocli_user_guide/socket-port-timeseries.md) | 随时间变化的套接字性能指标 | ⏱️ |
## 快速入门示例
### 基本网络健康检查
```
# 获取上一小时账户指标
catocli query accountMetrics '{"timeFrame":"last.PT1H"}'
```
### 用户活动报告(CSV 格式)
```
# 将上个月的用户活动导出为CSV
catocli query appStats '{
"appStatsFilter": [],
"appStatsSort": [],
"dimension": [ { "fieldName": "user_name" }, { "fieldName": "domain" } ],
"measure": [
{ "aggType": "sum", "fieldName": "upstream" },
{ "aggType": "sum", "fieldName": "downstream" },
{ "aggType": "sum", "fieldName": "traffic" },
{ "aggType": "sum", "fieldName": "flows_created" }
],
"timeFrame": "last.P1D"
}' -f csv --csv-filename appStats_daily_user_activity_report.csv
```
### 安全事件分析
```
# 每周安全事件分解
catocli query eventsTimeSeries '{
"buckets": 7,
"eventsFilter": [{"fieldName": "event_type", "operator": "is", "values": ["Security"]}],
"eventsMeasure": [{"aggType": "sum", "fieldName": "event_count"}],
"perSecond": false,
"timeFrame": "last.P7D"
}' -f csv --csv-filename eventsTimeSeries_weekly_security_events_report.csv
```
## 输出格式
CatoCLI 支持多种输出格式:
- **增强型 JSON**(默认):进行粒度调整的格式化输出
- **原始 JSON**:使用 `-raw` 标志获取原始 API 响应
- **CSV**:使用 `-f csv` 导出结构化数据
- **自定义 CSV**:使用 `--csv-filename` 和 `--append-timestamp` 指定文件名
## 时间范围选项
常用时间范围模式:
- `last.PT1H` - 过去一小时
- `last.P1D` - 过去一天
- `last.P7D` - 过去一周
- `last.P1M` - 过去一个月
- `utc.2023-02-{28/00:00:00--28/23:59:59}` - 自定义 UTC 范围
## 获取帮助
- 在任何命令后使用 `-h` 或 `--help` 获取详细用法
- 查阅 [Cato API 文档](https://api.catonetworks.com/documentation/)
- 查看上方链接的各个操作指南
此 CLI 是一个 Python 3 应用程序,已在 Python 3.6 -> 3.8 版本上测试通过。
## 要求:
```
python 3.6 or higher
```
## 确认已安装的 Python 版本:
```
Open a terminal
Enter: python -V or python3 -V
```
## 安装适用于环境的正确版本:
https://www.python.org/downloads/
标签:API密钥管理, API管理, API集成, CatoCLI, Cato Networks, DEF CON 演示, DFIR, GraphQL, JSON导出, Python, 事件监控, 可观测性, 命令行接口, 基础设施管理, 安全配置, 应用程序活动分析, 数据导出, 文档结构分析, 无后门, 用户活动分析, 监控, 编排, 网络安全, 网络性能监控, 网络调试, 自动化, 认证配置, 逆向工具, 隐私保护