目录
输入和输出集成概述
Tail Telegraf 插件通过跟踪指定的日志文件来收集指标,实时捕获新的日志条目以进行进一步分析。
AWS Timestream Telegraf 插件使用户能够将指标直接发送到 Amazon 的 Timestream 服务,该服务专为时序数据管理而设计。此插件为身份验证、数据组织和保留设置提供了各种配置选项。
集成详情
Tail
tail 插件旨在持续监控和解析日志文件,使其成为实时日志分析和监控的理想选择。它模仿 Unix tail
命令的功能,允许用户指定文件或模式,并在添加新行时开始读取。主要功能包括跟踪日志轮换文件、从文件末尾开始读取以及支持日志消息的各种解析格式。用户可以通过各种配置选项自定义插件,例如指定文件编码、监视文件更新的方法以及处理日志数据的过滤器设置。在日志数据对于监控应用程序性能和诊断问题至关重要的环境中,此插件尤其有价值。
AWS Timestream
此插件旨在高效地将指标写入 Amazon 的 Timestream 服务,Timestream 服务是为物联网和运营应用程序优化的时序数据库。借助此插件,Telegraf 可以发送从各种来源收集的数据,并支持身份验证、数据组织和保留管理的灵活配置。它利用凭证链进行身份验证,允许各种方法,例如 Web 身份、承担角色和共享配置文件。用户可以定义指标在 Timestream 中的组织方式——是使用单表还是多表,以及控制磁存储和内存存储的保留期等方面。一个关键功能是它能够处理多度量记录,从而实现高效的数据摄取,并有助于减少多次写入的开销。在错误处理方面,该插件包括解决数据写入期间与 AWS 错误相关的常见问题的机制,例如针对节流的重试逻辑以及根据需要创建表的功能。
配置
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
AWS Timestream
[[outputs.timestream]]
## Amazon Region
region = "us-east-1"
## Amazon Credentials
## Credentials are loaded in the following order:
## 1) Web identity provider credentials via STS if role_arn and web_identity_token_file are specified
## 2) Assumed credentials via STS if role_arn is specified
## 3) explicit credentials from 'access_key' and 'secret_key'
## 4) shared profile from 'profile'
## 5) environment variables
## 6) shared credentials file
## 7) EC2 Instance Profile
#access_key = ""
#secret_key = ""
#token = ""
#role_arn = ""
#web_identity_token_file = ""
#role_session_name = ""
#profile = ""
#shared_credential_file = ""
## Endpoint to make request against, the correct endpoint is automatically
## determined and this option should only be set if you wish to override the
## default.
## ex: endpoint_url = "http://localhost:8000"
# endpoint_url = ""
## Timestream database where the metrics will be inserted.
## The database must exist prior to starting Telegraf.
database_name = "yourDatabaseNameHere"
## Specifies if the plugin should describe the Timestream database upon starting
## to validate if it has access necessary permissions, connection, etc., as a safety check.
## If the describe operation fails, the plugin will not start
## and therefore the Telegraf agent will not start.
describe_database_on_start = false
## Specifies how the data is organized in Timestream.
## Valid values are: single-table, multi-table.
## When mapping_mode is set to single-table, all of the data is stored in a single table.
## When mapping_mode is set to multi-table, the data is organized and stored in multiple tables.
## The default is multi-table.
mapping_mode = "multi-table"
## Specifies if the plugin should create the table, if the table does not exist.
create_table_if_not_exists = true
## Specifies the Timestream table magnetic store retention period in days.
## Check Timestream documentation for more details.
## NOTE: This property is valid when create_table_if_not_exists = true.
create_table_magnetic_store_retention_period_in_days = 365
## Specifies the Timestream table memory store retention period in hours.
## Check Timestream documentation for more details.
## NOTE: This property is valid when create_table_if_not_exists = true.
create_table_memory_store_retention_period_in_hours = 24
## Specifies how the data is written into Timestream.
## Valid values are: true, false
## When use_multi_measure_records is set to true, all of the tags and fields are stored
## as a single row in a Timestream table.
## When use_multi_measure_record is set to false, Timestream stores each field in a
## separate table row, thereby storing the tags multiple times (once for each field).
## The recommended setting is true.
## The default is false.
use_multi_measure_records = "false"
## Specifies the measure_name to use when sending multi-measure records.
## NOTE: This property is valid when use_multi_measure_records=true and mapping_mode=multi-table
measure_name_for_multi_measure_records = "telegraf_measure"
## Specifies the name of the table to write data into
## NOTE: This property is valid when mapping_mode=single-table.
# single_table_name = ""
## Specifies the name of dimension when all of the data is being stored in a single table
## and the measurement name is transformed into the dimension value
## (see Mapping data from Influx to Timestream for details)
## NOTE: This property is valid when mapping_mode=single-table.
# single_table_dimension_name_for_telegraf_measurement_name = "namespace"
## Only valid and optional if create_table_if_not_exists = true
## Specifies the Timestream table tags.
## Check Timestream documentation for more details
# create_table_tags = { "foo" = "bar", "environment" = "dev"}
## Specify the maximum number of parallel go routines to ingest/write data
## If not specified, defaulted to 1 go routines
max_write_go_routines = 25
## Please see README.md to know how line protocol data is mapped to Timestream
##
输入和输出集成示例
Tail
-
实时服务器健康状况监控:实施 Tail 插件以实时解析 Web 服务器访问日志,从而即时了解用户活动、错误率和性能指标。通过可视化此日志数据,运营团队可以快速识别和响应流量或错误的峰值,从而提高系统可靠性和用户体验。
-
集中式日志管理:利用 Tail 插件聚合分布式系统中多个来源的日志。通过配置每个服务以通过 Tail 插件将其日志发送到集中位置,团队可以简化日志分析,并确保可以从单个界面访问所有相关数据,从而简化故障排除流程。
-
安全事件检测:使用此插件监控身份验证日志,以查找未经授权的访问尝试或可疑活动。通过在某些日志消息上设置警报,团队可以利用此插件来增强安全态势并及时响应潜在的安全威胁,从而降低漏洞风险并提高整体系统完整性。
-
动态应用程序性能洞察:与分析工具集成以创建实时仪表板,这些仪表板基于日志数据展示应用程序性能指标。此设置不仅有助于开发人员诊断瓶颈和效率低下问题,还有助于主动进行性能调整和资源分配,从而优化应用程序在不同负载下的行为。
AWS Timestream
-
物联网数据指标:使用 Timestream 插件将来自物联网设备的实时指标发送到 Timestream,从而可以快速分析和可视化传感器数据。通过将设备读数组织成时序格式,用户可以跟踪趋势、识别异常并根据设备性能简化运营决策。
-
应用程序性能监控:将 Timestream 与应用程序监控工具结合使用,以发送有关服务性能随时间变化的指标。此集成使工程师能够执行应用程序性能的历史分析,将其与业务指标相关联,并根据随时间推移的使用模式优化资源分配。
-
自动化数据归档:配置 Timestream 插件以将数据写入 Timestream,同时管理保留期。此设置可以自动化归档策略,确保根据预定义的标准保留较旧的数据。这对于合规性和历史分析尤其有用,使企业能够以最少的人工干预来维护其数据生命周期。
-
多应用程序指标聚合:利用 Timestream 插件将来自多个应用程序的指标聚合到 Timestream 中。通过创建统一的性能指标数据库,组织可以获得跨各种服务的整体洞察力,从而提高对全系统性能的可见性并促进跨应用程序的故障排除。
反馈
感谢您成为我们社区的一份子!如果您有任何一般性反馈或在这些页面上发现了任何错误,我们欢迎并鼓励您提出意见。请在 InfluxDB 社区 Slack 中提交您的反馈。