prometheus+thanos做集群用到的几种模块
thanos query :查询模块
thanos sidecar :读取prometheus采集指标数据并存储到对象存储的模块
thanos receive :接收prometheus数据并存储到对象存储的模块
thanos store :连接对象存储并提供查询的模块
边车模式,需要与prometheus部署到同一台服务器上,也是大多数thanos做集群用到的模块。
同时必须在prometheus启动时配置
--storage.tsdb.min-block-duration=2h
--storage.tsdb.max-block-duration=2h
否则sidecar启动报错!
提供远程写入的API,允许远程prometheus将数据写入thanos receive中,只要远程prometheus与thanos receive 的API接口网络通即可,远程prometheus控制好本地存储的空间就可以。
安装就不说了,主要是prometheus.yml和启动文件配置
配置文件prometheus.yml
vim prometheus.yml
#添加thanos receive远程API地址,其他配置按需要修改
remote_write:
- url: "http://thanos-receiveIP:19291/api/v1/receive"
启动文件配置
vim start.sh
#!/bin/bash
nohup /usr/local/prometheus/bin/prometheus --config.file="/usr/local/prometheus/config/prometheus.yml" --web.enable-lifecycle --storage.tsdb.retention.size=10GB > /usr/local/prometheus/logs/prometheus.log 2>&1 &
#注意:参数“--storage.tsdb.retention.size=”是为了控制存本地的数据大小到达多少时删除旧数据。
创建连接对象存储(minio)连接文件
vim receive.yml
type: s3
config:
bucket: prometheus
endpoint: minioIP:9000
access_key: minioadmin
secret_key: minioadmin
insecure: true
启动文件配置
vim start-receive.sh
#!/bin/bash
nohup /usr/local/thanos/bin/thanos receive \
--grpc-address="0.0.0.0:10901" \
--http-address="0.0.0.0:10902" \
--receive.replication-factor=1 \
--label "receive_replica=\"1\"" \
--objstore.config-file="/usr/local/thanos/config/receive.yml" \
--remote-write.address="0.0.0.0:19291" \
--tsdb.path="/usr/local/thanos/data/receive" > /usr/local/thanos/logs/receive.log 2>&1 &
参数说明:
--grpc-address : 给thanos query查询用的
--http-address : 对外提供http服务器访问用的
--receive.replication-factor : 指定有几个receive在运行,例如等于3就需要receive同时运行才可以,否则报错
--label "receive_replica : 和sidecar必须指定prometheus的replica功能相同,只不过在receive模式只需在thanos receive启动指定,无需在prometheus配置文件中配置
--remote-write.address : 给远程prometheus写入的提供的API端口
启动文件配置
vim start-query.sh
#!/bin/bash
nohup /usr/local/thanos/bin/thanos query \
--http-address "queryIP:11902" \
--grpc-address="0.0.0.0:11901" \
--store="receiveIP:10901" \
--store="storeIP:39090" > /usr/local/thanos/logs/query.log 2>&1 &
创建连接对象存储(minio)连接文件
vim receive.yml
type: s3
config:
bucket: prometheus
endpoint: minioIP:9000
access_key: minioadmin
secret_key: minioadmin
insecure: true
启动文件配置
vim start-store.sh
#!/bin/bash
nohup /usr/local/thanos/thanos store \
--data-dir /usr/local/thanos/data \
--objstore.config-file /usr/local/thanos/prometheus.yml \
--http-address 0.0.0.0:39191 \
--grpc-address 0.0.0.0:39090 \
--min-time=-2w --max-time=-1w > /usr/local/thanos/logs/store.log 2>&1 &
启动文件配置
vim start.sh
#!/bin/bash
export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=minioadmin
nohup /usr/local/minio/bin/minio server --address :9000 /usr/local/minio/data > /usr/local/minio/logs/minio.log 2>&1 &
顺序启动minio receive store query prometheus
访问query页面

查询node指标

prometheus agent模式配置跳转prometheus 配置agent模式,经测试agent 模式和receive模式关联完全没问题,至与压力测试,有测试的小伙伴反馈一下。
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最
一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模