EnhanceIO Telegraf `filestat` 插件 - Super GLOB 模式不起作用 - 使 telegraf 递归查找所有文件
EnhanceIO Telegraf `filestat` plugin - Super GLOB pattern not working - Make telegraf recursively look for all files
Telegraf v1.0.1 (git: master 26acdc9231efde105510fe5df3da7519bc4f42f7)
Telegraf 服务 运行ning 成功 sudo service telegraf status
显示 telegraf is running [OK]
。
我正在使用 Wavefront 基于 SaaS 的监控解决方案来显示 Telegraf 数据或设置各种其他内容(警报、仪表板)。它有效。
概览:
当您安装 Telegraf 时,它会在 /etc/telegraf/telegraf.conf 处创建其主要配置文件,用户可以将其他配置放在 /etc/telegraf/telegraf.d[ 下=76=]/*.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
(更多信息请看这里:https://github.com/stec-inc/EnhanceIO
安装 EnhanceIO 后,您将获得如下文件夹结构:
ubuntu@MyTestCluster-1a-db2-i-0cf6u98b136b211ba:~$ 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/config
文件将 Telegraf 的 filestat 插件配置为 catch/look,我可以在我的配置中添加那个或 /proc/enhanceio/data_cache/*
(但是做这样,解决方案将无法扩展,即如果我希望 telegraf 选择 /proc 文件夹下的所有文件怎么办。
插件文档/评论部分说:
## These accept standard unix glob matching rules, but with the addition of
## ** as a "super asterisk".
所以,我尝试了以下配置来查找每个文件(递归):
[[inputs.filestat]]
files = ["/var/run/*/*.pid","/var/run/*.pid","/proc/*"]
上面的结果我运行时输出如下:$ 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
然后,我尝试使用 **
方法,但我得到了 NOTHING?
[[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
$
我尝试了几乎所有 glob 模式(例如:/proc/enhanceio/*/*
、/proc/enhanceio/*/**
、/proc/enhanceio/**/*
或 /proc/enhanceio/**/**
)但是它只是没有捕获 /proc/enhanceio 树下的任何文件。
为什么当我尝试上述模式时,filestat 插件的 SUPER GLOB 模式根本不起作用?
如何让 filestat 插件捕获 /proc 树下的所有文件?
PS:我知道如果我想在该目录下捕获 config
文件(就在那个级别),我知道给 /proc/enhanceio/data_cache/*
会起作用).
根据 Cameron Sparr 对此的评论和测试,她无法使用以下示例重现上述情况,但我在 post 中提到的示例在未捕捉到超级 glob 模式方面也是有效的.
根据她的评论,好像是:/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
Telegraf v1.0.1 (git: master 26acdc9231efde105510fe5df3da7519bc4f42f7)
Telegraf 服务 运行ning 成功 sudo service telegraf status
显示 telegraf is running [OK]
。
我正在使用 Wavefront 基于 SaaS 的监控解决方案来显示 Telegraf 数据或设置各种其他内容(警报、仪表板)。它有效。
概览: 当您安装 Telegraf 时,它会在 /etc/telegraf/telegraf.conf 处创建其主要配置文件,用户可以将其他配置放在 /etc/telegraf/telegraf.d[ 下=76=]/*.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
(更多信息请看这里:https://github.com/stec-inc/EnhanceIO
安装 EnhanceIO 后,您将获得如下文件夹结构:
ubuntu@MyTestCluster-1a-db2-i-0cf6u98b136b211ba:~$ 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/config
文件将 Telegraf 的 filestat 插件配置为 catch/look,我可以在我的配置中添加那个或 /proc/enhanceio/data_cache/*
(但是做这样,解决方案将无法扩展,即如果我希望 telegraf 选择 /proc 文件夹下的所有文件怎么办。
插件文档/评论部分说:
## These accept standard unix glob matching rules, but with the addition of
## ** as a "super asterisk".
所以,我尝试了以下配置来查找每个文件(递归):
[[inputs.filestat]]
files = ["/var/run/*/*.pid","/var/run/*.pid","/proc/*"]
上面的结果我运行时输出如下:$ 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
然后,我尝试使用 **
方法,但我得到了 NOTHING?
[[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
$
我尝试了几乎所有 glob 模式(例如:/proc/enhanceio/*/*
、/proc/enhanceio/*/**
、/proc/enhanceio/**/*
或 /proc/enhanceio/**/**
)但是它只是没有捕获 /proc/enhanceio 树下的任何文件。
为什么当我尝试上述模式时,filestat 插件的 SUPER GLOB 模式根本不起作用?
如何让 filestat 插件捕获 /proc 树下的所有文件?
PS:我知道如果我想在该目录下捕获 config
文件(就在那个级别),我知道给 /proc/enhanceio/data_cache/*
会起作用).
根据 Cameron Sparr 对此的评论和测试,她无法使用以下示例重现上述情况,但我在 post 中提到的示例在未捕捉到超级 glob 模式方面也是有效的.
根据她的评论,好像是:/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