eventrouter 采集kubernetes事件

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相关参数即可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Operator SDK User Guide Operator capability level 每种opera...
    黎明你好阅读 1,159评论 0 1
  • 扩展kubernetes两个最常用最需要掌握的东西:自定义资源CRD 和 adminsion webhook, 本...
    sealyun阅读 762评论 0 0
  • 本文简单介绍 Golang 提供的命令。我们执行 go help [command] 可以查看具体命令的帮助信息。...
    juniway阅读 2,045评论 0 2
  • 今天我背了一首古诗叫《宿新市徐公店》,那个题目上面没有带书名号,我想:难道这个不是古诗吗?可是是杨万里写的...
    若骞同学阅读 121评论 0 0
  • 上个月10号辞职但现在马上一个月了,时间有条不紊的流淌,每一天好像都这么过的,但是每一天的心情又不一样。 ...
    春晓与沐尔阅读 182评论 2 0