<meta charset="utf-8">
eventrouter可以采集集群中的event 到es中定页。 對(duì)于集群的問(wèn)題排查纳像,事件取證還是很有幫助的。開(kāi)源的eventrouter 支持多種sink拯勉,可以方便的和es結(jié)合竟趾,這里采用代碼庫(kù)中的代碼打包到本地倉(cāng)庫(kù)后部署。
- clone 源代碼
git clone https://github.com.cnpmjs.org/heptiolabs/eventrouter.git
- 修改Makefile中相關(guān)參數(shù)宫峦,以適應(yīng)中國(guó)網(wǎng)絡(luò)
- 修改REGISTRY變量為自己私服的地址
- 修改BUILD_IMAGE為golang:1.14.2以支持通過(guò)env設(shè)置go-proxy
- 修改編譯步驟中$(DOCKER_BUILD)后邊的參數(shù)為 "go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && CGO_ENABLED=0 go build"
- 修改Dockerfile
- 在MAINTAINER行后追加"RUN echo "http://mirrors.aliyun.com/alpine/v3.8/main" > /etc/apk/repositories"
- 執(zhí)行編譯:
make all
- 將編譯好的鏡像推送到自己的私服
docker push xxxxx
-
部署到集群
- 修改yaml目錄中eventrouter.yaml文件中image地址為本地私服
- 部署到集群
kubectl apply -f yaml/eventrouter.yaml
說(shuō)明:
默認(rèn)配置是將event推動(dòng)到日志中岔帽。可以通過(guò)kubectl logs 查看导绷。 原生還支持kafka 犀勒,httpapi 等方式。代碼庫(kù)中的配置示例:
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
}
遇到的問(wèn)題:
在推送event到kafka 的過(guò)程中妥曲,發(fā)現(xiàn)topic生成贾费。 但是日志推送失敗:
E0412 09:16:43.252120 1 kafkasink.go:88] Failed to send to: topic(myevent)/partition(-1)/offset(-1)
吐槽下代碼這個(gè)報(bào)錯(cuò)太簡(jiǎn)單了檐盟。修改了下87行褂萧, 將err 打印出來(lái)重新編譯。
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 }
才發(fā)現(xiàn)原來(lái)kafka集群是默認(rèn)的配置葵萎。 沒(méi)有修改listener等參數(shù)导犹。 導(dǎo)致拿到的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相關(guān)參數(shù)即可。
作者:誰(shuí)用了我的昵稱(chēng)叫艾特
鏈接:http://www.reibang.com/p/0caab2ece5ab
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有羡忘。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)谎痢,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。