Удаленный мониторинг статистики

Некоторые внутренние метрики Сервера и Прокси можно сделать доступными удаленно для другого экземпляра Подсистемы или сторонних утилит. Может быть полезно, чтобы поставщики поддержки/сервисов имели возможность удаленно мониторить Сервер/Прокси своих клиентов, или в организациях, где Подсистема не является основным инструментом мониторинга, чтобы внутренние метрики Подсистемы могли контролироваться сторонней системой при использовании зонтичного мониторинга.

Внутренняя статистика Подсистемы открыта для настраиваемого списка адресов, перечисленных в новом параметре StatsAllowedIP Сервера/Прокси. Запросы будут приниматься только с этих адресов.

Для настройки запроса внутренней статистики с другого экземпляра Подсистемы можно использовать два элемента данных:

  • Внутренний элемент данных zabbix[stats,<ip>,<порт>] – для прямых удаленных запросов к Серверу/Прокси. и <порт> используются для идентификации необходимого целевого экземпляра.
  • Элемент данных Агента zabbix.stats[<ip>,<порт>] для удаленных запросов к Серверу/Прокси через Агента. и <порт> используются для идентификации необходимого целевого экземпляра.

Рисунок 2 иллюстрирует использование обоих элементов данных в зависимости от контекста.

Рисунок 2 — Использование элементов данных

  • Сервер → внешний экземпляр zabbix[stats,<ip>,<порт>] - Использование элементов данных;
  • Сервер → Прокси → внешний экземпляр zabbix[stats,<ip>,<порт>] - Использование элементов данных;
  • Сервер → Агент → внешний экземпляр zabbix.stats[<ip>,<порт>] - Использование элементов данных;
  • Сервер → Прокси → Агент → внешний экземпляр zabbix.stats[<ip>,<порт>] - Рисунок 478.

Чтобы убедиться, что целевой экземпляр разрешает запросы к себе со стороны внешнего экземпляра, указывают адрес внешнего экземпляра в параметре StatsAllowedIP на целевом экземпляре.

Используя предоставляемые метрики, элементы данных собирают статистику одним запросом и возвращают JSON, который является основой зависимых элементов данных и из которого они получают данные. Любым из двух элементов данных возвращаются следующие внутренние метрики:

  • zabbix[boottime];
  • zabbix[hosts];
  • zabbix[items];
  • zabbix[items_unsupported];
  • zabbix[preprocessing_queue] (только Сервер);
  • zabbix[process,<тип>,<режим>,<состояние>] (статистика только на основе типов процессов);
  • zabbix[rcache,<кэш>,<режим>];
  • zabbix[requiredperformance];
  • zabbix[triggers] (только Сервер);
  • zabbix[uptime];
  • zabbix[vcache,buffer,<режим>] (только Сервер);
  • zabbix[vcache,cache,<параметр>];
  • zabbix[version];
  • zabbix[vmware,buffer,<режим>];
  • zabbix[wcache,<кэш>,<режим>] (тип кэша trends только Сервер).

Доступные шаблоны для удаленного мониторинга внутренних метрик Сервера или Прокси с внешнего экземпляра:

  • Remote Zabbix server;
  • Remote Zabbix proxy.

Следует обратить внимание, что при использовании шаблонов удаленного мониторинга нескольких внешних экземпляров для мониторинга каждого внешнего экземпляра потребуется отдельный узел сети.

Получение запросов внутренних метрик с внешнего экземпляра Подсистемы обрабатывается процессом траппер, который проверяет запрос, собирает метрики, создает буфер данных JSON и отправляет назад подготовленный JSON, например, с Сервера:

  {
  "response": success,
  "data":
  {
  "boottime": N,
  "uptime": N,
  "hosts": N,
  "items": N,
  "items_unsupported": N,
  "preprocessing_queue": N,
  "process": {
  "alert manager": {
  "busy": {
  "avg": N,
  "max": N,
  "min": N
  },
  "idle": {
  "avg": N,
  "max": N,
  "min": N
  },
  "count": N
  },
  ...
  },
  "queue": N,
  "rcache": {
  "total": N,
  "free": N,
  "pfree": N,
  "used": N,
  "pused": N
  },
  "requiredperformance": N,
  "triggers": N,
  "uptime": N,
  "vcache": {
  "buffer": {
  "total": N,
  "free": N,
  "pfree": N,
  "used": N,
  "pused": N
  },
  "cache": {
  "requests": N,
  "hits": N,
  "misses": N,
  "mode": N
  }
  },
  "vmware": {
  "total": N,
  "free": N,
  "pfree": N,
  "used": N,
  "pused": N
  },
  "version": "N",
  "wcache": {
  "values": {
  "all": N,
  "float": N,
  "uint": N,
  "str": N,
  log: N,
  "text": N,
  "not supported": N
  },
  "history": {
  "pfree": N,
  "free": N,
  "total": N,
  "used": N,
  "pused": N
  },
  "index": {
  "pfree": N,
  "free": N,
  "total": N,
  "used": N,
  "pused": N
  },
  "trend": {
  "pfree": N,
  "free": N,
  "total": N,
  "used": N,
  "pused": N
  }
  }
  }
  }

Также имеются два других элемента данных, которые позволяют получить внутреннюю статистику очереди удаленным запросом с другого экземпляра Подсистемы:

  • Внутренний элемент данных zabbix[stats,<ip>,<порт>,queue,<от>,<до>] – для прямых запросов внутренней очереди с удаленного Сервера/Прокси;
  • Элемент данных Агента zabbix.stats[<ip>,<порт>,queue,<от>,<до>] – для запросов внутренней очереди удаленного Сервера/Прокси через Агента.