Red Hat Training

A Red Hat training course is available for Red Hat Satellite

Глава 10. Диагностика проблем

В этом разделе приведены рекомендации по определению причин и решению типичных проблем Red Hat Network Satellite. За помощью также можно обратиться в службу поддержки Red Hat Network по адресу https://access.redhat.com/support/. Используйте имя и пароль учетной записи Satellite для авторизации.
Диагностика начинается с анализа журналов и служебных файлов. Для их просмотра используйте tail -f, затем yum list.
Распространенной проблемой является недостаток места на диске, индикатором чего является прекращение записи в журнал. Выполните следующую команду и обратите внимание на столбец Use%:
# df -h
Для проверки состояния Red Hat Network Satellite можно выполнить
# /usr/sbin/rhn-satellite status
Можно проверить статус отдельных компонентов. Например, для Apache выполните
# service httpd status
10.1. Установка и обновление
Вопрос: Почему при установке появляются сообщения SELinux?
Вопрос: SELinux не работает после замены /var/satellite на NFS-ресурс.
Вопрос: Происходит сбой работы Satellite. Почему?
10.2. Службы
Вопрос: Почему не работает Apache?
Вопрос: Как определить статус Task Engine?
Вопрос: Как определить статус встроенной базы данных Satellite?
Вопрос: Что делать, если yum, up2date или функции RHN Push не работают?
10.3. Соединение
Вопрос: Почему не удается установить соединение?
Вопрос: Что делать, если не удается выполнить импорт или синхронизацию канала?
Вопрос: Что означают ошибки SSL_CONNECT?
10.4. Журналы и отчеты
Вопрос: Для чего нужны журналы?
Вопрос: Для чего нужен spacewalk-report?
Вопрос: Как определить версию схемы базы данных?
Вопрос: Как определить доступные типы кодировки?
Вопрос: Почему администратор не получает почту?
Вопрос: Как изменить адрес отправителя в сообщениях отладки?
10.5. Ошибки
Вопрос: Что делать в случае ошибки проверки сертификата Satellite в процессе установки?
Вопрос: Что означает ошибка "ERROR: server.mount_point not set in the configuration file" при активации или синхронизации Satellite?
Вопрос: Почему «cobbler check» требует другую версию yum-utils?
Вопрос: Почему при активации сертификата появляется сообщение о том, что текущая версия не поддерживается?
Вопрос: Что означает ошибка ASCII при редактировании профиля кикстарта?
Вопрос: Ошибки «Узел не найден» или «не удалось определить FQDN». Что делать?
Вопрос: Почему при синхронизации Satellite появляется сообщение "This server is not an entitled Satellite"?

10.1. Установка и обновление

Вопрос:
Почему при установке появляются сообщения SELinux?
Ответ:
Если при установке RHN Satellite в появляются сообщения SELinux (отказы AVC и пр.), в анализе проблемы могут помочь журналы audit.log. Файл /var/log/audit/audit.log можно прикрепить к созданному отчету.
Вопрос:
SELinux не работает после замены /var/satellite на NFS-ресурс.
Ответ:
Чтобы SELinux разрешал прохождение трафика NFS, выполните команду:
# /usr/sbin/setsebool -P spacewalk_nfs_mountpoint on
В Red Hat Enterprise Linux 6 дополнительно потребуется выполнить:
# /usr/sbin/setsebool -P cobbler_use_nfs on
Вопрос:
Происходит сбой работы Satellite. Почему?
Ответ:
Не подписывайте сервер Satellite на следующие каналы:
  • Red Hat Developer Suite
  • Red Hat Application Server
  • Red Hat Extras
  • Каналы JBoss
Подписка на эти каналы и обновление Satellite может привести к установке новых, несовместимых версий критических программных компонентов, тем самым вызвав сбой Satellite.

10.2. Службы

Вопрос:
Почему не работает Apache?
Ответ:
Если Apache не работает, возможно, есть ошибки в /etc/hosts.
Вопрос:
Как определить статус Task Engine?
Ответ:
Для определения статуса Task Engine выполните
# service taskomatic status
Вопрос:
Как определить статус встроенной базы данных Satellite?
Ответ:
Для определения статуса встроенной базы данных выполните
# service oracle status
Вопрос:
Что делать, если yum, up2date или функции RHN Push не работают?
Ответ:
Причиной могут быть старые файлы журналов. Остановите jabberd и удалите эти файлы.
# service jabberd stop
# rm -f /var/lib/jabberd/db/_db*
# service jabberd start

10.3. Соединение

Вопрос:
Почему не удается установить соединение?
Ответ:
Возможные решения:
  • Попробуйте подключиться к базе данных Satellite из командной строки, используя строку соединения из /etc/rhn/rhn.conf:
    # sqlplus пользователь/пароль@sid
  • Убедитесь, что Satellite, системы клиентов и компьютер с независимой базой данных используют NTP (Network Time Protocol), и время установлено корректно.
  • Проверьте наличие следующего пакета на Satellite:
    rhn-org-httpd-ssl-key-pair-ИМЯ_КОМПЬЮТЕРА-ВЕРСИЯ-ВЫПУСК.noarch.rpm
    Кроме того, во всех системах клиентов должен быть установлен соответствующий открытый сертификат SSL или rhn-org-trusted-ssl-cert-*.noarch.rpm.
  • Убедитесь, что клиентами используется корректный сертификат.
  • При наличии прокси-серверов RHN убедитесь, что все SSL-сертификаты подготовлены корректно. На самом прокси-сервере должна присутствовать пара ключей SSL и открытый сертификат CA SSL. Глава сертификатов SSL в руководстве по настройке клиентов RHN содержит подробную информацию.
  • Убедитесь, что межсетевые экраны клиентов не блокируют необходимые порты (см. Раздел 2.4, «Дополнительные требования»).
Вопрос:
Что делать, если не удается выполнить импорт или синхронизацию канала?
Ответ:
Если произошла ошибка при импорте или синхронизации канала, и не получается его восстановить, удалите кэш:
# rm -rf временный_каталог

Примечание

Раздел 6.2.1, «Подготовка к импорту с локального носителя» в качестве временного каталога использует /var/rhn-sat-import/.
После этого можно заново начать импорт или синхронизацию.
Вопрос:
Что означают ошибки SSL_CONNECT?
Ответ:
Ошибки SSL_CONNECT возникают в результате установки Satellite в системе с неверно определенным временем, так как сертификаты также будут создаваться с неточным временем. Если же время сервера было откорректировано, выбор времени активации сертификата может привести к тому, что сертификат окажется неверным.
Проверьте дату и время в системах клиентов и Satellite:
# date
Результаты должны быть аналогичны для всех машин и лежать в пределах "notBefore" и "notAfter". Проверьте дату и время сертификатов:
# openssl x509 -dates -noout -in /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
Проверьте дату и время сертификата Satellite:
# openssl x509 -dates -noout -in /etc/httpd/conf/ssl.crt/server.crt
По умолчанию сертификат сервера истекает через год, в то время как сертификаты клиентов действительны на протяжении 10 лет. Если сертификаты неверны, можно либо дождаться заданного времени начала, либо создать новые сертификаты. При этом желательно, чтобы время всех систем было в формате GMT.

10.4. Журналы и отчеты

Вопрос:
Для чего нужны журналы?
Ответ:
Анализ проблем должен начинаться с изучения соответствующих файлов журналов. Они содержат информацию о том, какие события имели место на заданном устройстве или в приложении (см. Таблица 10.1, «Файлы журналов»).
В каталоге /var/log/rhn/ файлы пронумерованы: /var/log/rhn/rhn_satellite_install.log.1, /var/log/rhn/rhn_satellite_install.log.2 и т.п. Это так называемые циклические журналы, которые создаются, когда предыдущий файл rhn_satellite_install.log достигает максимального размера, допустимого службой logrotate(8). Так, например, rhn_satellite_install.log.1 будет содержать более ранние события по сравнению с rhn_satellite_install.log.4.

Таблица 10.1. Файлы журналов

Компонент, задача Путь к журналам
Apache /var/log/httpd/
Red Hat Network Satellite /var/log/rhn/
Программа установки Red Hat Network Satellite /var/log/rhn/rhn_satellite_install.log
Установка встроенной базы данных /var/log/rhn/install_db.log
Заполнение базы данных /var/log/rhn/populate_db.log
Утилита синхронизации Red Hat Network Satellite /var/log/rhn/rhn_server_satellite.log
Инфраструктура мониторинга /var/log/nocpulse/
Уведомления мониторинга /var/log/notification/
Red Hat Network DB Control: встроенная база данных /var/log/rhn/rhn_database.log
taskomatic /var/log/messages
yum /var/log/yum.log
Транзакции XML-RPC /var/log/rhn/rhn_server_xmlrpc.log
Вопрос:
Для чего нужен spacewalk-report?
Ответ:
spacewalk-report осуществляет сбор статистики о Satellite, полномочиях, подписанных системах, пользователях и организациях.

Примечание

Предварительно потребуется установить пакет spacewalk-reports.
spacewalk-report формирует отчеты о пакетах, системах и пользовательских ресурсах Satellite:
  • Системная информация — список зарегистрированных систем.
  • Полномочия — список организаций Satellite, отсортированных по системам и полномочиям.
  • Исправления — список исправлений для зарегистрированных систем, упорядоченных по приоритету.
  • Пользователи — список зарегистрированных пользователей и их систем.
  • Системные события — список всех или выборочных событий.
Следующая команда позволяет создать отчет в формате CSV:
# spacewalk-report report_name
Типы отчетов перечислены в таблице.

Таблица 10.2. Отчеты spacewalk-report

Отчет Параметр Описание
Системная информация inventory Список зарегистрированных на сервере систем, их программные и аппаратные характеристики.
Полномочия entitlements Список организаций Satellite, их полномочия систем и каналов.
Исправления в каналах errata-channels Список исправлений в каналах
Все исправления errata-list-all Полный список исправлений.
Исправления для систем errata-systems Список исправлений и систем, к которым они применимы.
Пользователи users Список зарегистрированных на Satellite пользователей.
Системы users-systems Системы под управлением конкретных пользователей.
Дерево кикстарта kickstartable-trees Список кикстарт-структур.
События системы system-history Список системных событий.
Каналы событий системы system-history-channels Список системных событий.
Настройка системных событий. system-history-configuration Журнал событий конфигурации системы.
Полномочия системных событий system-history-entitlements Журнал событий настройки полномочий
Журнал исправлений system-history-errata Журнал исправлений
Журнал кикстарта system-history-kickstart Журнал событий кикстарта и инициализации системы.
Журнал пакетов system-history-packages Журнал событий пакетов.
Подробную информацию об интересующем отчете можно получить, выполнив spacewalk-report с аргументом --info или --list-fields-info с последующим именем отчета. В результате будет получен список полей и их описание.
За дальнейшей информацией обратитесь к справочной странице spacewalk-report(8) или выполните команду с параметром --help.
Вопрос:
Как определить версию схемы базы данных?
Ответ:
Выполните команду
# rhn-schema-version
Вопрос:
Как определить доступные типы кодировки?
Ответ:
Определение кодировки базы данных RHN Satellite:
# rhn-charsets
Вопрос:
Почему администратор не получает почту?
Ответ:
Если администратор не получает почту с Red Hat Network Satellite, проверьте адреса traceback_mail в файле /etc/rhn/rhn.conf.
Вопрос:
Как изменить адрес отправителя в сообщениях отладки?
Ответ:
Для изменения адреса dev-null@rhn.redhat.com, используемого по умолчанию для отправки отладочной информации, служит параметр web.default_mail_from в файле /etc/rhn/rhn.conf.

10.5. Ошибки

Вопрос:
Что делать в случае ошибки проверки сертификата Satellite в процессе установки?
Ответ:
Ошибка при проверке сертификата в процессе установки Red Hat Network может быть вызвана прокси-сервером HTTP. Проверить это можно в install.log:
ERROR: unhandled exception occurred: 
Traceback (most recent call last): 
  File "/usr/bin/rhn-satellite-activate", line 45, in ? 
    sys.exit(abs(mod.main() or 0)) 
  File "/usr/share/rhn/satellite_tools/rhn_satellite_activate.py", line 585, in main 
    activateSatellite_remote(options) 
  File "/usr/share/rhn/satellite_tools/rhn_satellite_activate.py", line 291, in activateSatellite_remote 
    ret = s.satellite.deactivate_satellite(systemid, rhn_cert) 
  File "/usr/lib/python2.4/site-packages/rhn/rpclib.py", line 603, in __call__ 
    return self._send(self._name, args) 
  File "/usr/lib/python2.4/site-packages/rhn/rpclib.py", line 326, in _request 
    self._handler, request, verbose=self._verbose) 
  File "/usr/lib/python2.4/site-packages/rhn/transports.py", line 171, in request 
    headers, fd = req.send_http(host, handler) 
  File "/usr/lib/python2.4/site-packages/rhn/transports.py", line 698, in send_http 
    self._connection.connect() 
  File "/usr/lib/python2.4/site-packages/rhn/connections.py", line 193, in connect 
    sock.connect((self.host, self.port)) 
  File "<string>", line 1, in connect 
socket.timeout: timed out
Чтобы это исправить, выполните следующее:
  1. Запустите сценарий установки в автономном режиме без установки базы данных:
    # ./install.pl --disconnected --skip-db-install
    
  2. В /etc/rhn/rhn.conf добавьте
    server.satellite.rhn_parent = satellite.rhn.redhat.com
    
    Удалите выражение
    disconnected=1
    
    Если подключение к Red Hat Network осуществляется через прокси-сервер, потребуется откорректировать настройки прокси.
    server.satellite.http_proxy = <hostname>:<порт>
    server.satellite.http_proxy_username = <пользователь>
    server.satellite.http_proxy_password = <пароль>
    
  3. Повторно включите Satellite, выполнив в режиме root:
    # rhn-satellite-activate --rhn-cert=/путь/к/file.cert
В качестве альтернативы можно запустить сценарий install.pl с параметром --answer-file=файл. Указанный файл должен содержать следующие сведения для доступа к прокси:
rhn-http-proxy = <узел>:<порт>
rhn-http-proxy-username = <пользователь>
rhn-http-proxy-password = <пароль>
Вопрос:
Что означает ошибка "ERROR: server.mount_point not set in the configuration file" при активации или синхронизации Satellite?
Ответ:
Ошибка "ERROR: server.mount_point not set in the configuration file" может означать, что параметр mount_point в /etc/rhn/rhn.conf содержит неверный путь или недостаточно прав для доступа к каталогу.
Проверьте значение mount_point в /etc/rhn/rhn.conf. Если оно содержит путь /var/satellite, убедитесь, что этот каталог и /var/satellite/redhat действительно существуют.
Вопрос:
Почему «cobbler check» требует другую версию yum-utils?
Ответ:
Иногда при выполнении cobbler check может появиться сообщение:
# cobbler check 
The following potential problems were detected: 
#0: yum-utils need to be at least version 1.1.17 for reposync -l, current version is 1.1.16
Об этой ошибке в пакете reposync известно, и ее можно просто проигнорировать. Она будет исправлена в будущих выпусках Red Hat Network Satellite.
Вопрос:
Почему при активации сертификата появляется сообщение о том, что текущая версия не поддерживается?
Ответ:
Если сертификат Red Hat Network Satellite поврежден, могут появиться следующие ошибки:
ERROR: <Fault -2: 'unhandled internal exception: unsupported version: 96'>
RHN_PARENT: satellite.rhn.redhat.com
     Error reported from RHN: <Fault -2: 'unhandled internal exception: unsupported version: 115'>
     ERROR: unhandled XMLRPC fault upon remote activation: <Fault -2: 'unhandled internal exception: unsupported version: 115'>
     ERROR: <Fault -2: 'unhandled internal exception: unsupported version: 115'>
Invalid satellite certificate
За новым сертификатом обратитесь в службу поддержки Red Hat.
Вопрос:
Что означает ошибка ASCII при редактировании профиля кикстарта?
Ответ:
Если в профиль кикстарта были добавлены новые параметры ядра, при попытке просмотра списка профилей может появиться ошибка:
'ascii' codec can't encode character u'\u2013'
Вероятно, текст в профиле не может быть распознан.
Чтобы это исправить, выполните следующее:
  1. Откройте ssh-соединение с Satellite:
    # ssh root@satellite.fqdn.com
    
  2. Найдите профиль, вызывающий ошибку, — это последний измененный файл в каталоге /var/lib/cobbler/config/profiles.d.
    # ls -l /var/lib/cobbler/config/profiles.d/
    
  3. Откройте его в текстовом редакторе и найдите строку
    \u2013hostname
    
    Измените ее:
    --hostname
    
  4. Сохраните файл.
  5. Чтобы изменения вступили в силу, перезапустите службы:
    # rhn-satellite restart
    Shutting down rhn-satellite...
    Stopping RHN Taskomatic...
    Stopped RHN Taskomatic.
    Stopping cobbler daemon:                                   [  OK  ]
    Stopping rhn-search...
    Stopped rhn-search.
    Stopping MonitoringScout ...                               [  OK  ]
    Stopping Monitoring ...                                    [  OK  ]
    Stopping httpd:                                            [  OK  ]
    Stopping tomcat5:                                          [  OK  ]
    Shutting down osa-dispatcher:                              [  OK  ]
    Shutting down Oracle Net Listener ...                      [  OK  ]
    Shutting down Oracle DB instance "rhnsat" ...              [  OK  ]
    Shutting down Jabber router:                               [  OK  ]
    Done.
    Starting rhn-satellite...
    Starting Jabber services                                   [  OK  ]
    Starting Oracle Net Listener ...                           [  OK  ]
    Starting Oracle DB instance "rhnsat" ...                   [  OK  ]
    Starting osa-dispatcher:                                   [  OK  ]
    Starting tomcat5:                                          [  OK  ]
    Starting httpd:                                            [  OK  ]
    Starting Monitoring ...                                    [  OK  ]
    Starting MonitoringScout ...                               [  OK  ]
    Starting rhn-search...
    Starting cobbler daemon:                                   [  OK  ]
    Starting RHN Taskomatic...
    Done.
    
  6. Теперь можно вернуться к веб-интерфейсу.
Вопрос:
Ошибки «Узел не найден» или «не удалось определить FQDN». Что делать?
Ответ:
Так как файлы конфигурации Red Hat Network принимают только полностью квалифицированные имена доменов (FQDN, Fully Qualified Domain Name), необходимо, чтобы ключевые приложения могли преобразовать имя RHN Satellite в IP-адрес. Это особенно важно для агента обновлений Red Hat, клиента регистрации Red Hat Network и Apache, так как в противном случае при попытке запуска приложения будут сообщать о том, что узел не найден, а веб-сервер — о том, что имя домена определить не удалось.
Обычно причина скрывается в файле /etc/hosts. Проверьте /etc/nsswitch.conf (где определены методы и порядок преобразования имен). /etc/hosts проверяется первым, затем NIS (Network Information Service) и DNS. Для корректного запуска Apache и нормальной работы приложений Red Hat Network необходимо, чтобы одна из этих проверок завершилась успешно.
Найдите в файле /etc/hosts следующий текст:
127.0.0.1 this_machine.example.com this_machine localhost.localdomain \ localhost
Удалите ненужную информацию:
127.0.0.1 localhost.localdomain.com localhost
Сохраните файл и попробуйте перезапустить приложения клиентов Red Hat Network и Apache. В случае неудачи измените IP-адреса:
127.0.0.1 localhost.localdomain.com localhost
123.45.67.8 this_machine.example.com this_machine
Если используется фиксированный IP-адрес, при изменении адреса компьютера его надо будет исправить в файле.
Вопрос:
Почему при синхронизации Satellite появляется сообщение "This server is not an entitled Satellite"?
Ответ:
Если при выполнении satellite-sync появляется сообщение о том, что сервер не может выполнять функции Red Hat Network Satellite, это значит, что он не подписан на соответствующий канал Red Hat Network Satellite. Возможно, требуется активация сертификата.
Проверьте дочерние каналы системы и убедитесь, что она подписана на канал Red Hat Network Satellite.
# yum repolist
Выполните активацию сертификата Satellite (в режиме root):
# rhn-satellite-activate -vvv --rhn-cert=/путь/к/сертификату

Примечание

Если вы не уверены, как решить ту или иную проблему, можно обратиться в службу поддержки Red Hat Network. Отправьте информацию о параметрах конфигурации Satellite, базе данных и файлы журналов.
Для сбора информации и создания архива *.tar используется satellite-debug (в режиме root). Пример вывода:
# satellite-debug
Collecting and packaging relevant diagnostic information.
Warning: this may take some time...
    * copying configuration information
    * copying logs
    * querying RPM database (versioning of RHN Satellite, etc.)
    * querying schema version and database character sets
    * get diskspace available
    * timestamping
    * creating tarball (may take some time): /tmp/satellite-debug.tar.bz2
    * removing temporary debug tree
 
Debug dump created, stored in /tmp/satellite-debug.tar.bz2
Deliver the generated tarball to your RHN contact or support channel.
Созданный файл будет сохранен в /tmp/. Отправьте его представителю Red Hat для дальнейшего анализа.