0

Telegraf v1.0.1デベロッパー(26acdc9231efde105510fe5df3da7519bc4f42f7を習得gitの)を探してください。EnhanceIO Telegraf `filestat`プラグイン - - スーパーGLOBパターンが機能していないがtelegrafを再帰的にすべてのファイル

私はWavefrontのSaaSベースの監視ソリューションを使用して、Telegrafデータを表示したり、さまざまなもの(警告、ダッシュボード)を設定しています。

概要:あなたはTelegrafをインストールすると、それは /etc/telegraf/telegraf.conf で、その主な設定ファイルを作成し、ユーザーは、下の他の構成を置くことができます /etc/telegraf/telegraf.d/* .conf(ファイル)。

私が持っている/etc/telegraf/telegraf.d/extra-inputs-plugins.confと、このファイルで、私は以下の内容を持っている(あなたが見るように、それはfilestat inputs pluginを使用しています)と、以下の構成が機能

いくつかのデータベースサーバで
## Telegraf filestat plugin 
[[inputs.filestat]] 
    files = ["/var/run/*/*.pid","/var/run/*.pid"] 

、私はより多くの情報のために(EnhanceIOをインストールしているここを見て:

:EnhanceIOがインストールされるとhttps://github.com/stec-inc/EnhanceIO

を、次のようなフォルダ構造を取得します/proc/enhanceio/data_cache/configファイルを検索/キャッチするTelegrafの FILESTATプラグインを設定するには

[email protected]:~$ find /proc/enhanceio 
/proc/enhanceio 
/proc/enhanceio/data_cache 
/proc/enhanceio/data_cache/config 
/proc/enhanceio/data_cache/io_hist 
/proc/enhanceio/data_cache/errors 
/proc/enhanceio/data_cache/stats 
/proc/enhanceio/version 

、私はそれを追加したり、/proc/enhanceio/data_cache/*私の構成で(ただし、この方法をやってすることができ、解決策は、私がしたい場合telegrafを選ぶために何すなわちスケーラブルではありません/procの下のすべてのファイル。

プラグインのdoc /コメント欄は言う:

[[inputs.filestat]] 
    files = ["/var/run/*/*.pid","/var/run/*.pid","/proc/*"] 

は、上記の次の出力時にもたらした:だから

## These accept standard unix glob matching rules, but with the addition of 
    ## ** as a "super asterisk". 

、私は(再帰的に)すべてのファイルを探すために、以下の設定を試してみました私は実行する:$ telegraf --config-directory=/etc/telegraf -test|grep filestat|grep -v '/var/run/'|grep enhance(実際には/ proc/enhanceioはフォルダです)。

> filestat,host=MyTestCluster-1a-db2-i-0cf6u98b136b211ba,file=/proc/enhanceio exists=1i,size_bytes=0i 1485548956000000000 

その後、私は**アプローチを使用してみましたが、私は何もを持っていませんか?

[[inputs.filestat]] 
    files = ["/var/run/*/*.pid","/var/run/*.pid","/proc/**"] 

$ telegraf --config-directory=/etc/telegraf -test|grep filestat|grep -v '/var/run/'|grep enhance 
2017/01/27 20:31:38 I! Using config file: /etc/telegraf/telegraf.conf 
$ 

私は、ほぼすべてのグロブパターン(のような:/proc/enhanceio/*/*/proc/enhanceio/*/**/proc/enhanceio/**/*または/proc/enhanceio/**/**)を試みたが、それだけでは/ proc/enhanceioツリーの下にすべてのファイルをキャッチしませんでした。

上記のパターンを試したところ、filestatプラグインのSUPER GLOBパターンがまったく機能しなかったのはなぜですか?

どのようにして/ procツリーの下にあるすべてのファイルをfilestatプラグインにキャッチさせることができますか?

PS:私は(ちょうどそのレベルで)そのディレクトリの下にconfigファイルをキャッチしたい場合、私は動作します/proc/enhanceio/data_cache/*を与えることを知っています。

+0

この問題のためにTelegrafリポジトリ上の[機能のリクエスト](https://github.com/influxdata/telegraf/issues/new)を開いてください。 –

+0

これは私がCameron Sparrから得たものです: '/ procは実際には特定のカーネルのパラメータとメトリックにマッピングする"ファイル "である非常に特殊な"ファイルシステム "です。あなたが期待しているように、この領域では、Globとパスのマッチングは機能しないかもしれません。 –

答えて

1

Cameron Sparrのコメントやテストでは、次の例では上記の状況を再現できませんでしたが、私の記事で述べた例は、スーパーグロブパターンを捕捉しない場合でも有効でした。彼女のコメントパー

、それはのように思える:/proc is a very special "filesystem" that is actually a "file" mapping to particular kernel parameters and metrics. Glob and path matching may not work in this area as you might expect.

% ls -R /tmp/test 
/tmp/test: 
enhance/ foo.log 

/tmp/test/enhance: 
bar.log nested/ 

/tmp/test/enhance/nested: 
foo.file 
then with this config: 

[[inputs.filestat]] 
    files = ["/tmp/test/**.log", "/tmp/test/**.file"] 
    ## If true, read the entire file and calculate an md5 checksum. 
    md5 = false 
I was able to find all files 

% telegraf --config ~/gd/ws/telegraf.conf --input-filter filestat --output-filter discard --test 
* Plugin: inputs.filestat, Collection 1 
> filestat,file=/tmp/test/enhance/bar.log,host=tyrion size_bytes=4i,exists=1i 1485988684000000000 
> filestat,file=/tmp/test/foo.log,host=tyrion size_bytes=0i,exists=1i 1485988684000000000 
> filestat,file=/tmp/test/enhance/nested/foo.file,host=tyrion exists=1i,size_bytes=0i 1485988684000000000 
関連する問題