使用 Operator 部署
要启用连续网络流量采集,你需要:
- 一个可访问的 ClickHouse 服务器,用于存储流量日志
- NetObserv Operator
- 一个 FlowCollector 实例
ClickHouse 后端可以通过以下任一方式准备:
- 使用现有的 ClickHouse 服务器,并在 FlowCollector 配置中提供其连接信息
- 使用 ClickHouse Operator 在集群中部署一个新的 ClickHouse 实例
目录
选择 ClickHouse 部署选项可选:使用 ClickHouse Operator 部署 ClickHouse安装 ClickHouse Operator创建 ClickHouseInstallation 实例安装 NetObserv Operator创建 ClickHouse Authentication Secret创建 FlowCollector 实例选择 ClickHouse 部署选项
在创建 FlowCollector 实例之前,请从以下方法中选择一种:
- 现有 ClickHouse 服务器:如果你已经有一个 FlowCollector 可以访问的 ClickHouse 部署,请使用此选项。
- 集群内新建 ClickHouse 实例:如果你希望使用 ClickHouse Operator 在集群中部署 ClickHouse,请使用此选项。
如果你使用现有的 ClickHouse 服务器,请提前准备以下值:
host:port格式的 ClickHouse 服务地址- 用于流量日志的数据库名称
- ClickHouse 认证的用户名和密码
- 将在 FlowCollector 的
.spec.namespace中使用的命名空间
可选:使用 ClickHouse Operator 部署 ClickHouse
如果你已经为 NetObserv 准备了 ClickHouse 服务器,请跳过本节并转到 安装 NetObserv Operator。
安装 ClickHouse Operator
-
导航到 Administrator > Marketplace > OperatorHub。
-
搜索 "ClickHouse",并找到由 提供的 ClickHouse Operator。
-
如果 ClickHouse Operator 的状态为 Absent,请上传你从 Customer Portal 下载的 ClickHouse Operator 安装包。
-
单击 ClickHouse Operator 以打开详情页。
-
在 Operator 详情页中,单击 Install。
-
根据需要填写配置参数。
-
单击 Install 开始安装。
-
在弹出的对话框中单击 Confirm 确认安装。
-
等待安装完成。
如果由 提供的 ClickHouse Operator 已经安装,请跳过本节,直接创建用于 NetObserv 的 ClickHouse 集群。
创建 ClickHouseInstallation 实例
-
在 ClickHouse Operator 详情页中,导航到 All Instances 页面并单击 Create。
-
在弹出的对话框中,在 ClickHouseInstallation 部分单击 Create。
-
在 Create ClickHouseInstallation 页面中,单击右上角的 YAML,切换到 YAML 编辑模式。
-
根据需要编辑 YAML 文件,然后单击 Create 创建 ClickHouseInstallation 实例。
ClickHouseInstallation YAML 示例:
- 用于禁用 NetObserv 不需要的系统日志的额外 ClickHouse 配置文件。
99-前缀会使该文件在默认配置之后加载,remove="1"会删除对应的日志配置条目。 - ClickHouse 用户
clickhouse_root的密码 SHA-256 哈希值。请从原始明文密码生成哈希,并将<SHA256_HEX_PASSWORD>替换为命令输出。
例如,如果要使用 NetObserv@123 作为 ClickHouse 密码,请运行:
将生成的哈希值用于 clickhouse_root/password_sha256_hex。
稍后创建 ck-auth secret 时,请使用 clickhouse_root 作为用户名,并使用原始明文密码作为密码。
如果你想使用不同的 ClickHouse 用户名,请同时替换 clickhouse_root/networks/ip 和 clickhouse_root/password_sha256_hex 中的 clickhouse_root。
例如,对于名为 netobserv_user 的用户,请使用 netobserv_user/networks/ip 和 netobserv_user/password_sha256_hex。
然后在 ck-auth secret 中使用相同的用户名。
当 ClickHouse 实例就绪后,请通过检查 ClickHouseInstallation 实例的 .status.endpoint 字段获取服务端点。
你也可以运行以下命令获取端点:
命令中的 cpaas-system 和 netobserv 必须分别与 ClickHouseInstallation 实例的命名空间和名称一致。
如果你使用不同的命名空间或名称,请相应替换命令中的 cpaas-system 和 netobserv。
记录 ClickHouse 端点地址和凭据以供后续使用。 在创建 FlowCollector 实例时,你将需要这些信息。
安装 NetObserv Operator
-
导航到 Administrator > Marketplace > OperatorHub。
-
搜索 "Alauda Container Platform Network Observability Operator"。
-
单击 Install 打开安装配置页面。
-
根据需要填写配置参数。
-
单击 Install 开始安装。
-
在弹出的对话框中单击 Confirm 确认安装。
-
等待安装完成。
创建 ClickHouse Authentication Secret
在创建 FlowCollector 实例之前,先为 ClickHouse 认证创建一个 Kubernetes secret。
该 secret 会在 FlowCollector 配置中通过 .spec.clickhouse.authSecret.name 引用。
-
创建一个名为 ck-auth.env 的本地文件,并写入以下内容:
如果你使用本节中的 ClickHouseInstallation 示例,请将
password设置为用于生成<SHA256_HEX_PASSWORD>的原始明文密码。 如果你使用不同的 ClickHouse 用户名,请将username设置为该值。 -
创建 Kubernetes secret:
在此命令中,netobserv 必须与 FlowCollector 配置中的 .spec.namespace 值一致。
如果你在 FlowCollector 配置中使用不同的命名空间,请相应替换命令中的 netobserv。
创建 FlowCollector 实例
在创建 FlowCollector 实例之前,请确认:
- ClickHouse 服务器可从集群访问
ck-authsecret 存在于.spec.namespace指定的命名空间中- ClickHouse 地址、数据库和凭据均正确
然后创建 FlowCollector 实例:
-
导航到 All Instances 页面并单击 Create。
-
在弹出的对话框中,在 FlowCollector 部分单击 Create。
-
在 Create FlowCollector 页面中,单击右上角的 YAML,切换到 YAML 编辑模式。
-
根据需要编辑 YAML 文件,然后单击 Create 创建 FlowCollector 实例。
FlowCollector YAML 示例:
- eBPF agent 的启用功能。
- eBPF probe 的采样间隔。值为 100 表示每 100 个数据包采样 1 个。值为 0 或 1 表示对所有数据包采样。
- ClickHouse 服务器地址。使用
host:port格式。这些地址可以指向集群中创建的 ClickHouse 实例,也可以指向现有的外部 ClickHouse 服务器。 - ClickHouse 认证 secret。该 secret 必须包含两个键:
username和password。该 secret 必须创建在与.spec.namespace相同的命名空间中。 - ClickHouse 中用于存储流量日志的数据库名称。如果数据库不存在,将自动创建。
- ClickHouse 中的数据保留期。使用数字加时间单位,例如
24h。此设置仅在创建 ClickHouse 表时生效。 - 部署 eBPF agents 和流量日志 pipeline 的命名空间。
- 流量日志 pipeline 的副本数。
如果你使用的是现有的 ClickHouse 服务器,请确保 FlowCollector 可以访问该服务器地址,并且所引用的 secret 包含有效凭据。
当 FlowCollector 实例创建完成后,eBPF agents 和流量日志 pipeline 将部署到 .spec.namespace 指定的命名空间。