首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有zimbra.log的Telegraf inputs.tail

带有zimbra.log的Telegraf inputs.tail
EN

Stack Overflow用户
提问于 2020-10-08 16:04:50
回答 1查看 1.5K关注 0票数 1

我有一些问题,如何设置telegraf.conf文件从"zimbra.conf“文件收集日志?现在我尝试使用这个配置文本,但是它不起作用:((我想把这些日志发送到grafana )

例如,其中一行"zimbra.conf“:

10月1日10:20:46 webmail postfix/0.58 7677: BD5BAE9999: to=user@mail.com、relay=mo94.cloud.mail.com92.97.907.14:25、delay=0.73,延迟=0.09/0.01/0.58/0.19,dsn=2.0.0,status=sent (250 2.0.0 Ok:排队排队4C25fk2pjFz32N5)

我不明白"grok_patterns =“到底是如何工作的。

代码语言:javascript
运行
复制
[[inputs.tail]]
  files = ["/var/log/zimbra.log"]
  from_beginning = false
  grok_patterns = ['%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST} %{DATA:program}(?:\[%{POSINT}\])?: %{GREEDYDATA:message}']
  name_override = "zimbra_access_log"
  grok_custom_pattern_files = []
  grok_custom_patterns = '''
  TS_UNIX %{MONTH}%{SPACE}%{MONTHDAY}%{SPACE}%{HOUR}:%{MINUTE}:%{SECOND}
  TS_CUSTOM %{MONTH}%{SPACE}%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}
  '''
  grok_timezone = "Local"
  data_format = "grok"
EN

回答 1

Stack Overflow用户

发布于 2020-10-09 08:44:29

我已经将您的示例行复制到一个名为Prueba.txt wich的日志文件中,其中包含以下几行:

代码语言:javascript
运行
复制
Oct 3 00:52:32 webmail postfix/smtp[7677]: BD5BAE9999: to=user@mail.com, relay=mo94.cloud.mail.com[92.97.907.14]:25, delay=0.73, delays=0.09/0.01/0.58/0.19, dsn=2.0.0, status=sent (250 2.0$
Oct 13 06:25:01 webmail systemd-logind[949]: New session 229478 of user zimbra.
Oct 13 06:25:02 webmail zmconfigd[27437]: Shutting down. Received signal 15
Oct 13 06:25:02 webmail systemd-logind[949]: Removed session c296.
Oct 13 06:25:03 webmail sshd[28005]: Failed password for invalid user julianne from 120.131.2.210 port 10570 ssh2

我已经能够用这个tail.input插件的配置来解析数据:

代码语言:javascript
运行
复制
[[inputs.tail]]
  files = ["Prueba.txt"]
  from_beginning = true
  data_format = "grok"
  grok_patterns = ['%{TIMESTAMP_ZIMBRA} %{GREEDYDATA:source} %{DATA:program}(?:\[%{POSINT}\])?: %{GREEDYDATA:message}']


  grok_custom_patterns = '''
    TIMESTAMP_ZIMBRA (\w{3} \d{1,2} \d{2}:\d{2}:\d{2})
  '''

  name_override = "log_frames"

您需要将输入字符串与正则表达式匹配。为此,可以使用一些预定义模式(如GREEDYDATA = .* )来匹配输入(另一个示例是NUMBER = (?:%{BASE10NUM}) BASE16NUM (?<![0-9A-Fa-f])(?:[+-]?(?:0x)?(?:[0-9A-Fa-f]+)))。您还可以在grok_custom_patterns中定义自己的模式。看看这个网站,有几个模式:https://streamsets.com/documentation/datacollector/latest/help/datacollector/UserGuide/Apx-GrokPatterns/GrokPatterns_title.html

在本例中,我定义了一个TIMESTAMP_ZIMBRA模式,用于匹配Oct 3 00:52:32和10月03 00:52:33相同的输入。

以下是普罗米修斯收集的指标:

代码语言:javascript
运行
复制
# HELP log_frames_delay Telegraf collected metric
# TYPE log_frames_delay untyped
log_frames_delay{delays="0.09/0.01/0.58/0.19",dsn="2.0.0",host="localhost.localdomain",message="BD5BAE9999:",path="Prueba.txt",program="postfix/smtp",relay="mo94.cloud.mail.com[92.97.907.14]:25",source="webmail",status="sent (250 2.0.0 Ok: queued as 4C25fk2pjFz32N5)",to="user@mail.com"} 0.73

P.D.:确保telegraf能够访问日志文件.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64266417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档