Documentation

管理 InfluxDB 日志

学习如何配置、管理和处理您的 InfluxDB 日志:

配置您的 InfluxDB 日志位置

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

将日志写入文件

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

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支持以下日志级别:

  • 调试: 输出包含调试、信息和错误日志级别的日志。
  • 信息: (默认) 以信息和错误日志级别输出日志。
  • 错误: 仅输出错误日志级别的日志。
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查询日志输出到stdout以及所有其他InfluxDB日志。

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 可以设置为每小时、每天、每周、每月处理日志文件,或当日志文件达到一定大小时处理。

实用工具

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"}

日志格式

当记录到文件时,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 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: