重新编译kafka_exporter源码,构建镜像
1.github
https://github.com/danielqsj/kafka_exporter
2.dockerfile
FROM golang:1.17 ENV GO111MODULE=on \ GOPROXY="https://goproxy.cn,direct" COPY kafka_exporter-1.4.2 /apps/kafka_exporter-1.4.2 WORKDIR /apps/kafka_exporter-1.4.2 RUN make RUN cp /apps/kafka_exporter-1.4.2/kafka_exporter-1.4.2 /bin/kafka_exporter WORKDIR /bin EXPOSE 9308 ENTRYPOINT [ "/bin/kafka_exporter" ]
3.20240110再次编译v1.4.2这个版本的的时候,报错如下
# github.com/danielqsj/kafka_exporter ./kafka_exporter.go:733:19: cannot use "gopkg.in/alecthomas/kingpin.v2".CommandLine (type *"gopkg.in/alecthomas/kingpin.v2".Application) as type *"github.com/alecthomas/kingpin/v2".Application in argument to "github.com/prometheus/common/promlog/flag".AddFlags !! command failed: build -o /apps/kafka_exporter-1.4.2/kafka_exporter-1.4.2 -ldflags -X github.com/prometheus/common/version.Version=1.4.2 -X github.com/prometheus/common/version.Revision=non-git -X github.com/prometheus/common/version.Branch=non-git -X github.com/prometheus/common/version.BuildUser=root@cc1a0138a1a2 -X github.com/prometheus/common/version.BuildDate=20240110-04:00:28 -extldflags '-static' -a -tags netgo github.com/danielqsj/kafka_exporter: exit status 2 make: *** [Makefile:35: build] Error 1
修改kafka_exporter.go的kingpin依赖
原来
"gopkg.in/alecthomas/kingpin.v2"
改为
kingpin "github.com/alecthomas/kingpin/v2"
再次编译即可
4.kafka-exporter的10.10.10.10:9308/debug/vars地址,扫出信息泄露漏洞
expvar包中默认绑定了这个地址,参考https://github.com/golang/go/blob/master/src/expvar/expvar.go

expvar_collector.go文件依赖了expvar包,删除expvar_collector.go文件即可,参考https://blog.csdn.net/Meepoljd/article/details/131794675
上面的dockerfile中是使用make命令打包的,每次打包都会拉取一次expvar包,所以可以修改Makefile文件

5.arm64环境下编译
注意v1.4.2这个版本的kingpin依赖不用向上面第3步那样改改,保持原来的即可
#arm架构的基础镜像 FROM 8685b3216ef4 ENV GO111MODULE=on \ GOPROXY="https://goproxy.cn,direct" \ CGO_ENABLED=0 #静态编译 USER root ADD qemu-aarch64-static /usr/bin COPY kafka_exporter-1.4.2 /apps/kafka_exporter-1.4.2 WORKDIR /apps/kafka_exporter-1.4.2
#make命令编译会报错,所以用go命令编译 RUN go mod vendor RUN rm -rf ./vendor/github.com/prometheus/client_golang/prometheus/expvar_collector.go #/debug/vars漏洞 #静态编译 RUN go build -a -ldflags '-extldflags "-static"' .

浙公网安备 33010602011771号