eventrouter 采集kubernetes事件

浩洋的运维笔记 · · 676 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

<meta charset="utf-8">

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

作者:谁用了我的昵称叫艾特
链接:https://www.jianshu.com/p/0caab2ece5ab
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:浩洋的运维笔记

查看原文:eventrouter 采集kubernetes事件

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

676 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传