Введение

FreeIPA Health Check – инструмент ipa-healthcheck, предназначенный для диагностики состояния серверов FreeIPA. Используется администраторами доменов.

Запуск инструмента производится на настроенном контроллере ЕПП FreeIPA. Порядок установки и настройки контроллера см. в статье Контроллер ЕПП FreeIPA в Astra Linux.

Инструмент может проверять корректность работы:

В таблице перечислены все специальные термины и аббревиатуры, применяемые в статье, с их пояснениями.

ТерминПояснение
Источник (source)

Модуль или пространство имён для сбора данных (например, ipahealthcheck.ipa.certs). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.

Проверка (check)

Конкретная проверка в рамках источника (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.

CLI

Аббревиатура от Command Line Interface.
Текстовый интерфейс для взаимодействия с операционной системой или программой через ввод команд в консоли, без использования графических элементов.

DogTag

Полное название проекта Dogtag Certificate System
Встроенный центр сертификации контроллеров FreeIPA. Не входит в состав основного репозитория Astra Linux Special Edition.

CS

Аббревиатура от Certificate System.
В контексте DogTag это подсистема, отвечающая за работу центра сертификации и связанных сервисов.

CA

Аббревиатура от Certificate Authority.
В контексте DogTag это подсистема, отвечающая за выпуск, подпись и отзыв цифровых сертификатов, а также публикацию списков отозванных сертификатов (CRL) и работу OCSP-ответчика.

CRL

Аббревиатура от Certificate Revocation List.
Периодически публикуемый центром сертификации (CA) файл, содержащий список отозванных цифровых сертификатов, срок доверия к которым прекращён.

KRA

Аббревиатура от Key Recovery Authority.
В контексте DogTag это подсистема, обеспечивающая архивирование и восстановление закрытых ключей пользователей: при запросе сертификата приватный ключ шифруется и сохраняется в KRA, что позволяет восстановить доступ к данным, если оригинальный ключ утерян.

DSBLE, DSCLE, DSDSLE и т.д.

Аббревиатуры от Directory Server <сокращенное название проверки> Lint Error.
Это специальный тип ошибки, который используется в механизме проверок 389-DS для описания несоответствий конфигурации и ACI (Access Control Instructions) в LDAP-сервере. Он возникает при выполнении команды dsctl <instance> healthcheck, служит для структурированного представления найденных проблем (код ошибки, уровень серьёзности, описание и контекст) для последующего ручного или автоматического их устранения.

CS.cfg

Главный файл конфигурации подсистемы DogTag CS.
Создается при инициализации контроллера ЕПП FreeIPA с центром сертификации DogTag (см. FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition).

В DogTag подсистемы запускаются независимо, каждая со своим CS.cfg:

  • /etc/pki/pki-tomcat/ca/CS.cfg настраивает CA,

  • /etc/pki/pki-tomcat/kra/CS.cfg настраивает KRA.

DNS

Аббревиатура от Domain Name System.
Иерархическая распределённая система, преобразующая доменные имена в IP-адреса и обратно в Интернете.

LDAP

Аббревиатура от Lightweight Directory Access Protocol.
Протокол прикладного уровня для доступа и управления распределённой каталоговой службой, широко используется для хранения и поиска информации об учётных записях, группах и политиках в сетях.

NSS

Аббревиатура от Network Security Services.
Набор библиотек защитного преобразования, используемых приложениями и сервисами для работы с сертификатами, ключами и безопасными соединениями.

DS

Аббревиатура от Directory Server
LDAP-сервер, реализованный на основе проекта 389 Directory Server, обеспечивающий хранение, поиск и модификацию данных каталоговой службы (учётные записи, группы, политики).

RUV

Аббревиатура от Replica Update Vector.
Набор счётчиков состояния репликации в DS, хранящийся на каждом узле; позволяет определить, какие изменения между всеми участниками топологии уже переданы, а какие ещё нужно синхронизировать.

TLS/SSL

Аббревиатура от Transport Layer Security (TLS) и Secure Sockets Layer (SSL).
Протоколы, обеспечивающие защитное преобразование и аутентификацию сетевых соединений в интернете и приложениях.

certmonger

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

Отслеживаемый сертификат

Команда getcert list опрашивает службу certmonger и выводит список сертификатов, которые он отслеживает (MONITORING) или по которым он пытается получить подписанный ответ от CA.

Сертификат, для которого служба certmonger ведёт слежение по его параметрам и состоянию. В выводе команды getcert list такие сертификаты имеют статус MONITORING, что указывает на активное наблюдение за их сроком действия.

При использовании DogTag (см. FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition) служба certmonger по умолчанию отслеживает все сертификаты, выданные центром сертификации DogTag и выполняет их продление за 28 дней до окончания срока действия.

Если DogTag не используется, то по умолчанию служба certmoner не отслеживает сертификаты. Поэтому сертификаты пользовательские, выданные внешним CA или вручную загруженные необходимо запустить под наблюдение используя следующую команду (на примере сертификата службы KDC):

sudo ipa-getcert start-tracking -f /var/lib/ipa/certs/kdc.crt -k /var/lib/ipa/certs/kdc.key -C /usr/lib/ipa/certmonger/renew_kdc_cert

  • -f /path/to.crt указывает путь к файлу сертификата в формате PEM, который уже установлен на диске.
  • -k /path/to.key указывает путь к файлу приватного ключа в PEM-формате.
  • -C /path/to/hlp указывает путь к скрипту для продления сертификата.

При ручном добавлении сертификата в отслеживание, служба certmonger лишь начинает за ним наблюдать, но автоматическое обновление происходит только через CA, сконфигурированный в certmonger. Если в системе нет ни одного CA (внутреннего DogTag или внешнего, зарегистрированного через getcert add-scep-ca или ipa-getcert), то при приближении срока истечения служба certmonger попытается продлить сертификат, но получит ошибку CA_UNREACHABLE и не обновит его автоматически.

При приближении срока истечения отслеживаемого сертификата инструмент ipa-healthcheck будет выводить в своём отчёте предупреждения следующего вида:

{
  "source": "ipahealthcheck.ipa.certs",
  "check": "IPACertfileExpirationCheck",
  "result": "WARNING",
  "uuid": "4e4aaa12-f193-4af2-b9b1-dccd2eac18a2",
  "when": "20350402213105Z",
  "duration": "0.009759",
  "kw": {
    "key": "20250425091326",
    "expiration_date": "20350423085816Z",
    "days": 20,
    "msg": "Request id {key} expires in {days} days. certmonger should renew this automatically. Watch the status withgetcert list -i {key}."
  }
}

Обратите внимание, что в инструменте ipa-healthcheck порог, при достижении которого генерируется предупреждение об истечении отслеживаемого сертификата, задаётся параметром cert_expiration_days. Для дополнительной информации см. Конфигурация и интеграция.

Журнал службы certmonger для дальнейшей диагностики можно просмотреть с помощью команды:

sudo journalctl -u certmonger.service

В свою очередь certmonger записывает в журнал службы предупреждение следующего вида:

апр 29 16:00:50 ipasrv.ipadomain.loc certmonger[2754]: Certificate in file "/var/lib/ipa/certs/kdc.crt" will not be valid after 2035-04-23 11:58:16 MSK.

FQDN

Аббревиатура от Fully Qualified Domain Name.
Полное доменное имя узла, включающее все уровни DNS-иерархии (например, host.example.com).

KDC

Аббревиатура от Key Distribution Center.
Компонент Kerberos, отвечающий за аутентификацию клиентов и выдачу Ticket Granting Tickets и сервисных билетов (TGS)

TGT

Аббревиатура от Ticket Granting Ticket.
В Kerberos-системе билет, выдаваемый KDC после аутентификации, позволяющий без повторного ввода пароля запрашивать сервисные билеты.

DNA

Аббревиатура от Distributed Numeric Assignment.
Плагин 389 Directory Server, который автоматически распределяет диапазоны POSIX UID/GID между серверами — выделяет каждому мастеру и реплике поддиапазон из общего пространства идентификаторов, обеспечивая их уникальность и отказоустойчивость при создании новых учётных записей и групп

keytab

Файл “key table” Kerberos, хранящий длинно-срочные ключи одного или нескольких принципалов. Используется сервисами для автоматической аутентификации без ввода пароля.

AJP

Аббревиатура от Apache JServ Protocol.
Бинарный сетевой протокол для проксирования HTTP-запросов от веб-сервера к серверу приложений (например, Tomcat).

Топология репликации

Схема взаимосвязей и соглашений репликации между IPA-серверами.

AD

Аббревиатура от Active Directory.
Cлужба каталогов Microsoft для управления объектами Windows-домена (пользователи, компьютеры, политики). Использует LDAP, Kerberos и DNS для централизованной аутентификации и авторизации.

RID/SID

RID (Аббревиатура от Relative Identifier)
Относительный идентификатор, присваиваемый объектам при создании и становящийся частью SID.

SID (Аббревиатура от Security Identifier)
Уникальный идентификатор безопасности в Windows AD, состоящий из доменного S-идентификатора и RID

IPA

Аббревиатура от Identity, Policy, Audit.
Интегрированное решение для централизованного управления удостоверениями, политиками аутентификации и аудита на Linux/UNIX. Основано на LDAP, Kerberos, Dogtag и BIND.

ТерминПояснение
Источник (source)

Модуль или пространство имён для сбора данных (например, ipahealthcheck.ipa.certs). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.

Проверка (check)

Конкретная проверка в рамках источника (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.

CLI

Аббревиатура от Command Line Interface.
Текстовый интерфейс для взаимодействия с операционной системой или программой через ввод команд в консоли, без использования графических элементов.

CS

Аббревиатура от Certificate System.
В контексте DogTag это подсистема, отвечающая за работу центра сертификации и связанных сервисов.

CA

Аббревиатура от Certificate Authority.
В контексте DogTag это подсистема, отвечающая за выпуск, подпись и отзыв цифровых сертификатов, а также публикацию списков отозванных сертификатов (CRL) и работу OCSP-ответчика.

CRL

Аббревиатура от Certificate Revocation List.
Периодически публикуемый центром сертификации (CA) файл, содержащий список отозванных цифровых сертификатов, срок доверия к которым прекращён.

KRA

Аббревиатура от Key Recovery Authority.
В контексте DogTag это подсистема, обеспечивающая архивирование и восстановление закрытых ключей пользователей: при запросе сертификата приватный ключ шифруется и сохраняется в KRA, что позволяет восстановить доступ к данным, если оригинальный ключ утерян.

DSBLE, DSCLE, DSDSLE и т.д.

Аббревиатуры от Directory Server <сокращенное название проверки> Lint Error.
Это специальный тип ошибки, который используется в механизме проверок 389-DS для описания несоответствий конфигурации и ACI (Access Control Instructions) в LDAP-сервере. Он возникает при выполнении команды dsctl <instance> healthcheck, служит для структурированного представления найденных проблем (код ошибки, уровень серьёзности, описание и контекст) для последующего ручного или автоматического их устранения.

CS.cfg

Главный файл конфигурации подсистемы DogTag CS.
Создается при инициализации контроллера ЕПП FreeIPA с центром сертификации DogTag (см. FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition).

В DogTag подсистемы запускаются независимо, каждая со своим CS.cfg:

  • /etc/pki/pki-tomcat/ca/CS.cfg настраивает CA,

  • /etc/pki/pki-tomcat/kra/CS.cfg настраивает KRA.

DNS

Аббревиатура от Domain Name System.
Иерархическая распределённая система, преобразующая доменные имена в IP-адреса и обратно в Интернете.

LDAP

Аббревиатура от Lightweight Directory Access Protocol.
Протокол прикладного уровня для доступа и управления распределённой каталоговой службой, широко используется для хранения и поиска информации об учётных записях, группах и политиках в сетях.

NSS

Аббревиатура от Network Security Services.
Набор библиотек защитного преобразования, используемых приложениями и сервисами для работы с сертификатами, ключами и безопасными соединениями.

DS

Аббревиатура от Directory Server
LDAP-сервер, реализованный на основе проекта 389 Directory Server, обеспечивающий хранение, поиск и модификацию данных каталоговой службы (учётные записи, группы, политики).

RUV

Аббревиатура от Replica Update Vector.
Набор счётчиков состояния репликации в DS, хранящийся на каждом узле; позволяет определить, какие изменения между всеми участниками топологии уже переданы, а какие ещё нужно синхронизировать.

TLS/SSL

Аббревиатура от Transport Layer Security (TLS) и Secure Sockets Layer (SSL).
Протоколы, обеспечивающие защитное преобразование и аутентификацию сетевых соединений в интернете и приложениях.

certmonger

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

Отслеживаемый сертификат

Команда getcert list опрашивает службу certmonger и выводит список сертификатов, которые он отслеживает (MONITORING) или по которым он пытается получить подписанный ответ от CA.

Сертификат, для которого служба certmonger ведёт слежение по его параметрам и состоянию. В выводе команды getcert list такие сертификаты имеют статус MONITORING, что указывает на активное наблюдение за их сроком действия.

При использовании DogTag (см. FreeIPA: Подключение центра сертификации DogTag в Astra Linux Common Edition) служба certmonger по умолчанию отслеживает все сертификаты, выданные центром сертификации DogTag. Запускает их продление за 28 дней до окончания срока действия.

Если DogTag не используется, по умолчанию служба certmoner не отслеживает сертификаты. Поэтому сертификаты пользовательские, выданные внешним CA или вручную загруженные необходимо запустить под наблюдение используя следующую команду (на примере сертификата службы KDC):

sudo ipa-getcert start-tracking -f /var/lib/ipa/certs/kdc.crt -k /var/lib/ipa/certs/kdc.key -C /usr/lib/ipa/certmonger/renew_kdc_cert

  • -f /path/to.crt указывает путь к файлу сертификата в формате PEM, который уже установлен на диске.
  • -k /path/to.key указывает путь к файлу приватного ключа в PEM-формате.
  • -C /path/to/hlp указывает путь к скрипту для продления сертификата.

При ручном добавлении сертификата в отслеживание, служба certmonger лишь начинает за ним наблюдать, но автоматическое обновление происходит только через CA, сконфигурированный в certmonger. Если в системе нет ни одного CA (внутреннего DogTag или внешнего, зарегистрированного через getcert add-scep-ca или ipa-getcert), то при приближении срока истечения служба certmonger попытается продлить сертификат, но получит ошибку CA_UNREACHABLE и не обновит его автоматически.

При приближении срока истечения отслеживаемого сертификата инструмент ipa-healthcheck будет выводить в своём отчёте предупреждения следующего вида:

{
  "source": "ipahealthcheck.ipa.certs",
  "check": "IPACertfileExpirationCheck",
  "result": "WARNING",
  "uuid": "4e4aaa12-f193-4af2-b9b1-dccd2eac18a2",
  "when": "20350402213105Z",
  "duration": "0.009759",
  "kw": {
    "key": "20250425091326",
    "expiration_date": "20350423085816Z",
    "days": 20,
    "msg": "Request id {key} expires in {days} days. certmonger should renew this automatically. Watch the status withgetcert list -i {key}."
  }
}

Обратите внимание, что в инструменте ipa-healthcheck порог, при достижении которого генерируется предупреждение об истечении отслеживаемого сертификата, задаётся параметром cert_expiration_days. Для дополнительной информации см. Конфигурация и интеграция.

Журнал службы certmonger для дальнейшей диагностики можно просмотреть с помощью команды:

sudo journalctl -u certmonger.service

В свою очередь certmonger записывает в журнал службы предупреждение следующего вида:

апр 29 16:00:50 ipasrv.ipadomain.loc certmonger[2754]: Certificate in file "/var/lib/ipa/certs/kdc.crt" will not be valid after 2035-04-23 11:58:16 MSK.

FQDN

Аббревиатура от Fully Qualified Domain Name.
Полное доменное имя узла, включающее все уровни DNS-иерархии (например, host.example.com).

KDC

Аббревиатура от Key Distribution Center.
Компонент Kerberos, отвечающий за аутентификацию клиентов и выдачу Ticket Granting Tickets и сервисных билетов (TGS)

TGT

Аббревиатура от Ticket Granting Ticket.
В Kerberos-системе билет, выдаваемый KDC после аутентификации, позволяющий без повторного ввода пароля запрашивать сервисные билеты.

DNA

Аббревиатура от Distributed Numeric Assignment.
Плагин 389 Directory Server, который автоматически распределяет диапазоны POSIX UID/GID между серверами — выделяет каждому мастеру и реплике поддиапазон из общего пространства идентификаторов, обеспечивая их уникальность и отказоустойчивость при создании новых учётных записей и групп

keytab

Файл “key table” Kerberos, хранящий длинно-срочные ключи одного или нескольких принципалов. Используется сервисами для автоматической аутентификации без ввода пароля.

AJP

Аббревиатура от Apache JServ Protocol.
Бинарный сетевой протокол для проксирования HTTP-запросов от веб-сервера к серверу приложений (например, Tomcat).

Топология репликации

Схема взаимосвязей и соглашений репликации между IPA-серверами.

AD

Аббревиатура от Active Directory.
Cлужба каталогов Microsoft для управления объектами Windows-домена (пользователи, компьютеры, политики). Использует LDAP, Kerberos и DNS для централизованной аутентификации и авторизации.

RID/SID

RID (Аббревиатура от Relative Identifier)
Относительный идентификатор, присваиваемый объектам при создании и становящийся частью SID.

SID (Аббревиатура от Security Identifier)
Уникальный идентификатор безопасности в Windows AD, состоящий из доменного S-идентификатора и RID

IPA

Аббревиатура от Identity, Policy, Audit.
Интегрированное решение для централизованного управления удостоверениями, политиками аутентификации и аудита на Linux/UNIX. Основано на LDAP, Kerberos, Dogtag и BIND.

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

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

sudo apt install freeipa-healthcheck

После установки будут созданы:

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

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

Параметры в секции [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). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.
  • check:
    Позволяет запустить конкретную проверку внутри выбранного источника, этот параметр используется совместно с source (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.

Параметры в секции [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

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

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

Доступные параметры CLI

  • --list-sources:
    Выводит список доступных источников и проверок, что помогает определить, какие группы тестов доступны в вашей установке.
  • --config=FILE:
    Задает файл конфигурации, который будет использоваться при запуске. Если указать пустую строку, то файл конфигурации не загружается. По умолчанию используется файл /etc/ipahealthcheck/ipahealthcheck.conf.
  • --source=SOURCE:
    Исполняет проверки только из указанного источника или пространства имен (например, ipahealthcheck.ipa.certs). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.
  • --check=CHECK:
    Позволяет запустить конкретную проверку внутри выбранного источника, этот параметр используется совместно с --source (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA.
  • --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 задает префикс, который будет добавляться к именам метрик.

Примеры команд

Возможные варианты вывода варьируются от значения параметра output-type. См. Конфигурация и интеграция

  • human
    sudo ipa-healthcheck --output-type=human
    ERROR: ipahealthcheck.ipa.certs.IPACertTracking.cert-file=/var/lib/ipa/certs/kdc.crt, key-file=/var/lib/ipa/certs/kdc.key, ca-name=None, cert-postsave-command=/usr/lib/ipa/certmonger/renew_kdc_cert: Expected certmonger tracking is missing for cert-file=/var/lib/ipa/certs/kdc.crt, key-file=/var/lib/ipa/certs/kdc.key, ca-name=None, cert-postsave-command=/usr/lib/ipa/certmonger/renew_kdc_cert. Automated renewal will not happen for this certificate
  • json
    sudo ipa-healthcheck --output-type=json
    [
      {
        "source": "ipahealthcheck.ipa.certs",
        "check": "IPACertTracking",
        "result": "ERROR",
        "uuid": "37a2d931-44a5-4ceb-84c1-1da1ac4663f8",
        "when": "20250421043329Z",
        "duration": "0.071436",
        "kw": {
          "key": "cert-file=/var/lib/ipa/certs/kdc.crt, key-file=/var/lib/ipa/certs/kdc.key, ca-name=None, cert-postsave-command=/usr/lib/ipa/certmonger/renew_kdc_cert",
          "msg": "Expected certmonger tracking is missing for {key}. Automated renewal will not happen for this certificate"
        }
      }
    ]
  • prometheus
    sudo ipa-healthcheck --output-type=prometheus
    ipa_healthcheck{result="ERROR"} 1.0

При запуске инструмент сначала загружает параметры из файла конфигурации, затем применяются параметры командной строки. Действуют следующие правила:

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

  • Только те параметры, которых нет в конфигурационном файле, будут считаться и применены из командной строки.

  • Исключение: если загружен другой конфигурационный файл (например, --config=myconf.conf) или отключена загрузка конфигурационного файла совсем (--config=""), тогда логика «первым пришёл» пересчитывается относительно нового (или отсутствующего) файла, и параметры командной строки смогут вступить в силу.

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

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

По умолчанию ipa-healthcheck.timer при установке пакета уже активируется и начинает свою работу. Если же по какой-то причине таймер не был включён, нужно выполнить два действия:

Подробнее про таймеры systemd см. статью Использование таймеров systemd вместо заданий cron.

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

#!/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

Файл /usr/libexec/ipa/ipa-healthcheck.sh перезаписывается при обновлении или переустановке пакета freeipa-healthcheck. Рекомендуется сделать резервную копию:

sudo mv /usr/libexec/ipa/ipa-healthcheck.sh /usr/libexec/ipa/ipa-healthcheck.sh.bak

После обновления или переустановки пакета freeipa-healthcheck заменить автоматически созданный /usr/libexec/ipa/ipa-healthcheck.sh:

sudo mv /usr/libexec/ipa/ipa-healthcheck.sh.bak /usr/libexec/ipa/ipa-healthcheck.sh

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

sudo journalctl -u ipa-healthcheck.service

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

Инструмент поддерживает следующие источники и входящие в них проверки:

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

sudo ipa-healthcheck --list-sources

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