2016-11-17 66 views
0

只是一个关于scollector标记的问题。我有一个配置文件看起来像这样:scollector - 来自vSphere的标记指标

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服务器的标签数据。

我对文档的理解是,这会给我们提供许多不同的标记值,这些标记值是基于Vsphere主机名重新格式化的。初始标签用于本地主机,我们使用覆盖来自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数据),因此即时通讯不太肯定,我错了。

有人可以帮助我了解我在哪里出错吗?

更新

按以下Greg的答案,我的问题是,我没有在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' 

回答

1

我相信CollectorExpr是一个正则表达式,必须针对scollector -l使用的输出或集电极标签值匹配在scollector.collector.duration指标中。我们的vsphere实例获取ny-vsphere02的vsphere-ny-vsphere02和nyhq-vsphere01的vsphere-nyhq-vsphere01的标签值。下面的设置应符合对那些收藏家的名字:

[[TagOverride]] 
    CollectorExpr = "vsphere-ny-" 
    [TagOverride.Tags] 
     datacenter = 'ny' 

[[TagOverride]] 
    CollectorExpr = "vsphere-nyhq-" 
    [TagOverride.Tags] 
     datacenter = 'nyhq' 

使用的[TagOverride.MatchedTags]代替[TagOverride.Tags]应努力把解压出来的主机名的值,但请记住,所有的主机名被截断他们的短名称(无FQDN)除非在scollector.toml文件中设置FullHost = true。我的猜测是你的设置失败,因为CollectorExpr不正确。尝试是这样的:

[[TagOverride]] 
    CollectorExpr = "vsphere-" 
    [TagOverride.MatchedTags] 
     Host = '^(?P<customer>.{5})(?P<datacenter>.{5})(?P<environment>[^.]+)' 

如果不行尝试使用“[TagOverride.Tags]”在开发环境,看看是否可以添加测试代码/值对这些指标。

+0

啊,太棒了。我的问题似乎与CollectorExpr,并感谢提示重新:'''scollector -l''' –