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

Обзор

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

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

Элементы данных

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

  • внутренний элемент данных zabbix[stats,<ip>,<port>] — для прямых удалённых запросов к серверу/прокси Zabbix. <ip> и <port> используются для идентификации целевого экземпляра.
  • элемент данных агента zabbix.stats[<ip>,<port>] — для удалённых запросов к серверу/прокси Zabbix через агент. <ip> и <port> используются для идентификации целевого экземпляра.

См. также: Внутренние элементы данных, Элементы данных агента Zabbix

Следующая диаграмма иллюстрирует использование того или иного элемента данных в зависимости от контекста.

  • - Сервер → внешний экземпляр Zabbix (zabbix[stats,<ip>,<port>])
  • - Сервер → прокси → внешний экземпляр Zabbix (zabbix[stats,<ip>,<port>])
  • - Сервер → агент → внешний экземпляр Zabbix (zabbix.stats[<ip>,<port>])
  • - Сервер → прокси → агент → внешний экземпляр Zabbix (zabbix.stats[<ip>,<port>])

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

Доступные метрики

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

  • zabbix[boottime]
  • zabbix[hosts]
  • zabbix[items]
  • zabbix[items_unsupported]
  • zabbix[preprocessing] (только сервер)
  • zabbix[preprocessing_queue] (только сервер)
  • zabbix[process,<type>,<mode>,<state>] (только статистика на основе типа процесса)
  • zabbix[rcache,<cache>,<mode>]
  • zabbix[requiredperformance]
  • zabbix[triggers] (только сервер)
  • zabbix[uptime]
  • zabbix[vcache,buffer,<mode>] (только сервер)
  • zabbix[vcache,cache,<parameter>]
  • zabbix[version]
  • zabbix[vmware,buffer,<mode>]
  • zabbix[wcache,<cache>,<mode>] (тип кэша 'trends' — только сервер)

Шаблоны

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

  • Состояние удаленного сервера Zabbix
  • Состояние удаленного прокси Zabbix

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

Процесс trapper

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

{
  "response": "success",
  "data": {
    "boottime": N,
    "uptime": N,
    "hosts": N,
    "items": N,
    "items_unsupported": N,
    "preprocessing": {
        "queued": {
          "count": N,
          "size": N
        },
        "direct": {
          "count": N,
          "size": N
        },
        "queue": 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:

  • внутренний элемент данных zabbix[stats,<ip>,<port>,queue,<from>,<to>] — для прямых запросов внутренней очереди к удалённому серверу/прокси Zabbix
  • элемент данных агента zabbix.stats[<ip>,<port>,queue,<from>,<to>] — для запросов внутренней очереди к удалённому серверу/прокси Zabbix через агент

См. также: Внутренние элементы данных, Элементы данных агента Zabbix