管理SDC Edge

管理SDC Edge涉及配置,启动,关闭和查看代理的日志。当使用StreamSets Control Hub,你也可以使用SDC Edge命令行界面来使SDC Edge注册到Control Hub

配置SDC Edge

您可以通过编辑SDC Edge配置文件<SDCEdge_home>/etc/edge.conf来自定义SDC Edge

使用文本编辑器编辑配置文件。要启用更改,请关闭然后重新启动SDC Edge

SDC Edge配置文件包括以下日志属性:

日志属性 描述
log-dir SDC Edge写入日志文件的目录。

默认值为<SDCEdge_home>/log/。如果更改值,请确保取消注释该属性。

SDC Edge配置文件包括以下执行属性:

执行属性 描述
max-batch-size 管道运行时批处理中包含的最大记录数。

默认值为1000。

SDC Edge配置文件包括以下过程属性:

进程属性 描述
process-metrics-capture-interval 刷新有关SDC Edge进程的度量(例如内存使用情况)的频率(以毫秒为单位)。

默认值为-1,这意味着在调用HTTP REST API时会刷新指标。

SDC Edge配置文件包括以下HTTP属性:

HTTP属性 描述
enabled 指定Web服务器是否在SDC Edge进程内运行。启用后,您可以使用Data Collector UI或REST API来管理部署到SDC Edge的边缘管道。管理边缘管道包括预览,验证,启动,停止和监视管道,以及重置管道源端。

在开发环境中设置为true,以简化边缘管道开发。

在生产环境中设置为false可以保护部署到SDC Edge的边缘管道的安全 。如果为false,则使用Control Hub或在启动SDC Edge时启动管道来管理边缘管道。

默认为true。

bind-address SDC Edge绑定到的地址。地址是localhost和定义的端口号。

默认端口号是18633。

base-http-url 用于与Control Hub进行通信的SDC Edge URL 。

默认值为http://<hostname>:<port> :

  • <hostname>SDC Edge使用以下命令确定:hostname -f
  • <port>是在bind-address属性中定义的端口号。

您可能需要更改默认值,以更轻松地识别在Control Hub中注册的多个Edge Data Collector。如果更改值,请确保取消注释该属性。

SDC Edge配置文件包括以下Control Hub属性定义SDC Edge如何与Control Hub协同

Control Hub属性 描述
enabled 指定是否启用SDC EdgeControl Hub一起使用

默认为false。

base-url 访问Control Hub的 URL 。
app-auth-token 启用与Control Hub一起使用时,此SDC Edge实例的身份验证令牌。
job-labels 分配给此SDC Edge的标签。使用标签将在Control Hub中注册的Edge Data Collector分组。要分配多个标签,请输入以逗号分隔的标签列表。

默认值为“all”,可用于在SDC Edge的所有已注册实例上运行作业。

events-recipient SDC Edge向其发送事件的内部Control Hub消息传递队列的名称。

请勿更改此值。

ping-frequency SDC Edge通知Control Hub其正在运行的频率(以毫秒为单位)。

默认值为6,000。

status-events-interval SDC Edge通知Control Hub以下信息的频率(以毫秒为单位):

  • 在此SDC Edge上运行的所有本地和已发布管道的状态。
  • SDC Edge的性能信息 -包括CPU负载和内存使用情况。

默认值为60,000。

启动SDC Edge

您可以手动或作为服务启动SDC Edge

手动启动
若要手动启动SDC Edge,请从SDC Edge主目录运行以下命令:

bin/edge
注意:在测试或开发环境中,可以启动SDC Edge,以便跳过验证受信任的证书。为此,请从SDC Edge主目录运行以下命令以手动启动SDC Edgebin/edge -insecureSkipVerifyStreamSets强烈建议您配置SDC Edge以在生产环境中验证受信任的证书。
要同时手动启动SDC Edge和边缘管道,请参阅“将命令发送到SDC Edge”。
要在手动启动SDC Edge时修改日志级别,请参阅日志。
服务启动
在将SDC Edge作为服务启动之前,必须在边缘设备上将SDC Edge注册为服务。
若要将SDC Edge作为服务启动,请以管理员身份从SDC Edge主目录运行以下命令:

bin/edge -service start
例如,您可以在Linux上运行以下命令:

sudo opt/local/streamsets-datacollector-edge/bin/edge -service start

关闭SDC Edge

您可以关闭然后手动启动SDC Edge,以将更改应用于SDC Edge配置文件。

基于SDC Edge是手动启动或服务启动来关闭SDC Edge

手动启动
要关闭SDC Edge,请在命令提示符下键入Ctrl + C。
服务启动
要关闭作为服务启动的SDC Edge,请以管理员身份从SDC Edge主目录运行以下命令:

bin/edge -service stop
例如,您可以在Linux上运行以下命令:

sudo opt/local/streamsets-datacollector-edge/bin/edge -service stop

重新启动SDC Edge

SDC Edge作为服务运行时,您可以重新启动SDC Edge以将更改应用于SDC Edge配置文件。在重新启动过程中,SDC Edge将关闭,然后自动重新启动。

要重新启动SDC Edge,请以管理员身份从SDC Edge主目录运行以下命令:

bin/edge -service restart
例如,您可以在Linux上运行以下命令:

sudo opt/local/streamsets-datacollector-edge/bin/edge -service restart

日志

默认情况下,SDC Edge将严重性级别的日志消息写入<SDCEdge_home>/log/edge.log 文件。要查看日志,只需在文本编辑器中打开edge.log文件。

要更改默认日志文件目录,请修改SDC Edge配置文件。

手动启动SDC Edge时,可以修改日志级别或将日志消息发送到控制台。当SDC Edge作为服务运行时,您无法修改此日志信息。

要修改日志,请使用适当的命令:

  • 要将日志级别设置为调试以进行故障排除,请从SDC Edge主目录运行以下命令:
    bin/edge -debug
  • 要将日志消息发送到控制台而不是 edge.log文件,请从SDC Edge主目录运行以下命令:
    bin/edge -logToConsole

向Control Hub注册SDC Edge

要将SDC EdgeStreamSets Control Hub一起使用,必须在Control Hub中注册SDC Edge

注册SDC EdgeControl Hub一起使用时,将为该SDC Edge生成身份验证令牌。该SDC边缘采用令牌来发出请求,以验证Control Hub。由于Control Hub和已注册的SDC Edge之间的所有通信均使用HTTPS,因此身份验证令牌保持机密。

使用SDC Edge命令行界面来注册SDC EdgeControl Hub。您可以使用Control Hub密码或Control Hub用户身份验证令牌注册SDC Edge

注意:您还可以使用Control Hub UI来注册SDC Edge。如果你从Control Hub下载SDC Edge时,在安装过程中会自动注册SDC EdgeControl Hub。如果使用另一种安装方法,安装后您手动注册SDC Edge与Control Hub

用密码注册

您可以使用Control Hub的用户名和密码使用SDC Edge命令行界面来注册SDC Edge与Control Hub

SDC Edge主目录运行以下命令:

bin/edge -enableControlHub -controlHubUrl=<Control Hub URL> -controlHubUser=<user name> -controlHubPassword=<password> -controlHubLabels=<labels>
例如,下面的命令注册SDC EdgeControl Hub云中的MyCompany组织,分配两个标签到SDC Edge

bin/edge -enableControlHub -controlHubUrl=https://cloud.streamsets.com -controlHubUser=admin@MyCompany -controlHubPassword=MyPassword -controlHubLabels=Production,East

运行命令后,重新启动SDC Edge以完成注册过程。

用用户认证令牌注册

为避免暴露您的Control Hub密码,您可以使用Control Hub REST API登录Control Hub安全应用程序并为您的用户帐户生成用户身份验证令牌。然后,使用SDC Edge命令行界面使用此用户身份验证令牌向Control Hub注册SDC Edge

当您需要注册在远程边缘设备上运行的多个Edge Data Collector时,可能需要使用用户身份验证令牌 。您可以将用户身份验证令牌发送到远程边缘设备,而不是发送密码。

生成用户身份验证令牌时,该令牌有效期为24小时。如果需要,可以在使用令牌后立即运行命令以使令牌无效。

  1. 运行以下命令以登录Control Hub安全应用程序并将生成的用户身份验证令牌存储在临时文本文件中:
    curl -X POST -d '{"userName":"<user name>", "password": "<password>"}' <Control Hub URL>/security/public-rest/v1/authentication/login --header "Content-Type:application/json" --header "X-Requested-By:SDC" -c <text file> 

    例如,以下命令以MyCompany组织的管理员用户身份登录Control Hub云,并将用户身份验证令牌存储在名为cookie.txt的文件中:

    curl -X POST -d '{"userName":"admin@MyCompany", "password": "MyPassword"}' https://cloud.streamsets.com/security/public-rest/v1/authentication/login --header "Content-Type:application/json" --header "X-Requested-By:SDC" -c cookie.txt
  2. 运行以下命令以从临时文本文件中读取用户身份验证令牌,并将其分配给名为sessionToken的本地环境变量:
    sessionToken=$(cat cookie.txt | grep SSO | rev | grep -o '^\S*' | rev) 
  3. 运行以下命令以在命令提示符下显示用户身份验证令牌:
    echo "Generated session token : $sessionToken" 
  4. 复制用户身份验证令牌。
  5. 从运行以下命令SDC Edge home目录使用标记注册SDC EdgeControl Hub
    bin/edge -enableControlHub -controlHubUrl=<Control Hub URL> -controlHubUser=<user name> -controlHubUserToken=<token> -controlHubLabels=<labels> 

    例如,下面的命令注册SDC EdgeControl Hub云中的MyCompany组织,分配两个标签到SDC Edge

    bin/edge -enableControlHub -controlHubUrl=https://cloud.streamsets.com -controlHubUser=admin@MyCompany -controlHubUserToken=d2bab2b3-2a1e-4368-9b18-23cdb9c2d97e|-1542046203506 -controlHubLabels=Production,East
  6. 重新启动SDC Edge以完成注册过程。
  7. (可选)使用户身份验证令牌无效。
    24小时后,Control Hub会使每个用户身份验证令牌失效。如果需要,可以在使用令牌注册SDC Edge后立即运行命令以使令牌无效 。
    运行以下命令以使令牌无效:

    curl -X POST <Control Hub URL>/security/_logout --header "Content-Type:application/json" --header "X-Requested-By:SDC" --header "X-SS-REST-CALL:true" --header "X-SS-User-Auth-Token:$sessionToken" -i
    例如,以下命令会使Control Hub云中的用户身份验证令牌无效 :

    curl -X POST https://cloud.streamsets.com/security/_logout --header "Content-Type:application/json" --header "X-Requested-By:SDC" --header "X-SS-REST-CALL:true" --header "X-SS-User-Auth-Token:$sessionToken" -i

enableControlHub命令行选项

使用-enableControlHub命令注册SDC Edge。无需运行SDC Edge即可使用该命令。

使用来自SDC Edge主目录的命令,如下所示:

bin/edge -enableControlHub \
(-controlHubUrl <Control Hub URL>) \
(-controlHubUser <Control Hub user>) \
[(-controlHubPassword <password>)] \
[(-controlHubUserToken <user token>)] \
[(-controlHubLabels <labels>)]
下表描述了这些-enableControlHub选项:

enableControlHub选项 描述
-controlHubUrl <Control Hub URL> 需要。设置为适当的URL:

  • 对于Control Hub云,请使用 https://cloud.streamsets.com
  • 对于本地的Control Hub,请使用系统管理员提供的URL。例如, https://<hostname>:18631
-controlHubUser <Control Hub user> 需要。使用以下格式输入您的Control Hub用户ID:

<ID>@<organization ID>
-controlHubPassword <password> 使用密码注册时必填。输入您的Control Hub用户帐户的密码。

不要与该-controlHubUserToken 选项一起使用。

-controlHubUserToken <user token> 使用用户认证令牌注册时必需。输入为您的Control Hub用户帐户生成的用户身份验证令牌。

不要与该-controlHubPassword 选项一起使用。

-controlHubLabels <labels> 可选。为该SDC Edge分配标签。您可以输入多个标签,以逗号分隔。您在此处分配的标签在SDC Edge配置文件中定义<SDCEdge_home>/etc/edge.conf。要在注册SDC Edge之后删除这些标签,必须修改配置文件。

使用标签将在Control Hub中注册的Edge Data Collector分组。如果您知道如何对Edge Data Collector进行分组,则可以立即分配标签。或者,您可以在注册SDC Edge之后在Control Hub中分配标签。

默认值为“all”,可用于在所有已注册的Edge Data Collector上运行作业。

禁用SDC Edge与Control Hub配合使用

使用SDC Edge命令行界面可以暂时禁止SDC EdgeControl Hub配合使用。无需运行SDC Edge即可使用该命令。

重要:禁用SDC EdgeControl Hub配合使用不会完全从Control Hub中注销SDC Edge。要完全注销SDC Edge,请使用Control Hub
SDC Edge主目录运行以下命令,以暂时禁用SDC EdgeControl Hub的配合使用

bin/edge -disableControlHub

该命令enabledSDC Edge 配置文件<SDCEdge_home>/etc/edge.conf中将该属性设置为false 。

要使SDC Edge再次与Control Hub配合使用,只需enablededge.conf文件中将该属性设置为true 。