配置加密传输
操作场景
该操作指导安装工程师在集群安装完成后,分别设置Flume服务(包括Flume角色和MonitorServer角色)的服务端和客户端参数,使其可以正常工作。
前提条件
已成功安装集群及Flume服务。
操作步骤
- 分别生成Flume角色服务端和客户端的证书和信任列表。
- 使用ECM远程以omm用户登录将要安装Flume服务端的节点。进入“${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/bin”目录。
cd ${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/bin
此处版本号8.1.2.2为示例,具体以实际环境的版本号为准。
- 执行以下命令,生成并导出Flume角色服务端、客户端证书。
sh geneJKS.sh -f sNetty12@ -g cNetty12@
生成的证书在“${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf”路径下。其中:- “flume_sChat.jks”是Flume角色服务端的证书库,“flume_sChat.crt”是“flume_sChat.jks”证书的导出文件,“-f”配置项是证书和证书库的密码;
- “flume_cChat.jks”是Flume角色客户端的证书库,“flume_cChat.crt”是“flume_cChat.jks”证书的导出文件,“-g”配置项是证书和证书库的密码;
- “flume_sChatt.jks”和“flume_cChatt.jks”分别为Flume服务端、客户端SSL证书信任列表。
本章节涉及到所有的用户自定义密码(如sNetty12@),需满足以下复杂度要求:
- 至少包含大写字母、小写字母、数字、特殊符号4种类型字符。
- 至少8位,最多64位。
- 出于安全考虑,建议用户定期更换自定义密码(例如三个月更换一次),并重新生成各项证书和信任列表。
- 使用ECM远程以omm用户登录将要安装Flume服务端的节点。进入“${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/bin”目录。
- 配置Flume角色的服务端参数,并将配置文件上传到集群。
- 使用ECM远程,以omm用户登录任意一个Flume角色所在的节点。执行以下命令进入“${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/bin”。
cd ${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/bin
- 执行以下命令,生成并得到Flume服务端密钥库密码、信任列表密码和keystore-password加密的私钥信息。连续输入两次密码并确认,该密码是flume_sChat.jks证书库的密码,例如sNetty12@。
./genPwFile.sh
cat password.property
password=D03C2D03D97CBA3F4FD2491A40CAA5E0
- 使用FusionInsight Manager界面中的Flume配置工具来配置服务端参数并生成配置文件。
- 登录FusionInsight Manager,选择“ 服务 > Flume > 配置工具”。
- “Agent名”选择“server”,然后选择要使用的source、channel以及sink,将其拖到右侧的操作界面中并将其连接。
例如采用Avro Source、File Channel和HDFS Sink,如图1所示。
- 双击对应的source、channel以及sink,根据实际环境并参考表1设置对应的配置参数。
- 如果对应的Flume角色之前已经配置过服务端参数,为保证与之前的配置保持一致,在FusionInsight Manager界面选择“ 服务 > Flume > 实例”,选择相应的Flume角色实例,单击“实例配置”页面“flume.config.file”参数后的“下载文件”,可获取已有的服务端参数配置文件。然后选择“ 服务 > Flume > 导入”,将该文件导入后再修改加密传输的相关配置项即可。
- 导入配置文件时,建议配置Source/Channel/Sink的各自的个数都不要超过40个,否则可能导致界面响应时间过长。
- 单击“导出”,将配置文件“properties.properties”保存到本地。
表1 Flume角色服务端所需修改的参数列表 参数名称
参数值填写规则
参数样例
ssl
是否启用SSL认证(基于安全要求,建议启用此功能)。
- true表示启用。
- false表示不启用。
true
keystore
服务端证书。
${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/flume_sChat.jks
keystore-password
密钥库密码,获取keystore信息所需密码。
输入2.b中获取的“password”值。
D03C2D03D97CBA3F4FD2491A40CAA5E0
truststore
服务端的SSL证书信任列表。
${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/flume_sChatt.jks
truststore-password
信任列表密码,获取truststore信息所需密码。
输入2.b中获取的“password”值。
D03C2D03D97CBA3F4FD2491A40CAA5E0
- 登录FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > Flume”服务,在“角色”下单击“Flume”角色。
- 选择准备上传配置文件的节点行的“Flume”角色,单击“实例配置”页面“flume.config.file”参数后的“上传文件”,选择“properties.properties”文件完成操作。
- 每个Flume实例均可以上传单独的服务端配置文件。
- 更新配置文件需要按照此步骤操作,后台修改配置文件是不规范操作,同步配置时后台做的修改将会被覆盖。
- 单击“保存”,单击“确定”。单击“完成”完成操作。
- 使用ECM远程,以omm用户登录任意一个Flume角色所在的节点。执行以下命令进入“${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/bin”。
- 设置Flume角色客户端参数。
- 执行以下命令将生成的客户端证书(flume_cChat.jks)和客户端信任列表(flume_cChatt.jks)复制到客户端目录下,如“/opt/flume-client/fusionInsight-flume-1.9.0/conf/”(要求已安装Flume客户端),其中10.196.26.1为客户端所在节点业务平面的IP地址。
scp ${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/flume_cChat.jks user@10.196.26.1:/opt/flume-client/fusionInsight-flume-1.9.0/conf/
scp ${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/flume_cChatt.jks user@10.196.26.1:/opt/flume-client/fusionInsight-flume-1.9.0/conf/
复制过程中需要输入客户端所在主机(如10.196.26.1)user用户的密码。
- 以user用户登录解压Flume客户端的节点。执行以下命令进入客户端目录“opt/flume-client/fusionInsight-flume-1.9.0/bin”。
cd opt/flume-client/fusionInsight-flume-1.9.0/bin
- 执行以下命令,生成并得到Flume客户端密钥库密码、信任列表密码和keystore-password加密的私钥信息。连续输入两次密码并确认,该密码是别名为flumechatclient的证书和flume_cChat.jks证书库的密码,例如cNetty12@。
./genPwFile.sh
cat password.property
password=4FD2491A40CAA5E0D03C2D03D97CBA3F
若产生以下错误提示,可执行命令export JAVA_HOME=JDK路径进行处理。
JAVA_HOME is null in current user,please install the JDK and set the JAVA_HOME
- 使用FusionInsight Manager界面中的Flume配置工具来配置Flume角色客户端参数并生成配置文件。
- 登录FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > Flume > 配置工具”。
- “Agent名”选择“client”,然后选择要使用的source、channel以及sink,将其拖到右侧的操作界面中并将其连接。
例如采用SpoolDir Source、File Channel和Avro Sink,如图2所示。
- 双击对应的source、channel以及sink,根据实际环境并参考表2设置对应的配置参数。
- 如果对应的Flume角色之前已经配置过客户端参数,为保证与之前的配置保持一致,可以到“客户端安装目录/fusioninsight-flume-1.9.0/conf/properties.properties”获取已有的客户端参数配置文件。然后登录FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > Flume > 配置工具 > 导入”,将该文件导入后再修改加密传输的相关配置项即可。
- 导入配置文件时,建议配置source/channel/sink的各自的个数都不要超过40个,否则可能导致界面响应时间过长。
- 不同的File Channel均需要配置一个不同的checkpoint目录。
- 单击“导出”,将配置文件“properties.properties”保存到本地。
表2 Flume角色客户端所需修改的参数列表 参数名称
参数值填写规则
参数样例
ssl
是否启用SSL认证(基于安全要求,建议用户启用此功能)。
- true表示启用。
- false表示不启用。
true
keystore
客户端证书。
/opt/flume-client/fusionInsight-flume-1.9.0/conf/flume_cChat.jks
keystore-password
密钥库密码,获取keysore信息所需密码。
输入3.c中获取的“password”值。
4FD2491A40CAA5E0D03C2D03D97CBA3F
truststore
客户端的SSL证书信任列表。
/opt/flume-client/fusionInsight-flume-1.9.0/conf/flume_cChatt.jks
truststore-password
信任列表密码,获取truststore信息所需密码。
输入3.c中获取的“password”值。
4FD2491A40CAA5E0D03C2D03D97CBA3F
- 将“properties.properties”文件上传到Flume客户端安装目录下的“flume/conf/”下。
- 执行以下命令将生成的客户端证书(flume_cChat.jks)和客户端信任列表(flume_cChatt.jks)复制到客户端目录下,如“/opt/flume-client/fusionInsight-flume-1.9.0/conf/”(要求已安装Flume客户端),其中10.196.26.1为客户端所在节点业务平面的IP地址。
- 分别生成MonitorServer角色服务端和客户端的证书和信任列表。
- 使用ECM以omm用户登录MonitorServer角色所在主机。
进入“${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/bin”目录。
cd ${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/bin
- 执行以下命令,生成并导出MonitorServer角色服务端、客户端证书。
sh geneJKS.sh -m sKitty12@ -n cKitty12@
生成的证书在“${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf”路径下,其中:
- “ms_sChat.jks”是MonitorServer角色服务端的证书库,“ms_sChat.crt”是“ms_sChat.jks”证书的导出文件,“-m”配置项是证书和证书库的密码;
- “ms_cChat.jks”是MonitorServer角色客户端的证书库,“ms_cChat.crt”是“ms_cChat.jks”证书的导出文件,“-n”配置项是证书和证书库的密码;
- “ms_sChatt.jks”、“ms_cChatt.jks”分别为MonitorServer服务端、客户端SSL证书信任列表。
- 使用ECM以omm用户登录MonitorServer角色所在主机。
- 配置MonitorServer角色服务端参数。
- 执行以下命令,生成并得到MonitorServer服务端密钥库密码、信任列表密码和keystore-password加密的私钥信息。连续输入两次密码并确认,该密码是别名为mschatserver的证书和ms_sChat.jks证书库的密码,例如sKitty12@。
./genPwFile.sh
cat password.property
password=AA5E0D03C2D4FD24CBA3F91A40C03D97
- 使用以下命令打开“${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/service/application.properties”文件。根据表3中的说明,修改相关参数,并保存退出。
vi ${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/service/application.properties
表3 MonitorServer角色服务端所需修改的参数列表 参数名称
参数值填写规则
参数样例
ssl_need_kspasswd_decrypt_key
是否开启自定义密钥加解密功能(基于安全要求,建议启用此功能)。
- true表示启用。
- false表示不启用。
true
ssl_server_enable
是否启用SSL认证(基于安全要求,建议用户启用此功能)。
- true表示启用。
- false表示不启用。
true
ssl_server_key_store
根据具体的存放位置进行修改。
${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/ms_sChat.jks
ssl_server_trust_key_store
根据具体的存放位置进行修改。
${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/ms_sChatt.jks
ssl_server_key_store_password
keystore密码,根据具体制作证书的实际情况修改(生成证书的明文密钥)
输入5.a中获取的“password”值。
AA5E0D03C2D4FD24CBA3F91A40C03D97
ssl_server_trust_key_store_password
krustkeystore密码,根据具体制作证书的实际情况修改(生成信任列表的明文密钥)。
输入5.a中获取的“password”值。
AA5E0D03C2D4FD24CBA3F91A40C03D97
ssl_need_client_auth
是否启用客户端认证(基于安全要求,建议用户启用此功能)。
- true表示启用。
- false表示不启用。
true
- 重启MonitorServer实例。选择“ 服务 > Flume > 实例 > MonitorServer”,勾选配置的“MonitorServer”实例,选择“更多 > 重启实例”。输入管理员密码,单击“确定”,重启完成后单击“完成”完成操作。
- 执行以下命令,生成并得到MonitorServer服务端密钥库密码、信任列表密码和keystore-password加密的私钥信息。连续输入两次密码并确认,该密码是别名为mschatserver的证书和ms_sChat.jks证书库的密码,例如sKitty12@。
- 配置MonitorServer角色客户端参数。
- 执行以下命令将生成的客户端证书(ms_cChat.jks)和客户端信任列表(ms_cChatt.jks)复制到客户端的“/opt/flume-client/fusionInsight-flume-1.9.0/conf/”目录下,其中10.196.26.1为客户端所在节点业务平面的IP地址。
scp ${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/ms_cChat.jks user@10.196.26.1:/opt/flume-client/fusionInsight-flume-1.9.0/conf/
scp ${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/ms_cChatt.jks user@10.196.26.1:/opt/flume-client/fusionInsight-flume-1.9.0/conf/
- 以user用户登录Flume客户端所在的节点。执行以下命令进入客户端目录“/opt/flume-client/fusionInsight-flume-1.9.0/bin”。
cd /opt/flume-client/fusionInsight-flume-1.9.0/bin
- 执行以下命令,生成并得到MonitorServer客户端密钥库密码、信任列表密码和keystore-password加密的私钥信息。连续输入两次密码并确认,该密码是别名为mschatclient的证书和ms_cChat.jks证书库的密码,例如cKitty12@。
./genPwFile.sh
cat password.property
password=BA3F91A40C03D97AA5E0D03C2D4FD24C
- 使用以下命令打开“/opt/flume-client/fusionInsight-flume-1.9.0/conf/service/application.properties”文件(“/opt/flume-client/fusionInsight-flume-1.9.0”为客户端软件安装后的目录)。根据表4中的说明,修改相关参数,并保存退出。
vi /opt/flume-client/fusionInsight-flume-1.9.0/flume/conf/service/application.properties
表4 MonitorServer角色客户端所需修改的参数列表 参数名称
参数值填写规则
参数样例
ssl_need_kspasswd_decrypt_key
是否开启自定义密钥加解密功能(基于安全要求,建议用户启用此功能)。
- true表示启用。
- false表示不启用。
true
ssl_client_enable
是否启用SSL认证(基于安全要求,建议用户启用此功能)。
- true表示启用。
- false表示不启用。
true
ssl_client_key_store
根据具体的存放位置进行修改。
${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/ms_cChat.jks
ssl_client_trust_key_store
根据具体的存放位置进行修改。
${BIGDATA_HOME}/FusionInsight_Porter_8.1.2.2/install/FusionInsight-Flume-1.9.0/flume/conf/ms_cChatt.jks
ssl_client_key_store_password
keystore密码,根据具体制作证书的实际情况修改(生成证书的明文密钥)。
输入6.c中获取的“password”值。
BA3F91A40C03D97AA5E0D03C2D4FD24C
ssl_client_trust_key_store_password
trustkeystore密码,根据具体制作证书的实际情况修改(生成信任列表的明文密钥)。
输入6.c中获取的“password”值。
BA3F91A40C03D97AA5E0D03C2D4FD24C
ssl_need_client_auth
是否启用客户端认证(基于安全要求,建议用户启用此功能)。
- true表示启用。
- false表示不启用。
true
- 执行以下命令将生成的客户端证书(ms_cChat.jks)和客户端信任列表(ms_cChatt.jks)复制到客户端的“/opt/flume-client/fusionInsight-flume-1.9.0/conf/”目录下,其中10.196.26.1为客户端所在节点业务平面的IP地址。