Avanpost FAM/MFA+ : 4.5.3. Настройка метрик

Состояние системы

Система публикует показатели работоспособности Системы и готовности Системы к приёму запросов на отдельном URI /health

Система предоставляет следующие показатели:

  1. Работоспособность системы (liveness probe).
  2. Готовность системы (readiness probe).

Настройка интерфейса показателей состояния Системы

Для настройки параметров публикации интерфейса публикации метрик настройте параметры секции server в конфигурационном файле config.json Системы. Данные показатели размещаются на том же интерфейсе, на котором публикуется основной интерфейс аутентификации Системы.

После внесения изменений в параметры сессии в config.toml/config.json перезапустите службу Сервера Системы

Проверка доступности показателей состояния Системы

Любым подходящим инструментом отправьте HTTP-запрос на URI:

Метрики системы

Система публикует мгновенные показатели работы Системы на отдельном URI /metrics. Этот URI доступен по отдельному сетевому порту и может быть размещён на отдельном сетевом интерфейсе и на отдельном хосте, изолированном от остальных веб-интерфейсов.

Примечание

В роли потребителя метрик в инфраструктуре может быть развёрнута система Prometheus, а для визуализации показателей - сформирован дашборд в Grafana

Система предоставляет следующие показатели:

  1. Число фактов аутентификации с использованием определённого фактора аутентификации.
  2. Число фактов аутентификации в определённые приложения.
  3. Число активных сессий.
  4. Число создаваемых в момент времени новых сессий.
  5. Число завершаемых в момент времени сессий.
  6. Число создаваемых новых УЗ пользователей.
  7. Число блокируемых УЗ пользователей.
  8. Набор показателей производительности HTTP-запросов.
  9. Стандартный набор метрик языка Golang.

Настройка интерфейса публикации метрик Prometheus

Для настройки параметров публикации интерфейса публикации метрик настройте параметры секции metrics в конфигурационном файле config.json Системы.

ПараметрЗначение
hostIP-адрес, на котором предполагается открыть сетевой порт
portСетевой порт

Пример корректно настроенной секции metrics:

"metrics": {
	"host": "localhost",
	"port": 9089
},

После внесения изменений в параметры сессии в config.toml/config.json перезапустите службу Сервера Системы

Проверка доступности интерфейса публикации метрик

Любым подходящим инструментом отправьте HTTP-запрос на указанный в конфигурации host и port.

В ответ Система вернёт заголовок HTTP/1.1 200 OK и в ответе текстовый набор показателей следующего вида:

Пример

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 1.58e-05
go_gc_duration_seconds{quantile="0.25"} 3.45e-05
go_gc_duration_seconds{quantile="0.5"} 4.24e-05
go_gc_duration_seconds{quantile="0.75"} 4.73e-05
...

Подключение интерфейса публикации метрик к Prometheus

В конфигурационном файле /etc/prometheus/prometheus.yml в секцию scrape_configs добавьте задачу на сбор метрик с указанного хоста. 

Пример корректно настроенной секции scrape_configs в prometheus.yml:

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label job=<job_name> to any timeseries scraped from this config.
  - job_name: 'FAM'
    scrape_interval: 5s
    static_configs:
    - targets: ['localhost:9089']

Обсуждение