目录
输入和输出集成概述
此插件通过与 Kubelet API 通信,捕获 Kubernetes Pod 和容器的指标。
此插件使用参数化的 SQL INSERT 语句将 Telegraf 的指标直接写入 MariaDB,提供了一种灵活的方式将指标存储在结构化的关系表中。
集成详情
Kubernetes
Kubernetes 输入插件与 Kubelet API 接口,以收集在单个主机上运行的 Pod 和容器的指标,最好是作为 Kubernetes 安装中 daemonset 的一部分。通过在集群内的每个节点上运行,它从本地运行的 kubelet 收集指标,确保数据反映环境的实时状态。作为一个快速发展的项目,Kubernetes 经常更新,此插件遵循主要云提供商支持的版本,在有限的时间跨度内保持跨多个版本的兼容性。需要特别注意的是潜在的高基数序列,这可能会给数据库带来负担;因此,建议用户实施过滤技术和保留策略来有效管理此负载。配置选项提供了插件行为的灵活自定义,以无缝集成到不同的设置中,从而增强其在监控 Kubernetes 环境中的实用性。
MariaDB
Telegraf 中的 SQL 输出插件可以通过执行参数化的 SQL 语句,将指标直接写入 SQL 兼容的数据库(如 MariaDB)。通过支持 MySQL 驱动程序,该插件与 MariaDB 无缝集成,实现可靠、结构化的指标存储。对于喜欢基于 SQL 的分析或希望将指标与业务数据一起存储以进行统一查询的用户来说,此设置非常理想。MariaDB 是 MySQL 的一个社区开发的、企业级的分支,强调性能、安全性和开放性。该插件支持将时序指标插入到自定义模式中,从而可以使用 SQL 连接器灵活地进行分析,并与 Metabase 或 Grafana 等 BI 工具集成。
配置
Kubernetes
[[inputs.kubernetes]]
## URL for the kubelet, if empty read metrics from all nodes in the cluster
url = "http://127.0.0.1:10255"
## Use bearer token for authorization. ('bearer_token' takes priority)
## If both of these are empty, we'll use the default serviceaccount:
## at: /var/run/secrets/kubernetes.io/serviceaccount/token
##
## To re-read the token at each interval, please use a file with the
## bearer_token option. If given a string, Telegraf will always use that
## token.
# bearer_token = "/var/run/secrets/kubernetes.io/serviceaccount/token"
## OR
# bearer_token_string = "abc_123"
## Kubernetes Node Metric Name
## The default Kubernetes node metric name (i.e. kubernetes_node) is the same
## for the kubernetes and kube_inventory plugins. To avoid conflicts, set this
## option to a different value.
# node_metric_name = "kubernetes_node"
## Pod labels to be added as tags. An empty array for both include and
## exclude will include all labels.
# label_include = []
# label_exclude = ["*"]
## Set response_timeout (default 5 seconds)
# response_timeout = "5s"
## Optional TLS Config
# tls_ca = /path/to/cafile
# tls_cert = /path/to/certfile
# tls_key = /path/to/keyfile
## Use TLS but skip chain & host verification
# insecure_skip_verify = false
MariaDB
[[outputs.sql]]
## Database driver
## Valid options: mssql (Microsoft SQL Server), mysql (MySQL), pgx (Postgres),
## sqlite (SQLite3), snowflake (snowflake.com) clickhouse (ClickHouse)
driver = "mysql"
## Data source name
## The format of the data source name is different for each database driver.
## See the plugin readme for details.
data_source_name = "username:password@tcp(host:port)/dbname"
## Timestamp column name
timestamp_column = "timestamp"
## Table creation template
## Available template variables:
## {TABLE} - table name as a quoted identifier
## {TABLELITERAL} - table name as a quoted string literal
## {COLUMNS} - column definitions (list of quoted identifiers and types)
table_template = "CREATE TABLE {TABLE}({COLUMNS})"
## SQL INSERT statement with placeholders. Telegraf will substitute values at runtime.
## table_template = "INSERT INTO metrics (timestamp, name, value, tags) VALUES (?, ?, ?, ?)"
## Table existence check template
## Available template variables:
## {TABLE} - tablename as a quoted identifier
table_exists_template = "SELECT 1 FROM {TABLE} LIMIT 1"
## Initialization SQL
init_sql = "SET sql_mode='ANSI_QUOTES';"
## Maximum amount of time a connection may be idle. "0s" means connections are
## never closed due to idle time.
connection_max_idle_time = "0s"
## Maximum amount of time a connection may be reused. "0s" means connections
## are never closed due to age.
connection_max_lifetime = "0s"
## Maximum number of connections in the idle connection pool. 0 means unlimited.
connection_max_idle = 2
## Maximum number of open connections to the database. 0 means unlimited.
connection_max_open = 0
## NOTE: Due to the way TOML is parsed, tables must be at the END of the
## plugin definition, otherwise additional config options are read as part of the
## table
## Metric type to SQL type conversion
## The values on the left are the data types Telegraf has and the values on
## the right are the data types Telegraf will use when sending to a database.
##
## The database values used must be data types the destination database
## understands. It is up to the user to ensure that the selected data type is
## available in the database they are using. Refer to your database
## documentation for what data types are available and supported.
#[outputs.sql.convert]
# integer = "INT"
# real = "DOUBLE"
# text = "TEXT"
# timestamp = "TIMESTAMP"
# defaultvalue = "TEXT"
# unsigned = "UNSIGNED"
# bool = "BOOL"
# ## This setting controls the behavior of the unsigned value. By default the
# ## setting will take the integer value and append the unsigned value to it. The other
# ## option is "literal", which will use the actual value the user provides to
# ## the unsigned option. This is useful for a database like ClickHouse where
# ## the unsigned value should use a value like "uint64".
# # conversion_style = "unsigned_suffix"
输入和输出集成示例
Kubernetes
-
动态资源分配监控:通过利用 Kubernetes 插件,团队可以为各种 Pod 和容器的资源使用模式设置警报。这种主动监控方法可以根据特定阈值自动扩展资源,从而帮助优化性能,同时最大限度地减少高峰使用期间的成本。
-
多租户资源隔离分析:使用 Kubernetes 的组织可以利用此插件来跟踪每个命名空间的资源消耗。在多租户场景中,了解不同团队的资源分配和使用情况对于确保公平访问和性能保证至关重要,从而带来更好的资源管理策略。
-
实时健康仪表板:将 Kubernetes 插件捕获的数据集成到 Grafana 等可视化工具中,以创建实时仪表板。这些仪表板提供对 Kubernetes 环境整体健康状况和性能的深入了解,使团队能够快速识别和纠正跨集群、Pod 和容器的问题。
-
自动化事件响应工作流:通过将 Kubernetes 插件与警报管理系统相结合,团队可以基于实时指标自动化事件响应程序。如果 Pod 的资源使用量超过预定义限制,自动化工作流可以触发补救措施,例如重启 Pod 或重新分配资源,所有这些都有助于提高系统弹性。
MariaDB
-
商业智能集成:将应用程序性能指标直接存储到 MariaDB 中,并将其连接到 Metabase 或 Apache Superset 等 BI 工具。此设置允许将运营数据与业务 KPI 混合到统一的仪表板中,从而提高跨部门的可见性。
-
基于历史指标的合规性报告:使用此插件将指标记录到 MariaDB 中,用于审计和合规性用例。关系模型支持使用带时间戳的条目精确查询过去的性能指标,从而支持监管文档。
-
基于 SQL 逻辑的自定义警报:将指标插入到 MariaDB 中,并使用自定义 SQL 查询来定义警报阈值或条件。与 cron 作业或计划脚本结合使用,可以实现传统指标平台无法实现的高级警报工作流。
-
IoT 传感器指标存储:通过 Telegraf 从 IoT 设备收集传感器数据,并使用规范化模式将其存储在 MariaDB 中。这种方法经济高效,并且可以很好地与现有的基于 SQL 的系统集成,用于实时或历史分析。
反馈
感谢您成为我们社区的一份子!如果您有任何一般性反馈或在这些页面上发现任何错误,我们欢迎并鼓励您提出意见。请在 InfluxDB 社区 Slack 中提交您的反馈。