Создание правила icinga2 Apply для нескольких переменных - PullRequest
1 голос
/ 26 апреля 2019

Наша команда только начинает работу с icinga2.У нас есть собственный доморощенный инструмент, который проверяет множество разных вещей в зависимости от аргумента, поэтому у нас есть ряд CheckCommand объектов, которые различаются только одним аргументом.Эти проверки необходимо применять к нескольким экземплярам базы данных на нескольких хостах.Создание отдельных CheckCommand s работает нормально, например так:

object Host "some.oracle.host" {
  import "oracle-host"
  address = "172.1.1.1"

  vars.db_instances = {
    "EnvName" = {
      "username" = "username"
      "password" =  "EQo1OF95G8Gs"
      "dbname" =  "FOO"
      "connstr" = "jdbc:oracle:thin:@(FOO)"
    }
}

apply Service for (env => instance in host.vars.db_instances) {
  import "oracle-db-svc"
  check_command = "check_oracle_foocheck"
  display_name = env + "-foocheck"
  vars.svc_dbname = instance["dbname"]
}

apply Service for (env => instance in host.vars.db_instances) {
  import "oracle-db-svc"
  check_command = "check_oracle_barcheck"
  display_name = env + "-barcheck"
  vars.svc_dbname = instance["dbname"]
}

Здесь мы создаем новые сервисы "check_oracle_foocheck" и "check_oracle_barcheck" для каждого экземпляра каждого хоста, который имеет переменную db_instances.Это работает хорошо, но проблема в том, что у нас есть пара десятков таких проверок для реализации.Я ищу что-то более простое, что-то вроде:

const OracleChecks = ["foocheck", "barcheck"]

apply Service for (check in OracleChecks) {
  import "oracle-db-svc"  
  for(env => instance in host.vars.db_instances){
    check_command = "$check$"
    display_name = env + "-$check$"
  }
}

Я предполагаю, что это не сработает, потому что правило применения на самом деле не возвращается, и, возможно, вы не можете перебрать хосты в заявке на,Здесь я просто пытаюсь передать цель.

Мне нужен подход, чтобы сделать своего рода матричное присвоение набора сервисов наборам экземпляров, которые живут на нескольких хостах.Любые советы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...