目录
输入和输出集成概述
Tail Telegraf 插件通过跟踪指定的日志文件来收集指标,实时捕获新的日志条目以进行进一步分析。
MongoDB Telegraf 插件使用户能够将指标发送到 MongoDB 数据库,自动管理时序集合。
集成详情
Tail
Tail 插件旨在持续监控和解析日志文件,使其成为实时日志分析和监控的理想选择。 它模拟 Unix tail
命令的功能,允许用户指定文件或模式,并在添加新行时开始读取。 主要功能包括跟踪日志轮换文件、从文件末尾开始读取以及支持日志消息的各种解析格式。 用户可以通过各种配置选项自定义插件,例如指定文件编码、监视文件更新的方法以及处理日志数据的过滤器设置。 此插件在日志数据对于监控应用程序性能和诊断问题至关重要的环境中尤其有价值。
MongoDB
此插件将指标发送到 MongoDB,并与其时序功能无缝集成,从而允许在尚不存在时自动创建集合作为时序。 它需要 MongoDB 5.0 或更高版本才能利用时序集合功能,这对于高效存储和查询基于时间的数据至关重要。 此插件通过确保所有相关指标都正确存储并在 MongoDB 中组织,从而增强了监控功能,使用户能够利用 MongoDB 强大的查询和聚合功能进行时序分析。
配置
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
MongoDB
[[outputs.mongodb]]
# connection string examples for mongodb
dsn = "mongodb://localhost:27017"
# dsn = "mongodb://mongod1:27017,mongod2:27017,mongod3:27017/admin&replicaSet=myReplSet&w=1"
# overrides serverSelectionTimeoutMS in dsn if set
# timeout = "30s"
# default authentication, optional
# authentication = "NONE"
# for SCRAM-SHA-256 authentication
# authentication = "SCRAM"
# username = "root"
# password = "***"
# for x509 certificate authentication
# authentication = "X509"
# tls_ca = "ca.pem"
# tls_key = "client.pem"
# # tls_key_pwd = "changeme" # required for encrypted tls_key
# insecure_skip_verify = false
# database to store measurements and time series collections
# database = "telegraf"
# granularity can be seconds, minutes, or hours.
# configuring this value will be based on your input collection frequency.
# see https://docs.mongodb.com/manual/core/timeseries-collections/#create-a-time-series-collection
# granularity = "seconds"
# optionally set a TTL to automatically expire documents from the measurement collections.
# ttl = "360h"
输入和输出集成示例
Tail
-
实时服务器健康监控:实施 Tail 插件以实时解析 Web 服务器访问日志,从而立即了解用户活动、错误率和性能指标。 通过可视化此日志数据,运营团队可以快速识别并响应流量或错误的峰值,从而提高系统可靠性和用户体验。
-
集中式日志管理:利用 Tail 插件聚合分布式系统中多个来源的日志。 通过配置每个服务以通过 Tail 插件将其日志发送到集中位置,团队可以简化日志分析并确保从单个界面访问所有相关数据,从而简化故障排除流程。
-
安全事件检测:使用此插件监控身份验证日志以查找未经授权的访问尝试或可疑活动。 通过在某些日志消息上设置警报,团队可以利用此插件来增强安全态势并及时响应潜在的安全威胁,从而降低漏洞风险并提高整体系统完整性。
-
动态应用程序性能洞察:与分析工具集成以创建实时仪表板,这些仪表板显示基于日志数据的应用程序性能指标。 这种设置不仅可以帮助开发人员诊断瓶颈和效率低下问题,还可以实现主动性能调整和资源分配,从而优化应用程序在不同负载下的行为。
MongoDB
-
用于物联网设备的 MongoDB 动态日志记录:利用此插件实时收集和存储来自大量物联网设备的指标。 通过将设备日志直接发送到 MongoDB,您可以创建一个集中式数据库,该数据库允许轻松访问和查询运行状况指标和性能数据,从而能够根据历史趋势进行主动维护和故障排除。
-
Web 流量的时序分析:使用 MongoDB Telegraf 插件收集和分析一段时间内的 Web 流量指标。 此应用程序可以帮助您了解高峰使用时间、用户交互和行为模式,从而指导营销策略和基础设施扩展决策,以改善用户体验。
-
自动化监控和警报系统:将 MongoDB 插件集成到跟踪应用程序性能指标的自动化监控系统中。 借助时序集合,您可以根据特定阈值设置警报,使您的团队能够在潜在问题影响用户之前做出响应。 这种主动管理可以提高服务可靠性和整体性能。
-
指标存储中的数据保留和 TTL 管理:利用 MongoDB 集合中文档的 TTL 功能自动过期过时的指标。 这在仅最近的性能数据相关的环境中尤其有用,可防止您的 MongoDB 数据库因旧指标而变得混乱,并确保高效的数据管理。
反馈
感谢您成为我们社区的一份子! 如果您有任何一般性反馈或在这些页面上发现任何错误,我们欢迎并鼓励您提出意见。 请在 InfluxDB 社区 Slack 中提交您的反馈。