只是一个关于收藏家贴标签的问题。我有一个配置文件,如下所示:
Host = "bosun01:80"
BatchSize = 5000
[Tags]
customer = "Admin"
environment = "bosun"
datacenter = "SITE1"
[[Vsphere]]
Host = "CUST2SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST3SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST4SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST4SITE2VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
CollectorExpr = "Vsphere"
[TagOverride.MatchedTags]
Host = '^(?P<customer>.{5})(?P<datacenter>.{5})(?P<environment>)\.[.]+'我们可以从不同的vsphere服务器检索和标记数据。
我对docs的理解是,这将根据Vsphere主机名中的regex提供许多不同的标记值。初始标记用于本地主机,我们使用重写来自Vsphere的数据。
然而,当我实现这一点时,我注意到这些指标是与原始环境标记"bosun“一起出现的,而不是被应用的覆盖。
我尝试了另一个配置:
Host = "bosun01:80"
BatchSize = 5000
[Tags]
customer = "Admin"
environment = "bosun"
datacenter = "SITE1"
[[Vsphere]]
Host = "CUST2SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
[TagOverride.Tags]
environment = "Env01"
[[Vsphere]]
Host = "CUST3SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
[TagOverride.Tags]
environment = "Env02"
[[Vsphere]]
Host = "CUST4SITE1VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
[TagOverride.Tags]
environment = "Env03"
[[Vsphere]]
Host = "CUST4SITE2VC01.F.Q.D.N"
User = "user"
Password = "pass"
[[TagOverride]]
[TagOverride.Tags]
environment = "Env04"但是我看到了类似的行为(最后一个环境标记应用于所有的vpshere数据),所以我不太确定我在哪里出错。
有人能帮我弄清楚我哪里出了问题吗?
更新
根据格雷格下面的回答,我的问题是我没有完全正确的CollectorExpr。
使用scollector -l,我能够得到正确的CollectorExpr。
# ./scollector-linux-amd64 -l | grep vsphere
vsphere-CUST1-SITE1-MGMTVC01
vsphere-CUST1-SITE2-MGMTVC01
vsphere-CUST1-SITE1-CLIVC01
vsphere-CUST1-SITE2-CLIVC01
#我们的配置(对于那些寻找示例的人)最终得到的结果如下:
Host = "hwbosun01:80"
BatchSize = 5000
[Tags]
customer = "Customer1"
environment = "bosun"
datacenter = "eq"
[[Vsphere]]
Host = "CUST1-SITE1-MGMTVC01"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST1-SITE2-MGMTVC01"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST1-SITE1-CLIVVC01"
User = "user"
Password = "pass"
[[Vsphere]]
Host = "CUST-SITE1-CLIVVC01"
User = "user"
Password = "pass"
[[TagOverride]]
CollectorExpr = "CUST-SITE1-MGMTVC01"
[TagOverride.Tags]
environment = "vsphere.mgmt"
datacenter = 'site1'
[[TagOverride]]
CollectorExpr = "CUST-SITE1-MGMTVC01"
[TagOverride.Tags]
environment = "vsphere.mgmt"
datacenter = 'site2'
[[TagOverride]]
CollectorExpr = "CUST-SITE1-CLIVC01"
[TagOverride.Tags]
environment = "vsphere.mgmt"
datacenter = 'site1'
[[TagOverride]]
CollectorExpr = "CUST-SITE1-CLIVC01"
[TagOverride.Tags]
environment = "vsphere.mgmt"
datacenter = 'site2' 发布于 2016-11-17 23:53:03
我认为CollectorExpr是一个正则表达式,必须与scollector -l的输出或scollector.collector.duration度量中使用的收集器标记值匹配。我们的vsphere实例获取vsphere-ny-vsphere02的标记值,而vsphere-nyhq-vsphere01的标记值为nyhq-vsphere01。下列设置应与这些收集器名称匹配:
[[TagOverride]]
CollectorExpr = "vsphere-ny-"
[TagOverride.Tags]
datacenter = 'ny'
[[TagOverride]]
CollectorExpr = "vsphere-nyhq-"
[TagOverride.Tags]
datacenter = 'nyhq'使用[TagOverride.MatchedTags]而不是[TagOverride.Tags]应该可以从主机名中提取值,但请记住,除非在scollector.toml文件中设置FullHost = true,否则所有主机名都会被截断为它们的短名称(没有FQDN)。我猜您的设置失败了,因为CollectorExpr不正确。试一试如下:
[[TagOverride]]
CollectorExpr = "vsphere-"
[TagOverride.MatchedTags]
Host = '^(?P<customer>.{5})(?P<datacenter>.{5})(?P<environment>[^.]+)'如果这不起作用,尝试在dev环境中使用“TagOverride.Tags”,看看是否可以向这些度量标准中添加测试标记/值。
https://stackoverflow.com/questions/40646214
复制相似问题