nifi1.17.0的Kerberos证书安装及其使用

文章目录

  • 一、NiFi1.17.0的集群证书安装
    • 1、环境准备
      • 1.1、三台主机需要的操作
    • 2、搭建Kerberos
      • 2.1、新建租户nifi
      • 2.2、安装kerberos
      • 2.3、设置用户的认证
    • 3、生成证书
      • 3.1、上传并解压安装包
      • 3.2、证书生成
      • 3.3、证书分发
      • 3.4、内置zookeeper配置
      • 3.5、nifi配置
      • 3.6、配置nifi登录信息
      • 3.7、配置登录用户信息
      • 3.8、配置JVM
    • 4、启动
      • 4.1、更新key,设置初始密码(三台)
      • 4.2、web端查看
      • 4.3、浏览器上传证书(此步骤可以省略)
      • 4.4、nginx反向代理nifi
  • 二、Nifi处理器
    • 1、查看处理器
    • 2、常用处理器
    • 3、配置处理器
      • 3.1、开始配置
  • 三、其他组件
    • 1、导航栏部分
    • 2、导航(Navigate)部分
    • 3、操作区(Operate)部分
  • 四、多租户授权
    • 1、新建四个Kerberos认证
    • 2、UI界面超级管理员进行添加用户
    • 3、注意名称与kerberos设置的密码相同
    • 4、新建用户组进行分组
    • 5、全局访问策略
    • 6、组件访问策略
    • 7、势力
      • 7.1、全局权限说明
      • 7.2、组件访问权限说明

一、NiFi1.17.0的集群证书安装

1、环境准备

主机 服务
192.168.11.11 bigdata11 NiFi、Kerberos、nifi-toolkit
192.168.11.12 bigdata12 NiFi
192.168.11.13 bigdata13 NiFi

1.1、三台主机需要的操作

禁用selinux(三台)

vim /etc/selinux/config
SELINUX=disabled

禁用防火墙(三台)

systemctl disable firewalld
systemctl stop firewalld

jdk安装(三台)、免密(三台)以及时间同步。

2、搭建Kerberos

2.1、新建租户nifi

useradd nifi #新建一个名为nifi的用户,三台主机都要建

2.2、安装kerberos

yum -y install krb5-server krb5-libs krb5-workstation

配置krb5.conf,在实际环境中这个配置应该已经是配置完成的,可以不用详细配置。

vim /etc/krb5.conf
[libdefaults]
default_realm = MYCDH
[realms]
MYCDH = {
kdc = 192.168.11.11
admin_server = 192.168.11.11

}
[domain_realm]

# 将上面文件发送到另外两台主机
scp /etc/krb5.conf bigdata12:/etc/
scp /etc/krb5.conf bigdata13:/etc/

配置kdc.conf

vim /var/kerberos/krb5kdc/kdc.conf
[realms]
 MYCDH = {
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = des-cbc-crc:normal  des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-crc:v4 des-cbc-crc:afs3
}

配置kadm5.acl

vim /var/kerberos/krb5kdc/kadm5.acl
*/admin@MYCDH   *

创建Kerberos数据库

> kdb5_util create -r MYCDH -s
Enter KDC database master key: kerberos123
Re-enter KDC database master key to verify: kerberos123

2.3、设置用户的认证

这一步设置的密码很重要,到时候登录nifi的web界面的登陆密码就是这个。

kadmin.local -q "addprinc nifi@MYCDH" # 设置密码 admin123
kadmin.local -q "xst -norandkey -k nifi.keytab nifi@MYCDH"

进入home下的nifi

chown nifi:nifi nifi.keytab
# 测试服务:激活票据
klist -k nifi.keytab
kinit -kt nifi.keytab nifi@MYCDH

将bigdata11上的keytab文件分发
cd /home/nifi
scp nifi.keytab bigdata11:/home/nifi/
scp nifi.keytab bigdata12:/home/nifi/
scp nifi.keytab bigdata13:/home/nifi/

3、生成证书

3.1、上传并解压安装包

cd /opt
rz
nifi-1.17.0-bin.zip #nifi的安装包
nifi-toolkit-1.17.0-bin.zip #对应版本的证书生成工具

unzip nifi-1.17.0-bin.zip -d /opt
mv nifi-1.17.0 nifi #修改名字为nifi
unzip nifi-toolkit-1.17.0-bin.zip -d /opt #解压 -d表示解压路径
#如果是tar包,解压命令
cd /opt
tar -zxvf nifi-1.17.0-bin.tar.gz
tar -zxvf  nifi-toolkit-1.17.0-bin.tar.gz   

注意:nifi的安装包三台主机都要安装,nifi-toolkit只需要在主节点安装即可。

3.2、证书生成

此步骤只需要在主节点bigdata11执行

bin/tls-toolkit.sh standalone -C 'CN=nifi, OU=NIFI' -n 'bigdata11,bigdata012,bigdata13' --keyPassword admin123 --keyStorePassword admin123 --trustStorePassword admin123 -o 'bak'

nifi1.17.0的Kerberos证书安装及其使用_第1张图片

-C 生成适合在指定 DN 的浏览器中使用的客户端证书 里面的都是一些标记配置 ,按自己需要填写,比如 CN=nifi

-n -hostnames要生成证书的主机名列表(以逗号分隔),可指定多次,支持范围和实例模式

-o 是输出的目录

3.3、证书分发

生成的主机文件需要复制到对应每个节点的nifi/conf目录下(只需要在主节点bigdata11下执行)

cd bak
cp CN* bigdata11/       cp nifi-* bigdata11/           
cd  bigdata11           scp ./*    /nifi/conf 

cp CN* bigdata12/       cp nifi-* bigdata12/           
cd  bigdata12           scp ./*    bigdata12:/nifi/conf/

cp CN* bigdata13/       cp nifi-* bigdata13/           
cd  bigdata13           scp ./*    bigdata13:/nifi/conf/

注释:把节点目录发送到各个节点,外面的文件可用可不用,都是一些 https 的 key

3.4、内置zookeeper配置

创建myid

cd  /nifi                 mkdir -p   ./state/zookeeper             echo 1 > ./state/zookeeper/myid           (bigdata11 执行)
cd  /nifi                 mkdir -p   ./state/zookeeper             echo 1 > ./state/zookeeper/myid           (bigdata12 执行)
cd  /nifi                 mkdir -p   ./state/zookeeper             echo 1 > ./state/zookeeper/myid           (bigdata13 执行)

修改nifi目录下的**/conf/state-management.xml**(三台都需执行)

 <cluster-provider>
        <id>zk-providerid>
        <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProviderclass>
        <property name="Connect String">192.168.11.11:22181,192.168.11.12:22181,192.168.11.13:22181property>
        <property name="Root Node">/nifiproperty>
        <property name="Session Timeout">10 secondsproperty>
        <property name="Access Control">Openproperty>
 cluster-provider>

修改每个节点的**/conf/zookeeper.properties**(三台都需执行) 末尾修改添加

server.1=192.168.11.11:22888:23888;22181
server.2=192.168.11.12:22888:23888;22181
server.3=192.168.11.13:22888:23888;22181

3.5、nifi配置

修改每台节点的nifi.properties(三台都需执行)

cd /opt/nifi/conf/
vim nifi.properties

#修改nifi.properties部分参数
nifi.state.management.embedded.zookeeper.start=true
nifi.cluster.protocol.is.secure=true
nifi.cluster.is.node=true
nifi.zookeeper.connect.string=192.168.11.11:22181,192.168.11.12:22181,192.168.11.13:22181
#三台主机端口号需要更改为11443,address分别为对应的地址bigdata11、bigdata12、bigdata13
nifi.cluster.node.protocol.port=11443
nifi.cluster.node.address=bigdata11
#三台主机web端口号为9443,host分别为对应的host
nifi.web.https.port=9443
nifi.web.https.host=bigdata11

nifi.web.proxy.context.path=/ #用于端口的https转接,当我们用nginx的时候需要在nginx里面配置。
nifi.web.proxy.host=192.168.11.14:11213  #代理服务器的ip地址:代理服务的端口

#三台主机的balance为6342
nifi.cluster.load.balance.port=6342
#配置kerberos参数
nifi.remote.input.secure=true
nifi.security.user.login.identity.provider=kerberos-provider
nifi.security.user.authorizer=file-provider #属性指示authorizers.xml文件中要使用的已
#配置授权者
nifi.sensitive.props.key=123456789012 #所有选项都需要至少 12 个字符的密码
# kerberos #
nifi.kerberos.krb5.file=/etc/krb5.conf
nifi.kerberos.service.principal=nifi@MYCDH#配置的服务主体
nifi.kerberos.service.keytab.location=/home/nifi/nifi.keytab #配置服务主体的keytab

3.6、配置nifi登录信息

将kerberos-provider的前后注释去掉,然后配置前面设置的kdc.conf中设置的realm(MYCDH)

vim login-identity-providers.xml
 <provider>
        <identifier>kerberos-provideridentifier>
        <class>org.apache.nifi.kerberos.KerberosProviderclass>
        <property name="Default Realm">MYCDHproperty>
        <property name="Authentication Expiration">12 hoursproperty>
    provider>

3.7、配置登录用户信息

vim authorizers.xml
 <authorizer>
        <identifier>file-provideridentifier>
        <class>org.apache.nifi.authorization.FileAuthorizerclass>
        <property name="Authorizations File">./conf/authorizations.xmlproperty>
        <property name="Users File">./conf/users.xmlproperty>
        <property name="Initial Admin Identity">nifi@MYCDHproperty>
        <property name="Legacy Authorized Users File">property>

        <property name="Node Identity 1">CN=192.168.11.11, OU=NIFIproperty>
        <property name="Node Identity 2">CN=192.168.11.12, OU=NIFIproperty>
        <property name="Node Identity 3">CN=192.168.11.13, OU=NIFIproperty>
    authorizer>

3.8、配置JVM

vim bootstrap.conf
java.arg.2=-Xms10240m
java.arg.3=-Xmx10240m

4、启动

4.1、更新key,设置初始密码(三台)

cd /opt/nifi/
#需要更新key
bin/nifi.sh set-sensitive-properties-key  123456789012
#设置初始用户密码
bin/nifi.sh set-single-user-credentials admin 123456789012
启动
/bin/nifi.sh start 

4.2、web端查看

在浏览器输入: https://192.168.11.11:9443/nifi/

登录:nifi密码:admin123三台登录一样。

4.3、浏览器上传证书(此步骤可以省略)

打开浏览器的设置

nifi1.17.0的Kerberos证书安装及其使用_第2张图片

导入

nifi1.17.0的Kerberos证书安装及其使用_第3张图片

选择证书、输入密码

nifi1.17.0的Kerberos证书安装及其使用_第4张图片

nifi1.17.0的Kerberos证书安装及其使用_第5张图片

证书位置与密码:

cd /opt/nifi-toolkit-1.17.0/bak
ll

在这里插入图片描述

4.4、nginx反向代理nifi

进入nginx的安装目录,进入到sbin下,输入

./nginx -v

如果出现
(configure arguments: --prefix=********* --with-http_ssl_module),则已安装可以不用安装ssl模块

在这里插入图片描述

打开nginx的conf文件

配置下面参数:

stream {
        upstream nifi232 {
             server 192.168.11.11:9443;
        }
		upstream nifi233 {
			server 192.168.11.12:9443;
		}
		upstream nifi234 {
			server 192.168.11.13:9443;
		}
		server {
               listen 16618;
               proxy_connect_timeout 300s;
               proxy_timeout 300s;
               proxy_pass nifi232;
       		}
		server {
               listen 16619;
               proxy_connect_timeout 300s;
               proxy_timeout 300s;
               proxy_pass nifi233;
        	}
		server {
               listen 16620;
               proxy_connect_timeout 300s;
               proxy_timeout 300s;
               proxy_pass nifi234;
        }
}

二、Nifi处理器

1、查看处理器

选择处理器组件

nifi1.17.0的Kerberos证书安装及其使用_第6张图片

弹出窗口显示的就是所有处理器

nifi1.17.0的Kerberos证书安装及其使用_第7张图片

2、常用处理器

ExecuteScript:执行脚本处理器,支持:clojure,ecmascript,groovy,lua,python,rubby

QueryDatabaseTable:数据库查询处理器,支持:mysql

ConvertAvroToJSON:avro数据格式转换为json。

SplitJson:将JSON文件拆分为多个单独的FlowFiles,用于由jsonPath表达式指定的的数组元素

EvaluateJsonPath:根据FlowFile的内容评估一个或多个JsonPath表达式。这些表达式的结果将分配给FlowFile属性,或者写入FlowFile本身的内容,具体取决于处理器的配置。

ReplaceText:文本组装与替换,支持正则表达式

PutHDFS:将FlowFile数据写入Hadoop分布式文件系统(HDFS)

PutHiveQL:执行hive ddl/dml命令,如:insert,update

PublishKafka_2_0:根据配置将消息发送到kafka topic

SelectHiveQL:执行hive select语句并获取结果

PutFile:将FlowFile数据写入文件

GetHDFS:从Hadoop分布式文件系统获取文件

CaptureChangeMySQL:从MySQL数据库中检索更改数据捕获(CDC)事件。CDC事件包括INSERT。UPDATE,DELETE,操作。事件作为单个流文件输出,这些文件按操作发生的时间排序。

ExecuteStreamCommand:一般用于执行sh脚本

3、配置处理器

添加一个处理器

[外nifi1.17.0的Kerberos证书安装及其使用_第8张图片

处理器配置项说明:

Configure(配置):此选项允许用户建立或更改处理器的配置。

Start(启动或停止):此选项允许用户启动或停止处理器;该选项将为Start或Stop,具体取决于处理器当前状态。

Disable(启用或禁用):此选项允许用户启用或禁用处理器;该选项将为“启用”或“禁用”,具体取决于处理器当前状态。

View Data provenance(查看数据来源):此选项显示Nifi数据来源表,其中包含有关通过该处理器路由FlowFile的数据来源事件的信息。

View status history(查看状态历史记录):此选项打开处理器统计信息随时间的图形表示。

View usage(查看用法):此选项将用户带到处理器的使用文档。

View connection -->Upstream(查看连接–>上游):此选项允许用户查看和“跳转”入处理器的上游连接。当处理器连接进出其他进程组时,这尤其有用。

View connection -->Downstream(查看连接–>下游):此选项允许用户查看和“跳转”到处理器的下游连接。当处理器连接进出其他进程组时,这尤其有用。

Centered in view(视图中心):此选项将画布的视图置于给定的处理器上。

Change color(更改颜色):此选项允许用户更改处理器的颜色,这可以使大流量的可视化管理更容易。

Group(添加到组):把当前处理器添加到组

Create template(创建模板):此选项允许用户从所选处理器创建模板

Copy(复制):此选项将所选处理器的副本放在本 以便可以通过右键单击工作区并选择“粘贴”完成

Delete(删除):此选项允许从画布中删除处理器

3.1、开始配置

右键选择Configure

nifi1.17.0的Kerberos证书安装及其使用_第9张图片

nifi1.17.0的Kerberos证书安装及其使用_第10张图片

SETTING(设置)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接nifi1.17.0的Kerberos证书安装及其使用_第11张图片

SCHEDULING(任务调度)

nifi1.17.0的Kerberos证书安装及其使用_第12张图片

PROPERTIES(属性)

nifi1.17.0的Kerberos证书安装及其使用_第13张图片

RELATIONSHIPS(终止关系)

nifi1.17.0的Kerberos证书安装及其使用_第14张图片

COMMENTS(注释)

nifi1.17.0的Kerberos证书安装及其使用_第15张图片

三、其他组件

1、导航栏部分

数据流传入点(input-port)

虽说时数据流输入点,但并不是整体数据流的起点。它是作为组与组之间的数据流连接的传入点与输出点。

在这里插入图片描述

数据流输出点(output-port)

它是作为组与组之间的数据流连接的传入点与输出点

在这里插入图片描述

组(process-group)

组相当于系统中的文件夹,作用就是使数据流的各个部分看起来更工整,思路更清晰,不至于从头到尾一条线阅读起来不方便。

在这里插入图片描述

远程组(remote process-group)

添加远程的组

在这里插入图片描述

聚合(funnel)

用于将来自多个Connections的数据合并到一个Connection中

在这里插入图片描述

模板(template)

可以将若干组件组合在一起形成一个更大的组,从该组创建数据流模板。这些模板也可以导出为XML并导入到另一个nifi实例中,从而可以共享这些组

在这里插入图片描述

便签(label)

可放置在画布空白处,写上备注信息

在这里插入图片描述

2、导航(Navigate)部分

Navigate是对工作区进行预览,点击放大缩小可调整视野,蓝框区域就是工作区当前的界面,可用鼠标在这部分进行移动从而调整工作区的视野。

nifi1.17.0的Kerberos证书安装及其使用_第16张图片

3、操作区(Operate)部分

配置(Configuration)

nifi1.17.0的Kerberos证书安装及其使用_第17张图片

启用(enable)

nifi1.17.0的Kerberos证书安装及其使用_第18张图片

禁用(disable)

nifi1.17.0的Kerberos证书安装及其使用_第19张图片

开始(start)

nifi1.17.0的Kerberos证书安装及其使用_第20张图片

停止(stop)

nifi1.17.0的Kerberos证书安装及其使用_第21张图片

创建模板(create template)

nifi1.17.0的Kerberos证书安装及其使用_第22张图片

上传模板(upload template)

nifi1.17.0的Kerberos证书安装及其使用_第23张图片

四、多租户授权

1、新建四个Kerberos认证

 kadmin.local -q "addprinc user1@MYCDH"  #设置密码admin123
 kadmin.local -q "addprinc user2@MYCDH"  #设置密码admin123
 kadmin.local -q "addprinc user3@MYCDH"  #设置密码admin123
 kadmin.local -q "addprinc user4@MYCDH"  #设置密码admin123

2、UI界面超级管理员进行添加用户

nifi1.17.0的Kerberos证书安装及其使用_第24张图片

在这里插入图片描述

3、注意名称与kerberos设置的密码相同

nifi1.17.0的Kerberos证书安装及其使用_第25张图片

4、新建用户组进行分组

nifi1.17.0的Kerberos证书安装及其使用_第26张图片

5、全局访问策略

Policy Privilege Global Menu Selection Resource Descriptor
view the UI
查看用户界面
允许用户查看 UI N/A /flow
access the controller
访问控制器
允许用户查看/修改控制器,包括报告任务、控制器服务、参数上下文和集群中的节点 Controller Settings /controller
access parameter contexts
访问参数上下文
许用户查看/修改参数上下文。除非被覆盖,否则对参数上下文的访问从“访问控制器”策略继承。 Parameter Contexts /parameter-contexts
query provenance
查询出处
允许用户提交来源搜索并请求事件沿袭 Data Provenance /provenance
access restricted components
访问受限组件
假设其他权限足够,允许用户创建/修改受限组件。受限组件可以指示需要哪些特定权限。可以针对特定限制授予权限,也可以不考虑限制授予权限。如果不考虑限制而授予权限,则用户可以创建/修改所有受限组件 N/A /restricted-components
access all policies
访问所有政策
允许用户查看/修改所有组件的策略 Policies /policies
access users/user groups
访问用户/用户组
允许用户查看/修改用户和用户组 Users /tenants
retrieve site-to-site details
检索站点到站点的详细信息
允许其他 NiFi 实例检索站点到站点详细信息 N/A /site-to-site
view system diagnostics
查看系统诊断
允许用户查看系统诊断 Summary /system
proxy user requests
代理用户请求
允许代理机器代表其他人发送请求 N/A /proxy
access counters
访问计数器
允许用户查看/修改计数器 Counters /counters

6、组件访问策略

Policy Privilege Resource Descriptor & Action
view the component
查看组件
允许用户查看组件配置详细信息 resource="//" action="R"
modify the component
修改组件
允许用户修改组件配置详细信息 resource="//" action="W"
operate the component
操作组件
允许用户通过更改组件运行状态(启动/停止/启用/禁用)、远程端口传输状态或终止处理器线程来操作组件 resource="/operation//" action="W"
view provenance
查看出处
允许用户查看此组件生成的出处事件 resource="/provenance-data//" action="R"
view the data
查看数据
允许用户在出站连接中的流文件队列中以及通过来源事件查看此组件的元数据和内容 resource="/data//" action="R"
modify the data
修改数据
允许用户清空出站连接中的流文件队列并通过来源事件提交重播 resource="/data//" action="W"
view the policies
查看政策
允许用户查看可以查看/修改组件的用户列表 resource="/policies//" action="R"
modify the policies
修改政策
允许用户修改可以查看/修改组件的用户列表 resource="/policies//" action="W"
receive data via site-to-site
通过站点到站点接收数据
允许端口从 NiFi 实例接收数据 resource="/data-transfer/input-ports/" action="W"
send data via site-to-site
通过站点到站点发送数据
允许端口从 NiFi 实例发送数据 resource="/data-transfer/output-ports/" action="W"

7、势力

7.1、全局权限说明

使用管理员,编辑访问策略

nifi1.17.0的Kerberos证书安装及其使用_第27张图片

选择你要赋予的权限

nifi1.17.0的Kerberos证书安装及其使用_第28张图片

添加赋权的用户,或者组。

nifi1.17.0的Kerberos证书安装及其使用_第29张图片

查看权限

nifi1.17.0的Kerberos证书安装及其使用_第30张图片

nifi1.17.0的Kerberos证书安装及其使用_第31张图片

7.2、组件访问权限说明

选择组件

nifi1.17.0的Kerberos证书安装及其使用_第32张图片

选择覆盖

nifi1.17.0的Kerberos证书安装及其使用_第33张图片

添加相应的权限和用户

nifi1.17.0的Kerberos证书安装及其使用_第34张图片

你可能感兴趣的:(大数据平台CDH,数据库,服务器,运维,nifi)