Documentation

排查高磁盘使用率

确保您的TICK堆栈组件不会耗尽磁盘空间是非常重要的。 磁盘使用率为100%的机器将无法正常工作。

在一个 监控仪表盘 中,高磁盘使用率将在 磁盘利用率 % 指标中出现,类似于以下内容:

High disk usage

潜在原因

旧数据未被降采样

InfluxDB 使用保留策略和连续查询来降采样旧数据并节省磁盘空间。 如果使用无限保留策略或持续时间较长的策略,高分辨率 数据将占用越来越多的磁盘空间。

日志数据未被丢弃

日志数据在您的监控解决方案中非常有用,但也可能比其他类型的时间序列数据占用更多的磁盘空间。许多情况下,日志数据存储在无限保留策略中(默认保留策略持续时间),这意味着它永远不会被删除。这将不可避免地导致高磁盘使用率。

解决方案

删除不必要的数据

解决高磁盘利用率的最简单方法是删除旧的或不必要的数据。通过暴力手段(删除/丢弃数据)或以更优雅的方式,通过调整保留策略的持续时间和调整连续查询中的降采样率来实现。

日志数据保留策略

日志数据只能存储在有限的 保留策略中。 您的保留策略的持续时间由您希望保留日志数据的时间决定。

是否使用一个 连续查询 在保留期结束时对日志数据进行降采样取决于您,但旧日志数据应该被降采样或彻底删除。

扩展机器的磁盘容量

如果移除或降采样数据不是一个选项,您总是可以扩展机器的 磁盘容量。这是如何实现的取决于您的硬件或虚拟化配置 并且在本文件中未涵盖。

推荐

设置磁盘使用量警报

为了预防磁盘利用率问题,创建一个任务来提醒您如果磁盘使用量超过某些阈值。下面的示例 TICKscript below 设置了警告和严重的磁盘使用阈值,并在这些阈值被超越时向 Slack 发送消息。

有关Kapacitor任务和警报的信息,请参阅Kapacitor alerts文档。

磁盘使用率的 TICKscript 警报示例

// Disk usage alerts
// Alert when disks are this % full
var warn_threshold = 80
var crit_threshold = 90

// Use a larger period here, as the telegraf data can be a little late
// if the server is under load.
var period = 10m

// How often to query for the period.
var every = 20m

var data = batch
  |query('''
    SELECT last(used_percent) FROM "telegraf"."default".disk
    WHERE ("path" = '/influxdb/conf' or "path" = '/')
    ''')
    .period(period)
    .every(every)
    .groupBy('host', 'path')

data
  |alert()
    .id('Alert: Disk Usage, Host: {{ index .Tags "host" }}, Path: {{ index .Tags "path" }}')
    .warn(lambda: "last" > warn_threshold)
    .message('{{ .ID }}, Used Percent: {{ index .Fields "last" | printf "%0.0f" }}%')
    .details('')
    .stateChangesOnly()
    .slack()

data
  |alert()
    .id('Alert: Disk Usage, Host: {{ index .Tags "host" }}, Path: {{ index .Tags "path" }}')
    .crit(lambda: "last" > crit_threshold)
    .message('{{ .ID }}, Used Percent: {{ index .Fields "last" | printf "%0.0f" }}%')
    .details('')
    .slack()


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 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

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