Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

Что такое sosreport и как создать его в Red Hat Enterprise Linux 4.6 и более поздних версий?

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 4.6 и более поздние версии
  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise MRG

Issue

Resolution

Что такое sosreport:

Команда sosreport это инструмент который собирает сведения о конфигурации и диагностическую информацию в системе Red Hat Enterprise Linux. Такие сведения могут включать, например, версию ядра, список загруженных модулей, файлы конфигурации системы и отдельных служб. Эта команда также запускает внешние программы для сбора дополнительной информации, и сохраняет этот вывод в архив.

Вывод команды 'sosreport' является общей отправной точкой для инженеров технической поддержки Red Hat при первоначальномго анализе заявки.


Как запустить sosreport:

После установки пакета sos, выполните следующую команду, чтобы запустить sosreport:

Примечание: для запуска команды sosreport необходимы права доступа root.

# sosreport

Обычно в системе Red Hat Enterprise Linux 6 работа этой команды занимает несколько минут. В более старых версиях, это может занять несколько больше времени. В зависимости от конкретной конфигурации и специальных опций, в некоторых случаях команда может выполняться дольше. Если вас беспокоит время выполнения команды sosreport, обратитесь за помощью к представителю службы технической поддержки Red Hat.

После завершения, команда 'sosreport' создаст сжатый файл в /tmp (для RHEL6 и более ранних версий) или в /var/tmp (для RHEL7 и более поздних версий). Разные версии используют разные алгоритмы сжатия (gz, bz2, or xz). Файл следует передать инженеру технической поддержки (обычно в качестве приложения к открытой заявке).

Размер архива зависит от конфигурации системы, и дополнительных функций 'sosreport', (например, если указать опцию "all_logs" общего модуля, чтобы собрать все файлы syslog, то размер архива значительно увеличится).

Чтобы прикрепить sosreport или любой другой файл к открытой заявке, Вы можете воспользоваться командой redhat-support-tool, интерфейсом портала пользователей Red Hat или другими методами, включая FTP.

Если собранный файл sosreport слишком большой для прямой загрузки в заявку, его можно загрузить на сайт Red Hat ftp dropbox.redhat.com .

Чтобы избежать необходимости ввода информации о пользователе и учетной записи в интерактивном режиме, команду можно запустить в пакетном режиме, используя опцию --batch. В этом случае, информация о пользователе получается из файлов конфигурации RHN:

# sosreport --batch

Команда sosreport имеет модульную структуру, и дает возможность подключать и отключать модули, а также задавать параметры модулей через командную строку. Чтобы просмотреть доступные модули, используйте следующую команду:

# sosreport -l

Чтобы временно отключить модуль:

Перечислите через запятую модули для отключения в параметре -n/--skip-plugins.

Например, чтобы временно отключить модули kvm и amd (если они не работают), укажите:

# sosreport -n kvm,amd

У некоторых модулей есть дополнительные параметры, которые можно задать с помощью параметра -k. Например, в системах Red Hat Enterprise Linux 4 и 5, модуль sos rpm по умолчанию собирает вывод команды "rpm -Va". Так как это может занять много времени, такое поведение можно отключить:

# sosreport -k rpm.rpmva=off

Как выполнить команду sosreport на прокси-сервере RHN
Чтобы получить более подробную информацию на прокси-сервере RHN, выполните следующую команду:

# sosreport -o rhn

Примечание:

1. В Red Hat Enterprise Linux 4.5 и более ранних версий поставлялась более старая команда 'sysreport', также создававшая архивы с диагностической информацией. Если возможно, установите в системе пакет 'sos', поставляемый с более новыми версиями. Тем не менее, архивы 'sysreport' также можно предоставлять в службу технической поддержки Red Hat, если необходимо What is a sysreport and how to run it in Red Hat Enterprise Linux?

2. Пакет 'sos', поставляемый с Red Hat Enterprise Linux 4 и 5 также содержит команду 'sysreport'. Это символическая ссылка, которая обеспечивает обратную совместимость:

# ls -l /usr/sbin/sysreport
lrwxrwxrwx 1 root root 19 Nov  3  2008 /usr/sbin/sysreport -> /usr/sbin/sosreport

Чтобы использовать оригинальную (устаревшую) версию 'sysreport' на этих системах, используйте команду 'sysreport.legacy':

# sysreport.legacy
This utility will go through and collect some detailed information 
about the hardware and setup of your Red Hat Linux system.
This information will be used to diagnose problems with your system
and will be considered confidential information.  Red Hat will use
this information for diagnostic purposes ONLY. 

Как установить sosreport:

Чтобы выполнить команду 'sosreport', должен быть установлен пакет 'sos'. Этот пакет входит в группу по умолчанию и автоматически устанавливается в большинстве систем.

Если по какой-либо причине пакет отсутствует, его можно установить вручную:

Red Hat Enterprise Linux 5 и более поздних версий

Если система зарегистрирована в RHN, используйте команду 'yum':

# yum install sos

Если система не зарегистрирована в RHN, то можно скачать пакет 'sos' с сайта RHN, либо найти его на установочных компакт-дисках или DVD. С помощью команды 'rpm' можно установить пакет в любой версии Red Hat Enterprise Linux:

 # rpm -Uvh sos-<version>.noarch.rpm

Red Hat Enterprise Linux 4 Update 6 или более поздних версий

Если система зарегистрирована в Red Hat Network (RHN), пакет 'sos' можно установить командой 'up2date':

# up2date sos

Что делать если команда 'sosreport' зависает:

  • Если команда запущена в системе RHEL5, то перед завершением процесса по PID переключите процесс в фоновый режим (ctrl-z). В противном случае, вы можете столкнутся с проблемой описанной в KCS#55275

  • Если sosreport дает сбой из за ошибки "No space left on device", тогда на этом устройстве:

    • Проверьте есть ли свободное место в файловой системе /tmp
    # df -h /tmp
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_ren-lv_root
                           50G   49G    1M  99% /
    
    • Каталог с дополнительным свободным пространством можно явно указать следующим образом:
    # sosreport --tmp-dir /path/to/another/volume
    
  • Команда sosreport может зависнуть из- за одного из модулей.

Попробуйте определить на каком модуле команда зависает.

  1. Включите подробный вывод sosreport -vvvv
  2. Сделайте трассировку.

Определив, на каком модуле зависает команда sosreport, отключите этот модуль.

Для просмотра списка всех модулей воспользуйтесь следующей командой:

sosreport -l

Например, чтобы исключить плагин filesys, выполните:

sosreport -n filesys
  • В противном случае, вместо использования неработающей команды 'sosreport' можно создать отчет вручную, выполнив следующий скрипт. Следует помнить, что при этом будет собрана лишь часть информации, которую обычно собирает стандартный 'sosreport'.

    #!/bin/bash
    host="$(hostname)"
    
    sos_dir="/tmp/${host}_hungsos"
    mkdir $sos_dir
    cd $sos_dir
    chkconfig --list > chkconfig
    date > date
    df > df
    dmesg > dmesg
    dmidecode > dmidecode  
    fdisk -l > fdisk  
    free > free  
    hostname --fqdn > hostname  
    ifconfig > ifconfig  
    lsmod > lsmod  
    lspci > lspci  
    cat /proc/mounts > mount  
    netstat -tlpn > netstat  
    ps auxww > ps  
    rpm -qa > rpm-qa  
    rpm -Va > rpm-Va     #эта команда может занять некоторое время  
    ulimit -a > ulimit  
    uname -a > uname  
    uptime > uptime  
    cat /proc/meminfo > meminfo  
    cat /proc/cpuinfo > cpuinfo  
    mkdir etc  
    cd etc  
    cp /etc/fstab .
    cp /etc/cluster/cluster.conf .
    cp /etc/security/limits.conf .  
    cp /etc/redhat-release .  
    cp /etc/sysctl.conf .  
    cp /etc/modprobe.conf .  
    mkdir sysconfig/network-scripts -p  
    cd sysconfig  
    cp /etc/sysconfig/* . -R  
    cd $sos_dir
    mkdir var/log -p  
    cp /var/log/message* var/log -R  
    cd /tmp  
    tar -cvjf ${host}_hungsos.tar.bz2 $sos_dir
    

Справка: How to gather data from a Red Hat Enterprise Linux system for troubleshooting if the sosreport process goes to hung state?

Как создать 'sosreport' из среды аварийного восстановления

Если система не загружается, то для устранения неполадок можно собрать sosreport из среды аварийного восстановления.

Справка: How to generate sosreport from the rescue environment?

Как создать sosreport в другом каталоге

В случае, когда в каталоге /tmp недостаточно свободного места, возможно создать отчет 'sosreport' в другом каталоге.

Справка: How do I make sosreport write to an alternative location?

Как собрать данные sosreport вручную

Если все остальное не удается и создать отчет sosreport по-прежнему невозможно, то единственным решением будет собрать необходимые сведения вручную.

Справка: Sosreport fails. What data should I provide in its place?


Возможные побочные эффекты sosreport:

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments