跳转至

磁盘


磁盘采集器用于主机磁盘信息采集,如磁盘存储空间、Inode 使用情况等。

配置

成功安装 DataKit 并启动后,会默认开启 Disk 采集器,无需手动开启。

进入 DataKit 安装目录下的 conf.d/host 目录,复制 disk.conf.sample 并命名为 disk.conf。示例如下:

[[inputs.disk]]
  ##(optional) collect interval, default is 10 seconds
  interval = '10s'

  ## Physical devices only (e.g. hard disks, cd-rom drives, USB keys)
  ## and ignore all others (e.g. memory partitions such as /dev/shm)
  only_physical_device = false

  ## merge disks that with the same device name(default true)
  # merge_on_device = true

  ## We collect all devices prefixed with dev by default,If you want to collect additional devices, it's in extra_device add
  # extra_device = ["/nfsdata"]

  ## exclude some with dev prefix (We collect all devices prefixed with dev by default)
  # exclude_device = ["/dev/loop0","/dev/loop1"]

  #[inputs.disk.tags]
  #  some_tag = "some_value"
  #  more_tag = "some_other_value"

配置好后,重启 DataKit 即可。

可通过 ConfigMap 方式注入采集器配置配置 ENV_DATAKIT_INPUTS 开启采集器。

也支持以环境变量的方式修改配置参数(需要在 ENV_DEFAULT_ENABLED_INPUTS 中加为默认采集器):

  • ENV_INPUT_DISK_INTERVAL

    采集器重复间隔时长

    字段类型: Duration

    采集器配置字段: interval

    默认值: 10s

  • ENV_INPUT_DISK_EXTRA_DEVICE

    额外的设备前缀。(默认收集以 dev 为前缀的所有设备)

    字段类型: List

    采集器配置字段: extra_device

    示例: /nfsdata,other_data

  • ENV_INPUT_DISK_EXCLUDE_DEVICE

    排除的设备前缀。(默认收集以 dev 为前缀的所有设备)

    字段类型: List

    采集器配置字段: exclude_device

    示例: /dev/loop0,/dev/loop1

  • ENV_INPUT_DISK_ONLY_PHYSICAL_DEVICE

    忽略非物理磁盘(如网盘、NFS 等,只采集本机硬盘/CD ROM/USB 磁盘等)

    字段类型: Boolean

    采集器配置字段: only_physical_device

    默认值: false

  • ENV_INPUT_DISK_ENABLE_LVM_MAPPER_PATH

    查看设备映射器对应的软链接(如 /dev/dm-0 -> /dev/mapper/vg/lv

    字段类型: Boolean

    采集器配置字段: enable_lvm_mapper_path

    默认值: false

  • ENV_INPUT_DISK_MERGE_ON_DEVICE

    合并有相同 device 的磁盘

    字段类型: Boolean

    采集器配置字段: merge_on_device

    默认值: true

  • ENV_INPUT_DISK_TAGS

    自定义标签。如果配置文件有同名标签,将会覆盖它

    字段类型: Map

    采集器配置字段: tags

    示例: tag1=value1,tag2=value2

指标

以下所有数据采集,默认会追加名为 host 的全局 tag(tag 值为 DataKit 所在主机名),也可以在配置中通过 [inputs.disk.tags] 指定其它标签:

 [inputs.disk.tags]
  # some_tag = "some_value"
  # more_tag = "some_other_value"
  # ...
磁盘指标来源

在 Linux 中,指标是通过获取 /proc/self/mountinfo 其中的挂载信息,然后再逐个获取对应挂载点的磁盘指标(statfs())。对 Windows 而言,则通过一系列 Windows API,诸如 GetLogicalDriveStringsW() 系统调用获取挂载点,然后再通过 GetDiskFreeSpaceExW() 获取磁盘用量信息。

Version-1.66.0 版本中,优化了磁盘信息采集,但是相同设备的挂载点仍然会合并成一个,且只取第一个出现的挂载点为准。如果要采集所有的挂载点,需关闭特定的 flag(merge_on_device/ENV_INPUT_DISK_MERGE_ON_DEVICE),关闭该合并功能后,磁盘指标集中可能会额外多出非常多的时间线。

disk

  • 标签
Tag Description
device Disk device name. (on /dev/mapper return symbolic link, like readlink /dev/mapper/* result)
disk_name Disk name.
fstype File system name.
host System hostname.
mount_point Mount point.
  • 指标列表
Metric Description Type Unit
free Free disk size in bytes. int B
inodes_free Free Inode(DEPRECATED: use inodes_free_mb instead). int count
inodes_free_mb Free Inode(need to multiply by 10^6). int count
inodes_total Total Inode(DEPRECATED: use inodes_total_mb instead). int count
inodes_total_mb Total Inode(need to multiply by 10^6). int count
inodes_used Used Inode(DEPRECATED: use inodes_used_mb instead). int count
inodes_used_mb Used Inode(need to multiply by 10^6). int count
inodes_used_percent Inode used percent float percent
total Total disk size in bytes. int B
used Used disk size in bytes. int B
used_percent Used disk size in percent. float percent

文档评价

文档内容是否对您有帮助? ×