2016-11-17 33 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''' –