应用程序将其日志写入保存在/home/my-user/myapp/目录中的文件中。
我想将这些文件中的数据(日志(发送到Splunk。
我想在Telegraf中使用[inputs.file]或[inputs.tail]插件。
为了验证它是否可行,我想首先将日志文件/home/myuser/myapp/connect.log1中的数据输出到另一个文件testoutput_log。
示例日志数据如下:
[2022-09-02 20:06:30,199] INFO [sftp_source_bht_extract|task-0] No files matching [^s]+(.(?i)(csv))$ were found in /dci/BHT (io.confluent.connect.sftp.source.SftpFileDequeue:86)
[2022-09-02 20:06:30,446] INFO [mongo_sftp_source_billing_statement_history|task-0] File queue out of files, searching for new file(s) in /dci/genius/out (io.confluent.connect.sftp.source.SftpFileDequeue:66)
[2022-09-02 20:06:30,449] INFO [sftp_source_bht_extract|task-0] File queue out of files, searching for new file(s) in /dci/BHT (io.confluent.connect.sftp.source.SftpFileDequeue:66)
以下是Telegraf配置中涵盖上述用例的部分:
[[inputs.file]]
files = ["/home/my-user/myapp/connect.log.1"]
data_format = "grok"
grok_patterns = ["%{GREEDYDATA}"]
[[outputs.file]]
files = ["stdout","/tmp/testoutput_log"]
data_format = "influx"
但是输出文件仍然为空。还尝试了各种输出数据格式,但没有成功。
我做错了什么?
根据文档,在使用grok解析器时,您需要至少定义一个字段。
当使用流入数据格式时,度量要求一个字段有效,因此有此要求。