我试图列出Geneos中包含昨天日期的UNIX文件夹中的所有文件。 我尝试过使用FKM& FTM插件,但如果我给出一个通配符,它只列出它检测到的第一个文件。 例如:/ location / *
如何配置Geneos以便它列出包含某些固定字符的UNIX服务器中文件夹中的所有文件?
答案 0 :(得分:0)
您需要在FKM插件中使用两个概念:日期生成& 动态文件。
如果您想将其复制并粘贴到编辑器中,则下面包含非常有用的帮助指南和示例xml的摘录。
可以将FKM文件定义配置为使用当前日期和时间生成文件名。每个样本都会生成目标文件名,如果存在与此名称匹配的文件,则文件将由FKM监视(一旦当前文件已处理到最后)。 可以使用三个日期代码之一生成文件名;昨天,今天或明天。使用适当的日期在文件名中替换它们。 例如,如果当前日期是2008年8月22日,则将生成以下内容:
Filename Generated name
app<yesterday>.log app20080821.log
app<today>.log app20080822.log
app<tomorrow>.log app20080823.log
可以通过在日期标记中放置格式代码来控制日期的输出格式。此用法的示例如下所示。
Filename Generated name
app<today %d-%m-%Y>.log app22-08-2008.log
app<today %d%b%y>.log app22Aug08.log
app<tomorrow %d_%m_%Y>.log app23_08_2008.log
以下格式代码可用于此功能。
Code Meaning
%a Abbreviated weekday name. (e.g. Wed)
%A Full weekday name (e.g. Wednesday)
%b Abbreviated month name. (e.g. Mar)
%B Full month name (e.g. March)
%c Date and time representation appropriate for the current locale.
%d Day of month as a decimal number (01 – 31).
%H Hour in 24-hour clock format (00 – 23).
%I Hour in 12-hour clock format (01 – 12).
%j Day of year as a decimal number (001 – 336).
%m Month as a decimal number (01 – 12).
%M Minutes as a decimal number (00 – 59).
%p Current locale’s AM / PM indicator for 12-hour clock.
%S Seconds as a decimal number (00 – 61).
%U Week of the year as a decimal number, with Sunday as the first day. (00 – 53).
%w Weekday as a decimal number (0 – 6, with Sunday as 0).
%W Week of the year as a decimal number, with Monday as the first day. (00 – 53).
%x Date representation appropriate for current locale.
%X Time representation appropriate for current locale.
%y Year without century, as a decimal number (00 – 99).
%Y Year with century, as a decimal number (e.g. 2008).
%z,%Z Time-zone name or abbreviation (e.g. GMT or PST); no characters are shown if the time-zone is unknown.
注意强> 可以但不建议在文件名中使用秒(%S)或分钟(%M)时间格式代码。这是因为生成的文件名将包含FKM执行样本的时间,不能保证在相隔的精确秒数内发生。
文件&gt;档案&gt;来源&gt; dynamicFiles 强>
dynamicFiles类型file-source根据配置的路径,模式和可选的别名配置FKM以匹配文件组。
当识别出新组时,会创建一个额外的文件行,其行为是正常的文件名源。此新行的设置将从父dynamicFiles行的设置中复制。如果没有剩余文件来创建该分组,则将删除该行。
此功能类似于使用带有wildcardMonitorAllMatches设置的普通文件名源,但这两个功能不能同时使用。如果您尝试这样做,FKM将报告错误。
使用路径设置指定组,路径设置应该是包含通配符通配符(*和?)的文件路径。将评估此路径,然后将发现的所有文件与配置的正则表达式模式进行匹配。
视图中行的名称是通过评估文件别名来确定的。别名中的任何编号插入(由%后跟数字标识,例如%4)将替换为正则表达式模式中该捕获组的内容,与文件名匹配。不存在或没有内容的捕获组将替换为空字符串。可以生成一个字面百分比字符,将其作为%%转义。使用不区分大小写的正则表达式时,插入将是小写的,以确保一致的行名称。
例如,与文件“app_Apache_001.log”匹配的正则表达式“app _(。)_ \ d + .log $”的捕获组1的值将为“Apache”(内容为。正则表达式的一部分)。网站http://www.internetofficer.com/seo-tool/regex-tester/可用于针对各种字符串测试正则表达式,以查看每个捕获组的内容。
给出以下配置:
Path: /var/logs/app_*.log
Regex pattern: app_(.*)_\d+\.log$
Alias: App-%1
文件:
/var/logs/app_Apache_001.log
/var/logs/app_Apache_002.log
/var/logs/app_Samba_1_01.log
/var/logs/app_Router.log
FKM会在视图中创建两行:
"App-Apache" monitoring "app_Apache_002.log"
"App-Samba_1" monitoring "app_Samba_1_01.log".
通过app_Apache_001.log选择文件app_Apache_002.log,因为它具有更新的修改时间(假设Apache通过创建更高编号的日志来滚动文件)。可以使用wildcardMatchTime设置控制用于此检查的时间。文件“app_Router.log”被忽略,因为它没有通过正则表达式。
<sampler name="Example">
<plugin>
<fkm>
<files>
<file>
<source>
<dynamicFiles>
<path>
<data>/my/path/file*.log</data>
</path>
<pattern>
<data>
<regex>file<yesterday>.log</regex>
</data>
</pattern>
</dynamicFiles>
</source>
</file>
</files>
</fkm>
</plugin>
</sampler>