
# 内网采集权限与原理
#### 主机深度采集
- **权限要求** ：
  - Windows系统：需要提供具有Administrator权限的账号。
  
  - Linux系统：需要提供root账号。
   
- **采集原理** ：
  - Windows系统：通过WinRM服务从MgC Agent访问Windows主机，执行PowerShell脚本采集系统信息。 Linux系统：通过SSH协议从MgC Agent访问Linux主机，将Shell脚本传输至/root/rda目录并执行，以自动化采集系统信息。
    
   
 
#### 网段扫描
- **权限要求**：被扫描节点开放对应的远程访问端口（内网可访问或对MgC Agent所在主机开放白名单）。默认情况下Windows开放3389端口，Linux开放22端口，也可以单独指定。
- **采集原理**：通过枚举网段下所有IP地址，得到扫描范围，然后依次循环使用TCP连接到对应IP的远程连接端口。如果3389存在监听则判定该IP操作系统为Windows，如果22端口存在监听则判定该IP操作系统为Linux。
 
#### 性能采集
- **权限要求** ：
  - Windows系统：需要提供具有Administrator权限的账号。
  
  - Linux系统：需要提供root账号。
   
- **采集原理** ：
  - Windows 系统：使用Windows远程管理（WinRM）服务，通过MgC Agent远程访问Windows主机，将PowerShell脚本安全传输至C:\\MgC-Agent\\Scripts路径并执行，以自动化采集系统信息。
  
  - Linux 系统：通过SSH协议从MgC Agent访问Linux主机，将Shell脚本传输至/root/rda目录并执行，以自动化采集系统信息。
   
 
#### 数据库采集
- **权限要求** ：需要使用具有最高权限的账号进行数据库采集，以确保能够访问所有必要的数据。对于不同的数据库系统，应使用以下账号：
  - MySQL：使用root账号。
  
  - PostgreSQL：使用postgres账号。
  
  - MongoDB： 使用admin权限账号。
  
  - Oracle：使用system权限账号。
  
  - SQL Server：使用sa账号。
   
- **采集原理**：连接数据库，基于数据库的查询语句进行采集。
 
#### 中间件采集
- **权限要求** ：
  - Redis：使用具有基本访问权限的普通账号即可。
  
  - Kafka：需要具备访问所有topic的权限以及对topic的容量等信息进行访问的权限。
   
- **采集原理**：利用Java语言编写的应用程序，集成对应中间件的SDK（Software Development Kit，软件开发工具包）。通过SDK提供的方法和API，与中间件进行交互，实现数据的采集。
 
#### 容器采集
- **权限要求**：需要管理员级别权限的账号导出包含必要访问凭证的文件。
- **采集原理**：利用kspider工具进行数据采集。
 
#### vCenter采集
- **权限要求**：需要管理员账号，该账号应具备对vCenter环境中所有虚拟机的完全访问权限。
- **采集原理**：通过VSphere SDK提供的资源枚举能力，采集到资源的列表及详细数据。
 
