美文网首页
eventrouter 采集kubernetes事件

eventrouter 采集kubernetes事件

作者: 谁用了我的昵称叫艾特 | 来源:发表于2020-04-12 19:31 被阅读0次

eventrouter可以采集集群中的event 到es中。 对于集群的问题排查,事件取证还是很有帮助的。开源的eventrouter 支持多种sink,可以方便的和es结合,这里采用代码库中的代码打包到本地仓库后部署。

  1. clone 源代码
git clone https://github.com.cnpmjs.org/heptiolabs/eventrouter.git
  1. 修改Makefile中相关参数,以适应中国网络
    • 修改REGISTRY变量为自己私服的地址
    • 修改BUILD_IMAGE为golang:1.14.2以支持通过env设置go-proxy
    • 修改编译步骤中$(DOCKER_BUILD)后边的参数为 "go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && CGO_ENABLED=0 go build"
  2. 修改Dockerfile
  3. 执行编译:
make all
  1. 将编译好的镜像推送到自己的私服
docker push xxxxx
  1. 部署到集群
    • 修改yaml目录中eventrouter.yaml文件中image地址为本地私服
    • 部署到集群
    kubectl apply -f yaml/eventrouter.yaml
    

说明:
默认配置是将event推动到日志中。可以通过kubectl logs 查看。 原生还支持kafka ,httpapi 等方式。代码库中的配置示例:
config.json

{
"kubeconfig": "/var/run/kubernetes/admin.kubeconfig",
"sink": "glog",
"kafkaBrokers": "kafka:9092",
"kafkaTopic": "topic",
"kafkaSaslUser": "user",
"kafkaSaslPwd": "password"
"httpSinkUrl": "http://localhost:8080",
"httpSinkBufferSize": 1500,
"httpSinkDiscardMessages": true,
"rocksetAPIKey": "",
"rocksetCollectionName": "",
"rocksetWorkspaceName": "",
"s3SinkAccessKeyID": "",
"s3SinkSecretAccessKey": "",
"s3SinkRegion": "ap-south-1",
"s3SinkBucket": "",
"s3SinkBucketDir": "",
"s3SinkBufferSize": 1500,
"s3SinkDiscardMessages": true,
"s3SinkOutputFormat": "flatjson",
"s3SinkUploadInterval": 120
}

遇到的问题:
在推送event到kafka 的过程中,发现topic生成。 但是日志推送失败:

E0412 09:16:43.252120       1 kafkasink.go:88] Failed to send to: topic(myevent)/partition(-1)/offset(-1)

吐槽下代码这个报错太简单了。修改了下87行, 将err 打印出来重新编译。

    84      case sarama.SyncProducer:
    85          partition, offset, err := p.SendMessage(msg)
    86          if err != nil {
    87              glog.Errorf("###%v###",err) //add
    88              glog.Errorf("Failed to send to: topic(%s)/partition(%d)/offset(%d)\n",
    89                  ks.Topic, partition, offset)
    90          }

才发现原来kafka集群是默认的配置。 没有修改listener等参数。 导致拿到的broker 地址为hostname

E0412 09:16:41.141840       1 kafkasink.go:87] ###dial tcp: lookup dx-dev-test701.novalocal on 10.96.0.10:53: no such host###

修改broker相关参数即可。

相关文章

网友评论

      本文标题:eventrouter 采集kubernetes事件

      本文链接:https://www.haomeiwen.com/subject/jvbbmhtx.html