文档文档

故障排除高磁盘使用率

TICK stack 组件不耗尽磁盘空间非常重要。磁盘使用率达到 100% 的机器将无法正常运行。

监控仪表盘中,高磁盘使用率将出现在 磁盘利用率 % 指标中,并且看起来类似于以下内容

High disk usage

潜在原因

旧数据未被降采样

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

日志数据未被删除

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

解决方案

删除不必要的数据

解决高磁盘利用率的最简单方法是删除旧的或不必要的数据。这可以通过强制方法(删除/丢弃数据)或更优雅的方式来完成,即调整保留策略的持续时间并调整连续查询中的降采样率。

日志数据保留策略

日志数据应仅存储在有限的 保留策略中。保留策略的持续时间取决于您希望将日志数据保留多长时间。

您是否在保留期结束时使用连续查询来降采样日志数据取决于您,但旧的日志数据应被降采样或完全删除。

扩展机器的磁盘容量

如果删除或降采样数据不是一种选择,您可以始终扩展机器的磁盘容量。如何完成此操作取决于您的硬件或虚拟化配置,本文档未涵盖。

建议

设置磁盘使用率警报

为了抢先解决磁盘利用率问题,请创建一个任务,在该任务中,如果磁盘使用率超过某些阈值,则会向您发出警报。以下 示例 TICKscript 设置了警告和严重磁盘使用率阈值,并在这些阈值被超过时向 Slack 发送消息。

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

磁盘使用率警报的示例 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 Core 和 Enterprise

快速启动。更快扩展。

获取更新

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

有关更多信息,请查看