Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 23 Следующий »

Введение

FreeIPA Health Check – утилита для диагностики работоспособности сервера FreeIPA.
Её основное назначение – автоматическая проверка корректности настроек, безопасности, доступности репликации и работы сервисов FreeIPA.
Программа предназначена для администраторов, требующих быстрой диагностики и своевременного обнаружения неисправностей.

Цели использования:

  • Обеспечение устойчивости работы серверов FreeIPA.

  • Выявление потенциальных ошибок в настройке.

  • Контроль состояния репликации и конфигурации Kerberos.

  • Своевременное оповещение о сбоях и нарушениях в системе.

Описание стенда

Запуск утилиты производится на настроенном контроллере ЕПП FreeIPA. Порядок установки см. в статье:

Также утилита может проверять корректность работы реплик и доверительных отношений. Порядок установки см. в статьях:

Установка пакета

Пакет freeipa-healthcheck входит в репозитории Astra Linux. Установить необходимый пакет можно используя Графический менеджер пакетов synaptic, или из командной строки:

shell
sudo apt install freeipa-healthcheck

После установки будут созданы конфигурационный файл /etc/ipahealthcheck/ipahealthcheck.conf и службы ipa-healthcheck.service и ipa-healthcheck.timer в systemd.

Конфигурация и интеграция

Файл конфигурации разделён как минимум на два раздела:

  • Раздел [default]. В этом разделе задаются значения параметров, влияющих на работу инструмента проверки состояния.
  • Раздел [excludes]. Этот раздел используется для фильтрации или подавления определённых результатов по имени источника, имени проверки или конкретному ключу результата. Это особенно полезно для игнорирования известных незначительных проблем в окружении.

Параметры в разделе [default]

  • cert_expiration_days:
    Задает порог в днях до истечения срока действия сертификата, после которого начинает выдаваться предупреждение (например, если установить значение 7, то предупреждение появится за 7 дней до истечения). Значение по умолчанию: 28.
  • timeout:
    Устанавливает максимальное время (в секундах) для выполнения каждой проверки. Если проверка выполняется дольше указанного времени, она считается прерванной с ошибкой. Значение по умолчанию: 10.
  • output_type:
    Определяет формат вывода результатов. Допустимые значения:
    – json (по умолчанию, машиночитаемый формат),
    – human (удобочитаемый формат для пользователей),
    – prometheus (формат для экспозиции метрик Prometheus).
  • output_file:
    Указывает путь к файлу, в который будет записываться вывод вместо стандартного вывода (stdout).
  • indent:
    При использовании JSON-вывода задаёт уровень отступов для форматирования результата.
  • verbose:
    Активирует подробное логирование для получения дополнительной информации о работе инструмента. Эта опция полезна для диагностики, однако при автоматических запусках она может создавать избыточный вывод.
  • debug:
    Активирует режим отладки, при котором в выводе появляются дополнительные подробности, что полезно для диагностики проблем.
  • severity:
    Позволяет фильтровать вывод по уровню серьезности, чтобы отображались только результаты с заданными уровнями. Допустимые значения:
    – SUCCESS (успешно),
    – WARNING (предупреждение),
    – ERROR (ошибка),
    – CRITICAL (критическая ошибка).
  • source:
    Исполняет проверки только из указанного источника или пространства имен. (например, ipahealthcheck.ipa.certs).
  • check:
    Позволяет запустить конкретную проверку внутри выбранного источника этот параметр используется совместно с source. (например, IPADNSSystemRecordsCheck).

Параметры в разделе [excludes]

  • source:
    Позволяет подавлять результаты, поступающие из определённого источника (например, ipahealthcheck.ipa.certs).

  • check:
    Позволяет подавлять конкретные имена проверок (например, IPADNSSystemRecordsCheck).

  • key:
    Позволяет подавлять результаты по конкретному ключу (обычно это уникальный идентификатор, например, ID запроса на сертификат).

Пример готовой конфигурации может выглядеть так:

/etc/ipahealthcheck/ipahealthcheck.conf
[default] 
cert_expiration_days = 7
timeout = 25
output_type = json
output_file = /var/log/ipa-health.log
indent = 2
verbose = True
severity = ERROR CRITICAL
debug = False

[excludes]
source = ipahealthcheck.ipa.certs
check = IPADNSSystemRecordsCheck

Также все параметры конфигурации поддерживаются в виде аргументов командой строки.

Аргументы командной строки

  • --list-sources:
    Выводит список доступных источников (sources) и проверок (checks), что помогает определить, какие группы тестов доступны в вашей установке.
  • --config=FILE:
    Задает файл конфигурации, который будет использоваться при запуске. Если указать пустую строку, то файл конфигурации не загружается. По умолчанию используется /etc/ipahealthcheck/ipahealthcheck.conf.
  • --source=SOURCE:
    Исполняет проверки только из указанного источника или пространства имен. (например, ipahealthcheck.ipa.certs).
  • --check=CHECK:
    Позволяет запустить конкретную проверку внутри выбранного источника этот параметр используется совместно с --source. (например, IPADNSSystemRecordsCheck).
  • --output-type=TYPE:
    Определяет формат вывода результатов. Допустимые значения:
    – json (по умолчанию, машиночитаемый формат),
    – human (удобочитаемый формат для пользователей),
    – prometheus (формат для экспозиции метрик Prometheus).
  • --failures-only:
    При активном использовании этого параметра в вывод будут включены только проверки, завершившиеся предупреждениями, ошибками или критическими сбоями (WARNING, ERROR, CRITICAL). По умолчанию включена.
  • --all:
    Выводит все результаты проверок, независимо от их уровня. Этот параметр отменяет действие --failures-only.
  • --severity=SEVERITY:
    Позволяет фильтровать вывод по уровню серьезности, чтобы отображались только результаты с заданными уровнями. Допустимые значения:
    – SUCCESS
    – WARNING
    – ERROR
    – CRITICAL
  • --verbose:
    Активирует подробное логирование для получения дополнительной информации о работе инструмента. Эта опция полезна для диагностики, однако при автоматических запусках она может создавать избыточный вывод.
  • --debug:
    Активирует режим отладки, при котором в выводе появляются дополнительные подробности, что полезно для диагностики проблем.
  • --output-file=FILENAME:
    Указывает путь к файлу, в который будет записываться вывод вместо стандартного вывода (stdout).
  • --input-file=FILENAME:
    Позволяет прочитать результаты предыдущего запуска (обычно в формате JSON) и отобразить их в другом формате или просто повторно показать сохранённые данные.
  • --indent=INDENT:
    При использовании JSON-вывода задаёт уровень отступов для форматирования результата.
  • --metric-prefix=PREFIX:
    При использовании формата вывода prometheus задает префикс, который будет добавляться к именам метрик.

Пример готовых команд может выглядеть так:

  • Выполнение конкретной проверки сертификатов с фильтрацией по уровню серьезности и показом только ошибок:
    shell
    sudo ipa-healthcheck --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL --failures-only --output-type=human
  • Запуск с использованием собственного файла конфигурации, сохранением результата в файл, режимами подробного логирования и отладки:
    shell
    sudo ipa-healthcheck --config=/etc/ipahealthcheck/myconfig.conf --output-file=/var/log/ipa/healthcheck/healthcheck.log --indent=4 --verbose --debug
  • Запуск проверки топологии с выводом в формате Prometheus и заданным префиксом для метрик:
    shell
    sudo ipa-healthcheck --source=ipahealthcheck.ipa.topology --check=IPATopologyDomainCheck --output-type=prometheus --metric-prefix=ipa_health

Важно!

При запуске инструмент сначала загружает опции из файла конфигурации, затем применяются опции командной строки.
Если параметр уже определён в файле конфигурации, он не будет переопределён опциями командной строки, если только не указан другой файл конфигурации через опцию --config

Интеграция ipa‑healthcheck с systemd

После установки пакета в systemd появятся два системных юнита:

  • ipa-healthcheck.service - основной юнит-сервис, который запускает программу ipa‑healthcheck, выполняет проверки состояния установки FreeIPA и формирует отчёт об обнаруженных проблемах.
  • ipa-healthcheck.timer - юнит-таймер, который по заданному интервалу инициирует запуск ipa‑healthcheck.service. Он позволяет автоматизировать регулярное выполнение проверок, что особенно полезно для постоянного мониторинга системы.

Порядок настройки таймеров в Astra Linux см. в статье:

Запуск таймера в системе производится так:

shell
sudo systemctl enable ipa-healthcheck.timer && systemctl start ipa-healthcheck.timer

Эта команда включает автоматический запуск таймера и инициирует его немедленный старт.

В файле /usr/libexec/ipa/ipa-healthcheck.sh можно указать, с какими параметрами командной строки будет запускаться служба ipa-healthcheck.service:

/usr/libexec/ipa/ipa-healthcheck.sh
#!/bin/sh

LOGDIR=/var/log/ipa/healthcheck

/usr/bin/ipa-healthcheck --output-file $LOGDIR/healthcheck.log --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL

Кроме передачи опций через командную строку, параметры работы ipa‑healthcheck можно задать и в конфигурационном файле. См. Конфигурация и интеграция

Важно!

Запуск юнита ipa‑healthcheck.service через systemd может завершиться статусом failed, если какая-либо тестовая проверка не выполнена. В этом случае утилита возвращает ненулевой код, а для диагностики стоит просмотреть логи с помощью команды:

shell
sudo journalctl -u ipa-healthcheck.service

Обзор проверок для диагностики и мониторинга FreeIPA

Программа поддерживает следующие проверки:

  • ipahealthcheck.dogtag.ca
    Отвечает за проверки, связанные с сервером Dogtag (служба CA).


  • ipahealthcheck.ds.backends
    Контролирует работоспособность backend‑модулей, которые отвечают за хранение данных (например, в LDAP‑хранилище)


  • ipahealthcheck.ds.config
    Проводит анализ конфигурационных настроек LDAP‑сервера и сопутствующих компонентов, чтобы удостовериться, что все параметры установлены корректно.


  • ipahealthcheck.ds.disk_space
    Проверяет состояние свободного места на дисках, особенно на критичных разделах, таких как каталоги логов или резервных копий, чтобы предупредить о риске переполнения.


  • ipahealthcheck.ds.dse
    Осуществляет диагностику DSE (Directory Server Engine) — базовой части LDAP‑сервера, которая отвечает за хранение и обработку данных.


  • ipahealthcheck.ds.encryption
    Анализирует настройки шифрования и криптографические параметры, что обеспечивает безопасную передачу и хранение данных.


  • ipahealthcheck.ds.fs_checks
    Выполняет проверки файловой системы, включая права доступа, целостность и корректность разрешений на важных файлах и каталогах.


  • ipahealthcheck.ds.nss_ssl
    Проверяет настройки NSS‑базы, которая используется для хранения сертификатов и ключей, а также тестирует соответствующие SSL‑настройки.


  • ipahealthcheck.ds.ds_plugins
    Отвечает за проверку дополнительных плагинов LDAP‑сервера, которые могут расширять его функциональность или влиять на безопасность.


  • ipahealthcheck.ds.replication
    Контролирует репликацию данных между серверами, проверяя синхронизацию данных и анализируя журналы изменений (changelogs) для обнаружения ошибок.


  • ipahealthcheck.ds.ruv
    Следит за корректностью записей RUV (Replication Update Values), необходимых для правильной работы репликации.


  • ipahealthcheck.ipa.certs
    Содержит набор проверок, связанных с сертификатами FreeIPA: от контроля срока действия, проверки цепочки доверия до сравнения сертификатов, а также отслеживания их состояния с помощью certmonger.


  • ipahealthcheck.ipa.dna
    Отвечает за проверку диапазона DNA (Domain Number Allocation), который используется для распределения идентификаторов в системе, чтобы избежать конфликтов.


  • ipahealthcheck.ipa.idns
    Производит диагностику системных DNS‑записей, необходимых для корректной работы инфраструктуры FreeIPA.


  • ipahealthcheck.ipa.files
    Проверяет разрешения, владельцев и целостность основных файлов, используемых FreeIPA, таких как конфигурационные файлы и файлы NSS‑базы.


  • ipahealthcheck.ipa.host
    Выполняет проверки, связанные с аутентификацией текущего хоста, включая проверку корректности файла keytab для различных сервисов (LDAP, HTTP, DNS и др.).


  • ipahealthcheck.ipa.kdc
    Следит за состоянием рабочих процессов KDC (Kerberos Distribution Center), необходимых для работы аутентификации.


  • ipahealthcheck.ipa.meta
    Собирает общую информацию о сервере FreeIPA (например, FQDN, версии продукта), предоставляя обзор состояния системы.


  • ipahealthcheck.ipa.nss
    Проверяет корректность работы NSS‑подсистемы, например, правильное членство пользователей в группах, связанные с NSS‑базой.


  • ipahealthcheck.ipa.proxy
    Контролирует настройки IPA Proxy, включая проверку корректности секретного ключа, используемого для безопасной коммуникации.


  • ipahealthcheck.ipa.roles
    Выполняет проверки, связанные с ролями сервера в инфраструктуре FreeIPA — определяет, является ли сервер мастером обновления сертификатов, CRL-менеджером, и проверяет связанные с этим параметры.


  • ipahealthcheck.ipa.topology
    Проводит проверки топологии репликации и сетевой конфигурации, убеждаясь, что все серверы правильно настроены и данные синхронизируются корректно.


  • ipahealthcheck.ipa.trust
    Отвечает за диагностику доверительных отношений (trust) с Active Directory, проверяя настройки trust-агентов, списки доверенных доменов, корректность конфигураций principal, членство в группах и наличие необходимых пакетов.


  • ipahealthcheck.meta.core
    Собирает основную информацию о FreeIPA-сервере, которая используется для формирования общего отчёта о состоянии системы.


  • ipahealthcheck.meta.services
    Контролирует состояние основных сервисов FreeIPA (таких как certmonger, dirsrv, httpd, sssd и др.) и сигнализирует о сбоях или остановке их работы.


  • ipahealthcheck.system.filesystemspace
    Анализирует свободное место на дисковых разделах, ключевых для работы системы FreeIPA, предупреждая о риске нехватки пространства, что может привести к проблемам с логированием и выполнением резервного копирования.


С полным списком можно также ознакомиться при помощи команды:

shell
sudo ipa-healthcheck --list-sources









1111

  • Нет меток