文档文档

管理 InfluxDB 日志

了解如何配置、管理和处理您的 InfluxDB 日志

配置您的 InfluxDB 日志位置

默认情况下,InfluxDB 将所有日志输出到 stdout。要查看 InfluxDB 日志,请查看 influxd 进程的输出。

将日志写入文件

要将 InfluxDB 日志写入文件,请在启动 InfluxDB 服务 (influxd) 时将 stdout 重定向到文件。

influxd 1> /path/to/influxdb.log

当记录到文件时,InfluxDB 使用 logfmt 格式。

以服务形式运行 InfluxDB 时的日志

如果您使用服务管理器运行 InfluxDB,则服务管理器将确定日志的位置。

大多数 Linux 系统将日志定向到 systemd 日志。要访问这些日志,请使用以下命令

sudo journalctl -u influxdb.service

有关更多信息,请参阅 journald.conf 文档

当 InfluxDB 作为服务运行时,默认情况下会丢弃 stdout (发送到 /dev/null)。要将日志写入文件

  1. 在文本编辑器中打开 InfluxDB 启动脚本 (/etc/default/influxdb)。

  2. STDOUT 环境变量设置为您要存储 InfluxDB 日志的路径。例如

    STDOUT=/var/log/influxdb/influxd.log
    
  3. 保存对启动脚本的更改。

  4. 重启 InfluxDB 服务以应用更改。

    service influxdb restart
    

配置您的日志级别

使用 log-level InfluxDB 配置选项 来指定 InfluxDB 服务输出的日志级别。InfluxDB 支持以下日志级别

  • debug: 输出 debug、info 和 error 日志级别的日志。
  • info: (默认) 输出 info 和 error 日志级别的日志。
  • error: 仅输出 error 日志级别的日志。
influxd --log-level=info
export INFLUXD_LOG_LEVEL=info
log-level: info
log-level = "info"
{
  "log-level": "info"
}

有关配置 InfluxDB 的信息,请参阅 InfluxDB 配置选项

启用 Flux 查询日志

使用 flux-log-enabled 配置选项 启用 Flux 查询日志记录。InfluxDB 将 Flux 查询日志与所有其他 InfluxDB 日志一起输出到 stdout

influxd --flux-log-enabled
export INFLUXD_FLUX_LOG_ENABLED=true
flux-log-enabled: true
flux-log-enabled = true
{
  "flux-log-enabled": true
}

有关配置 InfluxDB 的信息,请参阅 InfluxDB 配置选项

使用外部工具管理和处理日志

使用以下常用工具来管理和处理 InfluxDB 日志

logrotate

logrotate 简化了日志文件的管理,并提供日志文件的自动轮换压缩、删除和邮件发送。Logrotate 可以设置为每小时、每天、每周、每月或当日志文件达到特定大小时处理日志文件。

hutils

hutils 是用于处理具有 logfmt 编码的日志的命令行实用程序集合,包括

  • lcut: 基于指定的字段名称从 logfmt 跟踪中提取值。
  • lfmt: 重新格式化并突出显示 logfmt 行的关键部分。
  • ltap: 以一致的方式从日志提供程序访问消息,以便其他操作 logfmt 跟踪的实用程序可以轻松解析。
  • lviz: 通过构建数据集的树来可视化 logfmt 输出,将常见的键值对集合组合到共享的父节点中。

lnav (Log File Navigator) 是一款高级日志文件查看器,可用于在终端中监视和分析日志文件。lnav 查看器提供单个日志视图、自动日志格式检测、筛选、时间线视图、美化打印视图以及使用 SQL 查询日志。

日志格式

InfluxDB 根据日志输出位置以两种格式之一输出日志。

控制台/TTY

当记录到终端或其他 TTY 设备时,InfluxDB 使用控制台友好的格式。

控制台/TTY 格式示例
2022-09-29T21:58:29.936355Z	info	Welcome to InfluxDB	{"log_id": "0dEoz3C0000", "version": "dev", "commit": "663d43d210", "build_date": "2022-09-29T21:58:29Z", "log_level": "info"}
2022-09-29T21:58:29.977671Z	info	Resources opened	{"log_id": "0dEoz3C0000", "service": "bolt", "path": "/Users/exampleuser/.influxdbv2/influxd.bolt"}
2022-09-29T21:58:29.977891Z	info	Resources opened	{"log_id": "0dEoz3C0000", "service": "sqlite", "path": "/Users/exampleuser/.influxdbv2/influxd.sqlite"}
2022-09-29T21:58:30.059709Z	info	Checking InfluxDB metadata for prior version.	{"log_id": "0dEoz3C0000", "bolt_path": "/Users/exampleuser/.influxdbv2/influxd.bolt"}

logfmt

当记录到文件时,InfluxDB 使用 logfmt,这是一种机器可读的结构化日志格式,可更轻松地与 SplunkPapertrailElasticsearch 和其他第三方工具集成。

logfmt 格式示例
ts=2022-09-29T16:54:16.021427Z lvl=info msg="Welcome to InfluxDB" log_id=0dEYZvqG000 version=dev commit=663d43d210 build_date=2022-09-29T16:54:15Z log_level=info
ts=2022-09-29T16:54:16.062239Z lvl=info msg="Resources opened" log_id=0dEYZvqG000 service=bolt path=/Users/exampleuser/.influxdbv2/influxd.bolt
ts=2022-09-29T16:54:16.062457Z lvl=info msg="Resources opened" log_id=0dEYZvqG000 service=sqlite path=/Users/exampleuser/.influxdbv2/influxd.sqlite
ts=2022-09-29T16:54:16.144430Z lvl=info msg="Checking InfluxDB metadata for prior version." log_id=0dEYZvqG000 bolt_path=/Users/exampleuser/.influxdbv2/influxd.bolt

此页内容对您有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在这样使用它,而无需更改任何代码。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 以 Core 的基础为构建,增加了高可用性、只读副本、增强的安全性以及数据压缩功能,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看