Tail 和 Graphite 集成

强大的性能和简单的集成,由 InfluxData 构建的开源数据连接器 Telegraf 提供支持。

info

对于大规模实时查询,这不是推荐的配置。 为了查询和压缩优化、高速摄取和高可用性,您可能需要考虑 Tail 和 InfluxDB

50 亿+

Telegraf 下载量

#1

时间序列数据库
来源:DB Engines

10 亿+

InfluxDB 下载量

2,800+

贡献者

目录

强大的性能,无限的扩展能力

收集、组织和处理海量高速数据。当您将任何数据视为时间序列数据时,它会更有价值。使用 InfluxDB,这是 #1 的时间序列平台,旨在与 Telegraf 一起扩展。

查看入门方法

输入和输出集成概述

Tail Telegraf 插件通过跟踪指定的日志文件来收集指标,实时捕获新的日志条目以进行进一步分析。

Graphite 插件使用户能够通过 TCP 将 Telegraf 收集的指标发送到 Graphite。 此集成允许使用 Graphite 的强大功能高效地存储和可视化时间序列数据。

集成详情

Tail

tail 插件旨在持续监控和解析日志文件,使其成为实时日志分析和监控的理想选择。 它模仿 Unix tail 命令的功能,允许用户指定文件或模式,并在添加新行时开始读取。 主要功能包括跟踪日志轮换文件、从文件末尾开始读取以及支持日志消息的各种解析格式。 用户可以通过各种配置选项自定义插件,例如指定文件编码、监视文件更新的方法以及处理日志数据的过滤器设置。 在日志数据对于监控应用程序性能和诊断问题至关重要的环境中,此插件尤其有价值。

Graphite

此插件通过原始 TCP 将指标写入 Graphite,从而将 Telegraf 收集的指标无缝集成到 Graphite 生态系统中。 通过此插件,用户可以配置多个 TCP 端点以进行负载均衡,从而确保指标传输的高可用性和可靠性。 使用前缀自定义指标命名以及利用各种模板选项的能力增强了数据在 Graphite 中表示方式的灵活性。 此外,对 Graphite 标签的支持以及对指标名称进行严格清理的选项允许进行强大的数据管理,以满足用户不同的需求。 对于希望利用 Graphite 强大的指标存储和可视化功能,同时保持对数据表示的控制的企业来说,此功能至关重要。

配置

Tail

[[inputs.tail]]
  ## File names or a pattern to tail.
  ## These accept standard unix glob matching rules, but with the addition of
  ## ** as a "super asterisk". ie:
  ##   "/var/log/**.log"  -> recursively find all .log files in /var/log
  ##   "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log
  ##   "/var/log/apache.log" -> just tail the apache log file
  ##   "/var/log/log[!1-2]*  -> tail files without 1-2
  ##   "/var/log/log[^1-2]*  -> identical behavior as above
  ## See https://github.com/gobwas/glob for more examples
  ##
  files = ["/var/mymetrics.out"]

  ## Read file from beginning.
  # from_beginning = false

  ## Whether file is a named pipe
  # pipe = false

  ## Method used to watch for file updates.  Can be either "inotify" or "poll".
  ## inotify is supported on linux, *bsd, and macOS, while Windows requires
  ## using poll. Poll checks for changes every 250ms.
  # watch_method = "inotify"

  ## Maximum lines of the file to process that have not yet be written by the
  ## output.  For best throughput set based on the number of metrics on each
  ## line and the size of the output's metric_batch_size.
  # max_undelivered_lines = 1000

  ## Character encoding to use when interpreting the file contents.  Invalid
  ## characters are replaced using the unicode replacement character.  When set
  ## to the empty string the data is not decoded to text.
  ##   ex: character_encoding = "utf-8"
  ##       character_encoding = "utf-16le"
  ##       character_encoding = "utf-16be"
  ##       character_encoding = ""
  # character_encoding = ""

  ## Data format to consume.
  ## Each data format has its own unique set of configuration options, read
  ## more about them here:
  ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
  data_format = "influx"

  ## Set the tag that will contain the path of the tailed file. If you don't want this tag, set it to an empty string.
  # path_tag = "path"

  ## Filters to apply to files before generating metrics
  ## "ansi_color" removes ANSI colors
  # filters = []

  ## multiline parser/codec
  ## https://elastic.ac.cn/guide/en/logstash/2.4/plugins-filters-multiline.html
  #[inputs.tail.multiline]
    ## The pattern should be a regexp which matches what you believe to be an indicator that the field is part of an event consisting of multiple lines of log data.
    #pattern = "^\s"

    ## The field's value must be previous or next and indicates the relation to the
    ## multi-line event.
    #match_which_line = "previous"

    ## The invert_match can be true or false (defaults to false).
    ## If true, a message not matching the pattern will constitute a match of the multiline filter and the what will be applied. (vice-versa is also true)
    #invert_match = false

    ## The handling method for quoted text (defaults to 'ignore').
    ## The following methods are available:
    ##   ignore  -- do not consider quotation (default)
    ##   single-quotes -- consider text quoted by single quotes (')
    ##   double-quotes -- consider text quoted by double quotes (")
    ##   backticks     -- consider text quoted by backticks (`)
    ## When handling quotes, escaped quotes (e.g. \") are handled correctly.
    #quotation = "ignore"

    ## The preserve_newline option can be true or false (defaults to false).
    ## If true, the newline character is preserved for multiline elements,
    ## this is useful to preserve message-structure e.g. for logging outputs.
    #preserve_newline = false

    #After the specified timeout, this plugin sends the multiline event even if no new pattern is found to start a new event. The default is 5s.
    #timeout = 5s

Graphite

# Configuration for Graphite server to send metrics to
[[outputs.graphite]]
  ## TCP endpoint for your graphite instance.
  ## If multiple endpoints are configured, the output will be load balanced.
  ## Only one of the endpoints will be written to with each iteration.
  servers = ["localhost:2003"]

  ## Local address to bind when connecting to the server
  ## If empty or not set, the local address is automatically chosen.
  # local_address = ""

  ## Prefix metrics name
  prefix = ""

  ## Graphite output template
  ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
  template = "host.tags.measurement.field"

  ## Strict sanitization regex
  ## This is the default sanitization regex that is used on data passed to the
  ## graphite serializer. Users can add additional characters here if required.
  ## Be aware that the characters, '/' '@' '*' are always replaced with '_',
  ## '..' is replaced with '.', and '\' is removed even if added to the
  ## following regex.
  # graphite_strict_sanitize_regex = '[^a-zA-Z0-9-:._=\p{L}]'

  ## Enable Graphite tags support
  # graphite_tag_support = false

  ## Applied sanitization mode when graphite tag support is enabled.
  ## * strict - uses the regex specified above
  ## * compatible - allows for greater number of characters
  # graphite_tag_sanitize_mode = "strict"

  ## Character for separating metric name and field for Graphite tags
  # graphite_separator = "."

  ## Graphite templates patterns
  ## 1. Template for cpu
  ## 2. Template for disk*
  ## 3. Default template
  # templates = [
  #  "cpu tags.measurement.host.field",
  #  "disk* measurement.field",
  #  "host.measurement.tags.field"
  #]

  ## timeout in seconds for the write connection to graphite
  # timeout = "2s"

  ## Optional TLS Config
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  # insecure_skip_verify = false

输入和输出集成示例

Tail

  1. 实时服务器健康状况监控:实施 Tail 插件以实时解析 Web 服务器访问日志,从而立即了解用户活动、错误率和性能指标。 通过可视化此日志数据,运营团队可以快速识别和响应流量或错误峰值,从而提高系统可靠性和用户体验。

  2. 集中式日志管理:利用 Tail 插件聚合分布式系统中多个来源的日志。 通过配置每个服务以通过 Tail 插件将其日志发送到集中位置,团队可以简化日志分析并确保可以从单个界面访问所有相关数据,从而简化故障排除流程。

  3. 安全事件检测:使用此插件监控身份验证日志,以查找未经授权的访问尝试或可疑活动。 通过设置特定日志消息的警报,团队可以利用此插件来增强安全态势并及时响应潜在的安全威胁,从而降低违规风险并提高整体系统完整性。

  4. 动态应用程序性能洞察:与分析工具集成以创建实时仪表板,这些仪表板根据日志数据展示应用程序性能指标。 此设置不仅可以帮助开发人员诊断瓶颈和效率低下问题,还可以实现主动性能调整和资源分配,从而优化应用程序在不同负载下的行为。

Graphite

  1. 动态指标可视化:Graphite 插件可用于将来自各种来源(例如应用程序性能数据或服务器健康指标)的实时指标馈送到 Graphite 中。 这种动态集成使团队能够创建交互式仪表板,可视化关键绩效指标,跟踪随时间变化的趋势,并做出数据驱动的决策以提高系统性能。

  2. 负载均衡的指标收集:通过在插件中配置多个 TCP 端点,组织可以实现指标传输的负载均衡。 此用例确保指标交付既有弹性又高效,从而降低高流量期间数据丢失的风险,并保持信息可靠地流向 Graphite。

  3. 自定义指标标记:借助对 Graphite 标签的支持,用户可以使用 Graphite 插件来增强其指标的粒度。 使用相关信息(例如应用程序环境或服务类型)标记指标可以进行更精细的查询和分析,使团队能够深入研究特定感兴趣的领域,以获得更好的运营洞察力。

  4. 增强的数据清理:利用插件的严格清理选项,用户可以确保其指标名称符合 Graphite 的要求。 这种主动措施消除了指标名称中无效字符可能引起的问题,从而实现更清晰的数据管理和更准确的可视化。

反馈

感谢您成为我们社区的一份子!如果您有任何一般性反馈或在这些页面上发现任何错误,我们欢迎并鼓励您提供意见。 请在 InfluxDB 社区 Slack 中提交您的反馈。

强大的性能,无限的扩展能力

收集、组织和处理海量高速数据。当您将任何数据视为时间序列数据时,它会更有价值。使用 InfluxDB,这是 #1 的时间序列平台,旨在与 Telegraf 一起扩展。

查看入门方法

相关集成

HTTP 和 InfluxDB 集成

HTTP 插件从一个或多个 HTTP(S) 端点收集指标。 它支持各种身份验证方法和数据格式的配置选项。

查看集成

Kafka 和 InfluxDB 集成

此插件从 Kafka 读取消息,并允许基于这些消息创建指标。 它支持各种配置,包括不同的 Kafka 设置和消息处理选项。

查看集成

Kinesis 和 InfluxDB 集成

Kinesis 插件允许从 AWS Kinesis 流中读取指标。 它支持多种输入数据格式,并提供带有 DynamoDB 的检查点功能,以实现可靠的消息处理。

查看集成