使用prometheus怎么实现远程存储,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
mac 10.14
docker
Engine: Version: 18.09.2 API version: 1.39 (minimum version 1.12) Go version: go1.10.6 Git commit: 6247962 Built: Sun Feb 10 04:13:06 2019 OS/Arch: linux/amd64 Experimental: false
在docker部署伪分布式kafka集群
新建名为:metrics的topic
[Mac 使用 docker 搭建 kafka 集群 + Zookeeper + kafka-manager](https://learnku.com/articles/19221) docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=10.3.0.170:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://1localhost:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=10.3.0.170:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka docker run -d --name kafka2 -p 9094:9094 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=10.3.0.170:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 2 --topic metrics bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic partopic bin/kafka-console-producer.sh --broker-list localhost:9092 --topic metrics bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic metrics --from-beginning
Prometheus的本地存储设计可以减少其自身运维和管理的复杂度,同时能够满足大部分用户监控规模的需求。但是本地存储也意味着Prometheus无法持久化数据,无法存储大量历史数据,同时也无法灵活扩展和迁移。
为了保持Prometheus的简单性,Prometheus并没有尝试在自身中解决以上问题,而是通过定义两个标准接口(remote_write/remote_read),让用户可以基于这两个接口对接将数据保存到任意第三方的存储服务中,这种方式在Promthues中称为Remote Storage。
远程存储官方文档
本文主要讲解远程存储至kafka的过程。
该adapter的github地址
将github代码拉下来,并使用goland打开进行编译,此步十分麻烦且重要。
mac上安装go及goland
在goland上对源码进行编译,其中有很多包下载不了,特别是/golang.org/x/...
类型的包,原因是这些包被墙了,所以需要增加代理才可以。直接执行
$ export http_proxy=socks5://127.0.0.1:1080 // 梯子的本地端口 $ export https_proxy=$http_proxy $ export GOPROXY=https://goproxy.io
问题一:解决golang.org/x包无法下载的问题
问题二:解决golang grpc安装问题
问题三
$ go test # pkg-config –cflags rdkafka Package rdkafka was not found in the pkg-config search path. Perhaps you should add the directory containing `rdkafka.pc’ to the PKG_CONFIG_PATH environment variable No package ‘rdkafka’ found pkg-config: exit status 1
result
1. git clone https://github.com/edenhill/librdkafka.git cd librdkafka ./configure make make install
先修改源码config.go中的kafkaBrokerList
为本地kafka的地址。
对prometheus-kafka-adapter
源码进行编译:
go test go build
没有问题之后,在源码中会出现一个名为prometheus-kafka-adapter
的可执行文件,然后执行。 3. 修改prometheus
的配置文件prometheus.yml
中增加:
remote_write: - url: "http://<kafka.ip>:8080/receive"
kafka那边进行消费,就可以看到监控数据了。
mac 10.14
docker
Engine: Version: 18.09.2 API version: 1.39 (minimum version 1.12) Go version: go1.10.6 Git commit: 6247962 Built: Sun Feb 10 04:13:06 2019 OS/Arch: linux/amd64 Experimental: false
在docker部署influxdb
1. prometheus 使用influxdb 做永久存储
2. Prometheus高可用(2):理解远端存储
3. Prometheus 远程读写 Influxdb
在父目录下执行:
go build ./documentation/examples/remote_storage/remote_storage_adapter/
关于使用prometheus怎么实现远程存储问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。