logstash采集带kerberos认证的kafka数据到带kerberos认证的hdfs

1.kafka输入插件

input {
  kafka {
    bootstrap_servers => "test1:9092,test2:9092,test3:9092" #集群地址
    topics => ["test"] #主题,可以有多个
    security_protocol => "SASL_PLAINTEXT"
    sasl_kerberos_service_name => "kafka"
    group_id => "test"
    codec => "json"
    jaas_path => "/etc/logstash-6.5.4/config/jaas.conf"#jaas路径
    kerberos_config => "/etc/krb5.conf"
  }
}

新建文件jaas.conf:

KafkaClient {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  storeKey=false
  keyTab="/etc/keytabs/kafka.test.keytab" #keytab 路径
  principal="XXXXX";  #使用klist -k kafka.test.keytab查看,不通环境需要修改
};

2.hdfs输出插件

output{
        webhdfs {
        host => "test-hadoop"  #namenode
        port => "50070"
        user => "hdfs"  #这里是启动hdfs的系统用户名
        path => "/applog/logstash-%{+YYYY}-%{+MM}-%{+dd}.log" #按天保存日志
        use_kerberos_auth => "true" #开启kerberos认证
        kerberos_keytab => "/etc/keytabs/hdfs.test.keytab" #keytab地址
        codec => "json"
}       
 stdout {
    codec => rubydebug  # 将日志输出到当前的终端上显示
  }
}

运行logstash可能会出现下面的错误:

java.lang.IllegalStateException: Logstash stopped processing because of an error: (LoadError) no such file to load -- gssapi

解决办法,安装gssapi插件:
一、 在线安装:

./bin/logstash-plugin install --no-verify gssapi

二、离线安装:
同离线安装webhdfs
在安装过插件的服务器上,进入logstash目录执行如下命令:

./logstash-plugin prepare-offline-pack --overwrite --output gssapi.zip gssapi

把离线插件传输到需要安装的服务器上,进入logstash目录执行如下命令:

   ./bin/logstash-plugin install file:///home/cd-jsjwhzx/logstash-6.5.4/gssapi.zip
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值