创建流日志收集器
您可以为特定虚拟私有云 (VPC),子网,实例或接口订购和供应流日志收集器。 开始之前,请确保查看 关于流日志 中列出的用例,并满足以下先决条件。
供应流日志收集器时,请记住 最精细的粒度获胜。
控制台中的前提条件
在创建流日志收集器之前,请确保满足以下先决条件:
-
请确保至少存在一个 VPC,子网和虚拟服务器实例。 有关指示信息,请参阅 创建 VPC 和子网 和 创建虚拟服务器实例。
-
确保流日志中存在具有存储区的 IBM Cloud® Object Storage 实例。 要创建 Object Storage 存储区,请参阅 IBM Cloud Object Storage 排序页面。
Object Storage 桶必须是与目标资源位于同一区域的单区域桶。 此外,建议您通过 IAM 访问组和审计日志记录来保护存储区。
CLI 中的先决条件
在创建流日志收集器之前,请确保满足以下先决条件:
-
请确保至少存在一个 VPC,子网和虚拟服务器实例。 有关指示信息,请参阅 创建 VPC 和子网 和 创建虚拟服务器实例。
-
确保流日志中存在具有存储区的 IBM Cloud® Object Storage 实例。 要创建 Object Storage 存储区,请参阅 IBM Cloud Object Storage 排序页面。
Object Storage 桶必须是与目标资源位于同一区域的单区域桶。 此外,建议您通过 IAM 访问组和审计日志记录来保护存储区。
-
授权类型为 Flow Logs for VPC 的资源使用步骤 2 中创建的 Object Storage 实例。
要执行此操作,请输入以下命令:
ibmcloud iam authorization-policy-create is cloud-object-storage Writer --source-resource-type flow-log-collector --target-service-instance-id $COS_INSTANCE_GUID ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id $COS_INSTANCE_GUID您可以从 Object Storage 实例的“服务凭证”部分获取
COS_INSTANCE_GUID,如下所示。
Object Storage 服务凭证 有关更多信息,请参阅使用授权来授予服务之间的访问权。
API 的先决条件
在创建流日志收集器之前,请确保满足以下先决条件:
-
请确保至少存在一个 VPC,子网和虚拟服务器实例。 有关指示信息,请参阅 创建 VPC 和子网 和 创建虚拟服务器实例。
-
确保流日志中存在具有存储区的 IBM Cloud® Object Storage 实例。 要创建 Object Storage 存储区,请参阅 IBM Cloud Object Storage 排序页面。
Object Storage 桶必须是与目标资源位于同一区域的单区域桶。 此外,建议您通过 IAM 访问组和审计日志记录来保护存储区。
-
授权类型为 Flow Logs for VPC 的资源使用步骤 2 中创建的 Object Storage 实例。
要执行此操作,请按照以下步骤操作:
-
在 IBM Cloud 控制台中,单击 管理> 访问权 (IAM),然后从导航窗格中选择 授权。
-
单击 创建 并完成以下信息:
对于源服务:
- 选择“VPC 基础设施服务”。
- 选择“基于选定属性的资源”。
- 对于资源类型,请选择 Flow Logs for VPC。
- 对于源服务实例,选择 所有实例。
对于目标服务:
- 选择 Cloud Object Storage。
- 选择“基于选定属性的资源”。
- 对于服务实例,选择 string equals> All instances。
对于服务访问权,选择 写入者 角色以分配对访问目标服务的源服务的访问权。
-
单击授权。
有关更多信息,请参阅使用授权来授予服务之间的访问权。
-
在控制台中创建流量日志收集器
要使用 IBM Cloud 控制台创建流日志收集器,请执行以下步骤:
-
转至 IBM Cloud 控制台 并登录到您的帐户。
-
选择导航菜单
,然后单击基础架构
> 网络 > 流量日志。
此时将显示 VPC 仪表板的流日志。
-
单击创建转到流量日志供应页面。
-
输入下列字段的值:
- 名称-输入流日志收集器的唯一名称。
- 资源组-为流日志收集器选择资源组。 您可以使用此流日志的默认组,或从列表中选择(如果已定义)。 有关更多信息,请参阅在资源组中组织资源的最佳实践。
- 标记-(可选) 添加标记以组织,跟踪使用成本或管理对资源的访问权。
- 访问管理标记-(可选) 向资源添加访问管理标记以帮助组织访问控制关系。 访问管理标记唯一受支持的格式为
key:value。 有关更多信息,请参阅 使用标记控制对资源的访问。
-
有关采集器的详细信息,请为流量日志选择目标服务。 根据您的选择,可能需要其他字段。
- 虚拟私有云- 选择一个 VPC。 将记录所选 VPC 中的所有网络流量。
- 子网-选择 VPC 和所选 VPC 中的子网。 将记录所选子网中的所有流量。
- 实例-选择 VPC 和存在于所选 VPC 中的虚拟服务器实例。 将记录虚拟服务器实例的所有流量。
- 接口-选择 VPC,所选 VPC 中的虚拟服务器实例以及所选虚拟服务器实例的特定网络接口。 将记录所选网络接口的所有流量。
- 未连接的虚拟网络接口- 指定未连接的虚拟网络接口的 ID。 这有助于创建一个专用和隔离的日志路径,以便在准备就绪时连接到日志收集服务。
-
指定日志的存储位置。 流日志将写入 Object Storage 存储区,该存储区必须创建为与目标资源位于同一区域中的单区域存储区。
- Cloud Object Storage 实例-所需存储区所在的 Object Storage 实例。
- 位置-此输入不可用,因为它直接绑定到目标资源所在的区域。
- 存储区-流日志收集器服务写入的所需 IBM Cloud® Object Storage 存储区。
从 CLI 创建流日志收集器
开始之前,请 设置 CLI 环境。
要使用 CLI 创建流日志收集器,请运行以下命令:
ibmcloud is flow-log-create \
--bucket STORAGE_BUCKET_NAME \
--target TARGET_ID [--name NAME] \
--active ACTIVE \
[--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] \
[--json]
其中:
--bucket- Object Storage 存储桶的名称。
--target - 流量日志的目标。
--name - 流日志的新名称。
--active - 指示此收集器是否处于活动状态。
--resource-group-id - 资源组的标识。 此选项与 --resource-group-name 互斥。
--resource-group-name - 资源组的名称。 此选项与 --resource-group-id 互斥。
--json - 以 JSON 格式格式化输出。
使用 API 创建流日志收集器
要使用 API 创建流日志收集器,请执行以下步骤:
-
使用正确的变量设置 API 环境。
-
将以下值存储在要在 API 命令中使用的变量中:
ResourceGroupId-首先,获取资源组,然后填充变量:
export ResourceGroupId=<your_resourcegroup_id>VpcId-使用 list vpc 命令 (使用前面的变量) 进行查找,然后根据提供的标识填充变量:
export VpcId=<your_VPC_id>COSbucket- Object Storage 存储区的名称。
export COSbucket=<your_COS_bucket_name> -
启动所有变量时,为特定 VPC 供应流日志收集器:
curl -X POST -sH "Authorization:${iam_token}" "$vpc_api_endpoint/v1/flow_log_collectors?version=$api_version&generation=2" \ -d '{ \ "name": "flow-logs-1", \ "resource_group": { "id": "'$ResourceGroupId'" }, \ "storage_bucket": { "name": "'$COSbucket'" }, \ "target": { "id": "'$VpcId'" } \ }' | jq该示例使用
jq作为解析器,这是一个根据 MIT 许可证 授权的第三方工具。 某些操作系统默认不包含jq。 使用前请安装jq,或替换为其他 JSON 解析器。 -
要供应以子网,虚拟服务器实例或 VNIC 为目标的收集器,必须提供子网标识,虚拟服务器实例标识或 VNIC 标识作为收集器目标。 例如,以下请求将创建以虚拟服务器实例标识为目标的收集器:
export VsiId=<your_vsi_id>curl -X POST \ -sH "Authorization:${iam_token}" \ "$vpc_api_endpoint/v1/flow_log_collectors?version=$api_version&generation=2" \ -d '{ \ "name": "flow-logs-1", \ "resource_group": { "id": "'$ResourceGroupId'" }, \ "storage_bucket": { "name": "'$COSbucket'" }, \ "target": { "id": "'$VsiId'" } \ }' | jq