Введение
FreeIPA Health Check – инструмент ipa-healthcheck, предназначенный для диагностики состояния серверов FreeIPA. Используется администраторами доменов.
Запуск инструмента производится на настроенном контроллере ЕПП FreeIPA. Порядок установки и настройки контроллера см. в статье Контроллер ЕПП FreeIPA в Astra Linux.
Также инструмент может проверять корректность работы:
- доверительных отношений (см. Настройка доверительных отношений FreeIPA - Active Directory),
- репликации (см. FreeIPA: настройка репликации),
- центра сертификации DogTag (см. FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition).
Установка пакета
Инструмент ipa-healthcheck предоставляется пакетом freeipa-healthcheck. Пакет входит в расширенный репозиторий. Установить пакет можно используя Графический менеджер пакетов synaptic, или из командной строки:
sudo apt install freeipa-healthcheck
После установки будут созданы:
- конфигурационный файл /etc/ipahealthcheck/ipahealthcheck.conf,
- служба-юнит ipa-healthcheck.service в systemd,
- служба-таймер ipa-healthcheck.timer в systemd.
Конфигурация и интеграция
Файл конфигурации разделён как минимум на две секции:
- Секция [default]. В этой секции задаются значения параметров, влияющих на работу инструмента проверки состояния.
- Секция [excludes]. Эта секция используется для фильтрации или подавления определённых результатов по имени источника, имени проверки или конкретному ключу результата. Это особенно полезно для игнорирования известных незначительных проблем в окружении.
Пример готовой конфигурации может выглядеть так:
[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
Аргументы при запуске из командной строки
Также все параметры конфигурации поддерживаются в виде аргументов при запуске из командой строки.
Пример готовых команд:
- Выполнение конкретной проверки сертификатов с фильтрацией по уровню серьезности и показом только ошибок: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=myconf.conf) или отключена загрузка конфигурационного файла совсем (--config=""), тогда логика «первым пришёл» пересчитывается относительно нового (или отсутствующего) файла, и параметры командной строки смогут вступить в силу.
Интеграция ipa‑healthcheck с systemd
При установке пакета создаются два системных юнита:
- ipa-healthcheck.service - основной юнит-служба, который запускает инструмент ipa‑healthcheck, выполняет проверки состояния установки FreeIPA и формирует отчёт об обнаруженных проблемах.
- ipa-healthcheck.timer - юнит-таймер, инициирующий запуск юнита-службы (ipa‑healthcheck.service) через заданные интервалы времени. Позволяет автоматизировать регулярное выполнение проверок для постоянного мониторинга системы.
Порядок настройки таймеров в Astra Linux см. в статье Использование таймеров systemd вместо заданий cron.
Запуск таймера в системе производится так:
sudo systemctl enable ipa-healthcheck.timer sudo systemctl start ipa-healthcheck.timer
Эта команда включает автоматический запуск таймера при старте системы и инициирует его немедленный старт.
В файле /usr/libexec/ipa/ipa-healthcheck.sh можно указать, с какими параметрами командной строки будет запускаться служба ipa-healthcheck.service:
Справка
Файл /usr/libexec/ipa/ipa-healthcheck.sh создается при установке пакета freeipa-healthcheck.
#!/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.service может завершиться ошибкой (failed) если какая-либо тестовая проверка не выполнена. В этом случае для диагностики следует просмотреть журнал службы с помощью команды:
sudo journalctl -u ipa-healthcheck.service
Обзор источников и проверок для диагностики и мониторинга FreeIPA
Инструмент поддерживает следующие источники и входящие в них проверки:
- ipahealthcheck.dogtag.ca
Отвечает за диагностику служб центра сертификации DogTag (если DogTag используется). Диагностируются службы CA и KRA.
- ipahealthcheck.ds.backends
Контролирует работоспособность backend‑модулей, которые отвечают за хранение данных (например, в LDAP‑хранилище)
- ipahealthcheck.ds.config
Проводит анализ конфигурационных настроек LDAP‑сервера и сопутствующих компонентов, чтобы удостовериться, что все параметры установлены корректно.
- ipahealthcheck.ds.disk_space
Проверяет состояние свободного места на дисках, особенно на критичных разделах, таких как каталоги логов или резервных копий, чтобы предупредить о риске переполнения.
- ipahealthcheck.ds.dse
Проверяет рассинхронизацию времени между репликами DS.
- ipahealthcheck.ds.encryption
Анализирует настройки защитных преобразований передаваемых и хранящихся данных.
- ipahealthcheck.ds.fs_checks
Выполняет проверку прав доступа к ключевым файлам DS.
- ipahealthcheck.ds.nss_ssl
Проверяет настройки NSS‑базы, которая используется для хранения сертификатов и ключей, а также тестирует соответствующие SSL‑настройки.
- ipahealthcheck.ds.ds_plugins
Отвечает за проверку дополнительных плагинов LDAP‑сервера, которые могут расширять его функциональность или влиять на безопасность.
- ipahealthcheck.ds.replication
Контролирует репликацию данных между серверами, проверяя синхронизацию данных и анализируя журналы изменений (changelogs) для обнаружения ошибок.
- ipahealthcheck.ds.ruv
Следит за корректностью записей RUV, необходимых для правильной работы репликации.
- ipahealthcheck.ipa.certs
Содержит набор проверок, связанных с сертификатами FreeIPA: контролирует срок действия сертификатов, проверяет целостность и корректность цепочки доверия, сверяет сертификаты в NSS-базах и PEM-файлах, а также их соответствие записям в LDAP
- ipahealthcheck.ipa.dna
Отвечает за проверку диапазона DNA, который используется для распределения идентификаторов в системе, чтобы избежать конфликтов.
- ipahealthcheck.ipa.idns
Производит диагностику системных DNS‑записей, необходимых для корректной работы инфраструктуры FreeIPA.
- ipahealthcheck.ipa.files
Проверяет разрешения, владельцев и целостность основных файлов, используемых FreeIPA, таких как конфигурационные файлы и файлы NSS‑базы.
- ipahealthcheck.ipa.host
Выполняет проверку, связанную с аутентификацией текущего хоста, включая проверку корректности файла keytab для различных служб (LDAP, HTTP, DNS и др.).
- ipahealthcheck.ipa.kdc
Следит за состоянием рабочих процессов KDC, необходимых для работы аутентификации.
- ipahealthcheck.ipa.meta
Собирает общую информацию о сервере FreeIPA.
- ipahealthcheck.ipa.nss
Проверяет корректность работы NSS‑подсистемы.
- ipahealthcheck.ipa.proxy
Контролирует настройки IPA Proxy, включая проверку корректности секретного ключа, используемого для безопасной коммуникации.
- ipahealthcheck.ipa.roles
Выполняет проверки, связанные с ролями сервера в инфраструктуре FreeIPA — определяет, является ли сервер мастером обновления сертификатов, CRL-менеджером, и проверяет связанные с этим параметры.
- ipahealthcheck.ipa.topology
Проводит проверки топологии репликации и сетевой конфигурации, убеждаясь, что все серверы правильно настроены и данные синхронизируются корректно.
- ipahealthcheck.ipa.trust
Отвечает за диагностику доверительных отношений (trust) с AD, проверяя настройки trust-агентов, списки доверенных доменов, корректность конфигураций principal, членство в группах и наличие необходимых пакетов.
- ipahealthcheck.meta.core
Собирает основную информацию о FreeIPA-сервере, которая используется для формирования общего отчёта о состоянии системы.
- ipahealthcheck.meta.services
Контролирует состояние основных служб FreeIPA (таких как certmonger, dirsrv, httpd, sssd и др.) и сигнализирует о сбоях или остановке их работы.
- ipahealthcheck.system.filesystemspace
Анализирует свободное место на дисковых разделах, ключевых для работы системы FreeIPA, предупреждая о риске нехватки пространства, что может привести к проблемам с логированием и выполнением резервного копирования.
С полным списком доступных источников и проверок можно также ознакомиться при помощи команды:
sudo ipa-healthcheck --list-sources
Любой из источников и/или проверок может быть указан в виде аргументов для запуска из командной строки и/или при использовании файла конфигурации. См. Конфигурация и интеграция