LINUX.ORG.RU
ФорумAdmin

icinga2, делать проверку iostat для всех дисков в системе

 ,


0

1

Всем привет!

Вот у меня есть хост icinga, есть подключенные к нему клиенты.

Сделал services для iostat, подсмотрел конфиг для commands в статье, и поправил ctps/wtps и пр. Выглядит он следующим образом:

object CheckCommand "iostat" {
  import "plugin-check-command"
  command = [ PluginDir + "/check_iostat" ]

arguments = {
		"-d" = {
			value = "$iostat_disk$"
			description = "Device to check without path. e.g. sda"
		}
		"-w" = {
			value ="$iostat_wtps$,$iostat_wread$,$iostat_wwrite$"
			description = "warning threshold for tps, KB_read/s and KB_written/s"
		}
		"-c" = {
			value ="$iostat_ctps$,$iostat_cread$,$iostat_cwrite$"
			description = "warning threshold for tps, KB_read/s and KB_written/s"
		}
	}
	vars.iostat_disk = "sda"
	vars.iostat_wtps = 100
	vars.iostat_wread = 80
	vars.iostat_wwrite = 80
	vars.iostat_ctps = 200
	vars.iostat_cread = 150
	vars.iostat_cwrite = 150	
}

Только теперь меня интересует, как передать в выполнение команды несколько дисков? у меня есть sdb, sdd, nvme0n1, и md хочу видеть.

Пробовал указать массивом, типа такого:

vars.iostat_disk = { "sda", "sdb", "md0" }
Но не помогло. Неужели на каждый диск нужно будет писать свою commands?

Команда одна, в сервис передавай разные параметры и команда будет вызываться с этими параметрами

futurama ★★★★★
()

Пример

object Host "server1" {
  import "generic-host"
  ...
    vars.disks_by_ssh["disk /"] = {
       disk_partitions = "/"
       disk_warning = "10%"
       disk_critical = "5%"
   }
   vars.disks_by_ssh["disk /home"] = {
       disk_partitions = "/home"
       disk_warning = "7%"
       disk_critical = "3%"
   }
   vars.disks_by_ssh["disk /usr"] = {
       disk_partitions = "/usr"
       disk_warning = "5%"
       disk_critical = "2%"
   }
   vars.disks_by_ssh["disk /tmp"] = {
       disk_partitions = "/tmp"
       disk_warning = "3%"
       disk_critical = "1%"
   }
...
}

apply Service for (disk_by_ssh => config in host.vars.disks_by_ssh) {
  import "generic-service"

  check_command = "by_ssh"

  vars.by_ssh_command = "/usr/lib/nagios/plugins/check_disk -w $disk_warning$ -c $disk_critical$ $disk_partitions$"
  vars.by_ssh_logname = "root"
  vars.by_ssh_timeout = "20"

  vars += config

  assign where host.address && match("*_by_ssh", host.vars.os)
}

futurama ★★★★★
()
Ответ на: комментарий от futurama

Благодарю, кажется, получилось то, что нужно.

Aborigen1020
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.