在 Icinga2 检查磁盘中排除分区 [check_disk] 不起作用

在 Icinga2 检查磁盘中排除分区 [check_disk] 不起作用

我正在尝试从check_disk命令中排除一个分区冰加2并且它没有按预期工作。

问题是由于/snap/core被识别为这样的分区。 在此处输入图片描述

因此,我打开了hosts文件并添加disk_partitions_excluded文档

/* Define disks and attributes for service apply rules in `services.conf`. */
  vars.disks["disk"] = {
    /* No parameters. */
    disk_partitions_excluded  = "/snap/core/*"
  }
  vars.disks["disk /"] = {
    disk_partitions = "/"
  }

但即使这样做并重新启动后,Icinga2错误systemcl restart icinga2仍然没有消失。

答案1

我可以通过检查系统上的现有分区来修复它

root@icinga2:/etc/icinga2/conf.d# sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME   FSTYPE    SIZE MOUNTPOINT      LABEL
loop0  squashfs   91M /snap/core/6350
loop1  squashfs 89.4M /snap/core/6818
sda               40G
├─sda1             1M
└─sda2 ext4       40G /
sr0             1024M

然后在排除参数中明确指定它们

/* Define disks and attributes for service apply rules in `services.conf`. */
  vars.disks["disk"] = {
    /* No parameters. */
    disk_partitions_excluded = ["/snap/core/6350", "/snap/core/6818"]
  }
  vars.disks["disk /"] = {
    disk_partitions = "/"
  }

我不确定为什么通配符不起作用。

答案2

一种解决方案可能是使用disk_ignore_ereg_path

/* Define disks and attributes for service apply rules in `services.conf`. */
  vars.disks["disk"] = {
    disk_all = true
    disk_ignore_ereg_path = ["/snap/core/.*"]
  }
  vars.disks["disk /"] = {
    disk_partitions = "/"
  }

然而,disk_all必须将其设置为 true 才能监控所有其他磁盘。

相关内容