Var log xorg 0 log error

Невозможно представить себе пользователя и администратора сервера, или даже рабочей станции на основе Linux, который никогда не читал лог файлы. Операционная сис...

Время прочтения
6 мин

Просмотры 391K

Невозможно представить себе пользователя и администратора сервера, или даже рабочей станции на основе Linux, который никогда не читал лог файлы. Операционная система и работающие приложения постоянно создают различные типы сообщений, которые регистрируются в различных файлах журналов. Умение определить нужный файл журнала и что искать в нем поможет существенно сэкономить время и быстрее устранить ошибку.

Журналирование является основным источником информации о работе системы и ее ошибках. В этом кратком руководстве рассмотрим основные аспекты журналирования операционной системы, структуру каталогов, программы для чтения и обзора логов.

Основные лог файлы

Все файлы журналов, можно отнести к одной из следующих категорий:

  • приложения;
  • события;
  • службы;
  • системный.

Большинство же лог файлов содержится в директории /var/log.

  • /var/log/syslog или /var/log/messages содержит глобальный системный журнал, в котором пишутся сообщения с момента запуска системы, от ядра Linux, различных служб, обнаруженных устройствах, сетевых интерфейсов и много другого.
  • /var/log/auth.log или /var/log/secure — информация об авторизации пользователей, включая удачные и неудачные попытки входа в систему, а также задействованные механизмы аутентификации.
  • /var/log/dmesg — драйвера устройств. Одноименной командой можно просмотреть вывод содержимого файла. Размер журнала ограничен, когда файл достигнет своего предела, старые сообщения будут перезаписаны более новыми. Задав ключ --level= можно отфильтровать вывод по критерию значимости.

Поддерживаемые уровни журналирования (приоритеты):
   emerg - система неиспользуемая
   alert - действие должно быть произведено немедленно
    crit - условия критичности
     err - условия ошибок
    warn - условия предупреждений
  notice - обычные, но значимые условия
    info - информационный
   debug - отладочные сообщения

(5:520)$ dmesg -l err
[1131424.604352] usb 1-1.1: 2:1: cannot get freq at ep 0x1
[1131424.666013] usb 1-1.1: 1:1: cannot get freq at ep 0x81
[1131424.749378] usb 1-1.1: 1:1: cannot get freq at ep 0x81

  • /var/log/alternatives.log — Вывод программы update-alternatives, в котором находятся символические ссылки на команды или библиотеки по умолчанию.
  • /var/log/anaconda.log — Записи, зарегистрированные во время установки системы.
  • /var/log/audit — Записи, созданные службой аудита auditd.
  • /var/log/boot.log — Информация, которая пишется при загрузке операционной системы.
  • /var/log/cron — Отчет службы crond об исполняемых командах и сообщения от самих команд.
  • /var/log/cups — Все, что связано с печатью и принтерами.
  • /var/log/faillog — Неудачные попытки входа в систему. Очень полезно при проверке угроз в системе безопасности, хакерских атаках, попыток взлома методом перебора. Прочитать содержимое можно с помощью команды faillog.
  • var/log/kern.log — Журнал содержит сообщения от ядра и предупреждения, которые могут быть полезны при устранении ошибок пользовательских модулей встроенных в ядро.
  • /var/log/maillog/ или /var/log/mail.log — Журнал почтового сервера, используемого на ОС.
  • /var/log/pm-powersave.log — Сообщения службы экономии заряда батареи.
  • /var/log/samba/ — Логи файлового сервера Samba, который используется для доступа к общим папкам Windows и предоставления доступа пользователям Windows к общим папкам Linux.
  • /var/log/spooler — Для представителей старой школы, содержит сообщения USENET. Чаще всего бывает пустым и заброшенным.
  • /var/log/Xorg.0.log — Логи X сервера. Чаще всего бесполезны, но если в них есть строки начинающиеся с EE, то следует обратить на них внимание.

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

  • /var/log/yum.log — Для программ установленных с помощью Yum в RedHat Linux.
  • /var/log/emerge.log — Для ebuild-ов установленных из Portage с помощью emerge в Gentoo Linux.
  • /var/log/dpkg.log — Для программ установленных с помощью dpkg в Debian Linux и всем семействе родственных дистрибутивах.

И немного бинарных журналов учета пользовательских сессий.

  • /var/log/lastlog — Последняя сессия пользователей. Прочитать можно командой last.
  • /var/log/tallylog — Аудит неудачных попыток входа в систему. Вывод на экран с помощью утилиты pam_tally2.
  • /var/log/btmp — Еже один журнал записи неудачных попыток входа в систему. Просто так, на всякий случай, если вы еще не догадались где следует искать следы активности взломщиков.
  • /var/log/utmp — Список входов пользователей в систему на данный момент.
  • /var/log/wtmp — Еще один журнал записи входа пользователей в систему. Вывод на экран командой utmpdump.

(5:535)$ sudo utmpdump /var/log/wtmp
[5] [02187] [l0  ] [        ] [4.0.5-gentoo     ] [0.0.0.0     ] [Вт авг 11 16:50:07 2015]
[1] [00000] [~~  ] [shutdown] [4.0.5-gentoo     ] [0.0.0.0     ] [Вт авг 11 16:50:08 2015]
[2] [00000] [~~  ] [reboot  ] [3.18.12-gentoo   ] [0.0.0.0     ] [Вт авг 11 16:50:57 2015]
[8] [00368] [rc  ] [        ] [3.18.12-gentoo   ] [0.0.0.0     ] [Вт авг 11 16:50:57 2015]
[1] [20019] [~~  ] [runlevel] [3.18.12-gentoo   ] [0.0.0.0     ] [Вт авг 11 16:50:57 2015]

И другие журналы

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

  • /var/log/mysql/ — Лог базы данных MySQL.
  • /var/log/httpd/ или /var/log/apache2/ — Лог веб сервера Apache, журнал доступа находится в access_log, а ошибки — в error_log.
  • /var/log/lighthttpd/ — Лог веб сервера lighttpd.

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

  • ~/.xsession-errors — Вывод stderr графических приложений X11.

Initializing  "kcm_input" :  "kcminit_mouse"
Initializing  "kcm_access" :  "kcminit_access"
Initializing  "kcm_kgamma" :  "kcminit_kgamma"
QXcbConnection: XCB error: 3 (BadWindow), sequence: 181, resource id: 10486050, major code: 20 (GetProperty), minor code: 0
kf5.kcoreaddons.kaboutdata: Could not initialize the equivalent properties of Q*Application: no instance (yet) existing.
QXcbConnection: XCB error: 3 (BadWindow), sequence: 181, resource id: 10486050, major code: 20 (GetProperty), minor code: 0
Qt: Session management error: networkIdsList argument is NULL

  • ~/.xfce4-session.verbose-log — Сообщения рабочего стола XFCE4.

Чем просматривать — lnav

Почти все знают об утилите less и команде tail -f. Также для этих целей сгодится редактор vim и файловый менеджер Midnight Commander. У всех есть свои недостатки: less неважно обрабатывает журналы с длинными строками, принимая их за бинарники. Midnight Commander годится только для беглого просмотра, когда нет необходимости искать по сложному шаблону и переходить помногу взад и вперед между совпадениями. Редактор vim понимает и подсвечивает синтаксис множества форматов, но если журнал часто обновляется, то появляются отвлекающие внимания сообщения об изменениях в файле. Впрочем это легко можно обойти с помощью <:view /path/to/file>.

Недавно я обнаружил еще одну годную и многообещающую, но слегка еще сыроватую, утилиту — lnav, в расшифровке Log File Navigator.

Установка пакета как обычно одной командой.

$ aptitude install lnav #Debian/Ubuntu/LinuxMint
$ yum install lnav #RedHat/CentOS
$ dnf install lnav #Fedora
$ emerge -av lnav #Gentoo, нужно добавить в файл package.accept_keywords
$ yaourt -S lnav #Arch

Навигатор журналов lnav понимает ряд форматов файлов.

  • Access_log веб сервера.
  • CUPS page_log
  • Syslog
  • glog
  • dpkg.log
  • strace
  • Произвольные записи с временными отметками
  • gzip, bzip
  • Журнал VMWare ESXi/vCenter

Что в данном случае означает понимание форматов файлов? Фокус в том, что lnav больше чем утилита для просмотра текстовых файлов. Программа умеет кое что еще. Можно открывать несколько файлов сразу и переключаться между ними.

(5:471)$ sudo lnav /var/log/pm-powersave.log /var/log/pm-suspend.log

Программа умеет напрямую открывать архивный файл.

(5:471)$ lnav -r /var/log/Xorg.0.log.old.gz

Показывает гистограмму информативных сообщений, предупреждений и ошибок, если нажать клавишу <i>. Это с моего syslog-а.

Mon May 02 20:25:00        123 normal         3 errors         0 warnings         0 marks
Mon May 02 22:40:00          2 normal         0 errors         0 warnings         0 marks
Mon May 02 23:25:00         10 normal         0 errors         0 warnings         0 marks
Tue May 03 07:25:00         96 normal         3 errors         0 warnings         0 marks
Tue May 03 23:50:00         10 normal         0 errors         0 warnings         0 marks
Wed May 04 07:40:00         96 normal         3 errors         0 warnings         0 marks
Wed May 04 08:30:00          2 normal         0 errors         0 warnings         0 marks
Wed May 04 10:40:00         10 normal         0 errors         0 warnings         0 marks
Wed May 04 11:50:00        126 normal         2 errors         1 warnings         0 marks

Кроме этого поддерживается подсветка синтаксиса, дополнение по табу и разные полезности в статусной строке. К недостаткам можно отнести нестабильность поведения и зависания. Надеюсь lnav будет активно развиваться, очень полезная программа на мой взгляд.

Использованные материалы

  1. lnav — An Advanced Log File viewer for Linux
  2. What Are Linux Logs? How to View Them, Most Important Directories, and More
  3. Как посмотреть логи в Linux

Состояние перевода: На этой странице представлен перевод статьи Xorg. Дата последней синхронизации: 29 сентября 2019. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

  • Автозапуск
  • Экранный менеджер
  • Оконный менеджер
  • Настройка шрифтов
  • Темы курсора
  • Среда рабочего стола
  • Wayland (Русский)
  • xinitrc (Русский)
  • xrandr (Русский)

C https://www.x.org/wiki/:

Проект X.Org представляет свободную реализацию оконной системы X с открытым исходным кодом. Разработка осуществляется X.Org Foundation, которая является образовательной некоммерческой организацией, совместно с сообществом freedesktop.org.

Xorg (обычно называемый просто X) очень популярен среди пользователей Linux, что привело к тому, что большинство приложений с графическим интерфейсом используют X11, из-за этого Xorg доступен в большинстве дистрибутивов. Для более подробной информации смотрите статью Xorg в Википедии или посетите веб-сайт Xorg.

Установка

Установите пакет xorg-server.

В дополнение к нему, могут понадобиться пакеты из группы xorg-apps для некоторых способов настроек. О них рассказано в соответствующих разделах.

К тому же имеется группа xorg, которая включает пакеты оконной системы Xorg и пакеты из группы xorg-apps, а также шрифты.

Установка драйвера

Ядро Linux включает в себя видеодрайверы с открытым исходным кодом и поддержку аппаратного ускорения буфера кадров. Однако, для работы OpenGL и двухмерного ускорения в X11 требуется поддержка пользовательского ПО.

Сперва определите вашу видеокарту:

$ lspci | grep -e VGA -e 3D

Затем установите соответствующий драйвер. Вы можете поискать в базе данных пакетов полный список видеодрайверов с открытым исходным кодом:

$ pacman -Ss xf86-video

Xorg автоматически ищет установленные драйверы:

  • Если он не может найти установленным необходимый драйвер для оборудования (перечислены ниже), тогда он сначала ищет драйвер fbdev (xf86-video-fbdev).
  • Если и он не найден, тогда Xorg ищет общий драйвер vesa (xf86-video-vesa), который поддерживает большое количество чипсетов, но не включает 2D или 3D ускорение.
  • А если и vesa не найден, тогда X обратится к режиму KMS, который включает ускорение GLAMOR (смотрите modesetting(4)).

Для того, чтобы ускорение видео работало, и часто для того, чтобы разблокировать все режимы, в которых может работать GPU, требуется правильный видеодрайвер:

Бренд Тип Драйвер OpenGL OpenGL (multilib) Документация
AMD / ATI Свободный xf86-video-amdgpu mesa lib32-mesa AMDGPU (Русский)
xf86-video-ati ATI (Русский)
Intel Свободный xf86-video-intel mesa lib32-mesa Intel graphics (Русский)
NVIDIA Свободный xf86-video-nouveau mesa lib32-mesa Nouveau (Русский)
Проприетарный nvidia nvidia-utils lib32-nvidia-utils NVIDIA (Русский)
nvidia-390xx-dkmsAUR nvidia-390xx-utilsAUR lib32-nvidia-390xx-utilsAUR

Примечание:

  • Если Вы пользуетесь ноутбуком с поддержкой NVIDIA Optimus, который использует интегрированную видеокарту вместе с дискретной, обратитесь к статье NVIDIA Optimus (Русский) или Bumblebee (Русский).
  • Чтобы узнать доступные драйверы для графики Intel 4-го поколения и выше, смотрите статью Intel graphics (Русский)#Установка.

Другие видеодрайверы можно найти в группе xorg-drivers.

Во избежание проблем X следует запускать без драйверов с закрытым исходным кодом, которые обычно требуются только для расширенных возможностей, таких, как быстрый 3D рендеринг в играх. Исключением из этого правила являются недавние графические процессоры (особенно видеокарты NVIDIA), которые не поддерживаются драйверами с открытым исходным кодом.

AMD

Архитектура GPU Карты Radeon Драйвер с открытым исходным кодом Проприетарный драйвер
GCN 4
и новее
варианты AMDGPU (Русский) AMDGPU PRO (Русский)
GCN 3 AMDGPU (Русский) Catalyst /
AMDGPU PRO (Русский)
GCN 2 AMDGPU (Русский)* / ATI (Русский) Catalyst
GCN 1 AMDGPU (Русский)* / ATI (Русский) Catalyst
TeraScale 2&3 HD 5000 — HD 6000 ATI (Русский) Catalyst
TeraScale 1 HD 2000 — HD 4000 устаревший Catalyst
Старые X1000 и старше недоступен
*: Экспериментальный

Запуск

Команду Xorg(1) обычно не используют для запуска. Вместо этого оконный сервер X запускают с помощью экранного менеджера или xinit.

Настройка

Примечание: Arch предоставляет файлы конфигурации по умолчанию в /usr/share/X11/xorg.conf.d/. Большинству пользователей никакая дополнительная настройка не нужна.

Xorg можно настроить через xorg.conf и через файлы, заканчивающие на .conf: полный список каталог, где можно найти эти файлы есть в xorg.conf(5) вместе с подробным объяснением всех доступных опций.

Через файлы .conf

Каталог /etc/X11/xorg.conf.d/ хранит конфигурацию, специфичную для хоста (вашего компьютера). Вы можете свободно добавлять конфигурационные файлы сюда, но они обязательно должны оканчиваться на .conf: файлы читаются в кодировке ASCII и по соглашению их имена должны начинаться с XX- (две цифры и дефис, так, например, файл, начинающийся на 10, читается раньше 20). Эти файлы анализируются x-сервером при запуске и рассматриваются как часть традиционного конфигурационного файла xorg.conf. Обратите внимание, что при конфликтующей настройке последний прочитанный файл будет обработан. Поэтому наиболее общие файлы конфигурации должны быть упорядочены по имени. Конфигурационные записи в xorg.conf обрабатываются в конце.

Смотрите примеры настройки на вики Fedora.

Через файл xorg.conf

Xorg также можно настраивать через /etc/X11/xorg.conf или /etc/xorg.conf. Чтобы сгенерировать основу
файла xorg.conf:

# Xorg :0 -configure

Это создает файл xorg.conf.new в /root/, который можно скопировать в /etc/X11/xorg.conf.

Совет: Если вы уже запустили X, тогда используйте другой дисплей, например Xorg :2 -configure.

Кроме того, ваш проприетарный видеодрайвер может поставляться с инструментом для автоматической настройки Xorg: смотрите статьи NVIDIA (Русский) или AMDGPU (Русский) для подробностей.

Примечание: Ключевые слова файла конфигурации не учитывают регистр, а символы «_» игнорируются. Большинство строк (включая имена опций) также нечувствительны к регистру и к пробелам, да к символам «_».

Устройства ввода

Для устройств ввода в X по умолчанию используют драйвер libinput (xf86-input-libinput), но также можно использовать драйвер xf86-input-evdev и другие соответствующие драйверы.[1]

Udev, являющий зависимостью systemd, обнаруживает аппаратное обеспечение, и поэтому оба драйвера будут работать в режиме горячего подключения устройств ввода практически для всех устройств, как определенно в стандарных конфигурационных файлах 10-quirks.conf и 40-libinput.conf в каталоге /usr/share/X11/xorg.conf.d/.

После запуска оконной системы X, в лог-файле будет записываться информация об используемом драйвере для каждого подключенного устройства (обратите внимание, что имя последнего лог-файла может отличаться):

$ grep -e "Using input driver " Xorg.0.log

Если оба драйвера не поддерживают конкретное устройство, установите необходимый драйвер из группы xorg-drivers. То же самое относится, если вы желаете использовать другой драйвер.

Чтобы изменить поведение горячего подключения (hotplugging), смотрите статью #Настройка.

Для получения конкретных инструкций, смотрите статью libinput, следующие страницы ниже, или записи в википедии Fedora.

Идентификация ввода

Для получения дополнительной информации смотрите Keyboard input#Identifying keycodes in Xorg.

Ускорение мыши

Смотрите Mouse acceleration.

Дополнительные кнопки мыши

Смотрите кнопки мыши.

Тачпад

Смотрите libinput или Touchpad Synaptics (Русский).

Тачскрин

Смотрите Touchscreen.

Настройка клавиатуры

Смотрите конфигурация клавиатуры в Xorg.

Настройка монитора

Ручная настройка

Примечание:

  • Новые версии Xorg автоматически все настраивают, поэтому ручная настройка не требуется.
  • Если Xorg не может обнаружить монитор или автоматически не настраивается, можно использовать файл конфигурации. Распространенным случаем, когда это необходимо, является система без монитора, которая автоматически запускает Xorg либо с виртуальной консоли при входе, либо с экранного менеджера.

Для системы без монитора необходим драйвер xf86-video-dummy. Установите его и создайте файл конфигурации, например, с таким содержанием:

/etc/X11/xorg.conf.d/10-headless.conf
Section "Monitor"
        Identifier "dummy_monitor"
        HorizSync 28.0-80.0
        VertRefresh 48.0-75.0
        Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
EndSection

Section "Device"
        Identifier "dummy_card"
        VideoRam 256000
        Driver "dummy"
EndSection

Section "Screen"
        Identifier "dummy_screen"
        Device "dummy_card"
        Monitor "dummy_monitor"
        SubSection "Display"
        EndSubSection
EndSection

Несколько мониторов

Смотрите главную статью Multihead для получения общей информации.

Также смотрите специфичные инструкции для GPU:

  • NVIDIA (Русский)#Несколько мониторов
  • ATI#Multihead setup

Более одной видеокарты

Вы должны определить нужный драйвер для использования и ввести ID шины (bus ID) нужной видеокарты.

Section "Device"
    Identifier             "Screen0"
    Driver                 "nouveau"
    BusID                  "PCI:0:12:0"
EndSection

Section "Device"
    Identifier             "Screen1"
    Driver                 "radeon"
    BusID                  "PCI:1:0:0"
EndSection

Чтобы узнать ID шины:

$ lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9600M GT] (rev a1)

ID шины здесь: 1:0:0.

Размер дисплея/DPI

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

DPI оконной системы X устанавливается следующими способами:

  1. Параметр командной строки -dpi имеет наивысший приоритет.
  2. Если он не используется, параметр DisplaySize в файле конфигурации X используется для получения DPI, учитывая разрешение экрана.
  3. Если параметр DisplaySize не задан, значения размера монитора используются из DDC для получения DPI с учетом разрешения экрана.
  4. Если DDC не определяет размер, по умолчанию используется 75 DPI.

Чтобы получить правильные точки на дюйм (DPI), разрешение дисплея должно быть распознано или установлено. Наличие правильного DPI особенно необходимо, когда требуются точные детали (например, рендеринг шрифтов). Ранее производители пытались создать стандарт для 96 DPI (монитор с диагональю размером 10,3 дюйма был бы 800×600, 13,2-дюймовый монитор — 1024×768). Сейчас DPI экраном отличаются и могут быть не равными по горизонтали и по вертикали. Например, 19-дюймовый широкоэкранный ЖК-дисплей с разрешением 1440×900 может иметь DPI 89х87. Чтобы установить DPI, сервер Xorg пытается автоматически определить физическое разрешение вашего монитора с помощью видеокарты с DDC. Когда Xorg знает физическое разрешение экрана, он сможет установить правильный DPI в зависимости от размера этого разрешения.

Чтобы убедиться, что разрешение вашего дисплея и DPI обнаружены/правильно рассчитаны:

$ xdpyinfo | grep -B2 resolution

Убедитесь, что выведенное разрешение соответствует настоящему разрешению вашего монитора. Если Xorg не может правильно рассчитать разрешение экрана, он по умолчанию установит значение 75×75 DPI. Поэтому вам придется самому рассчитать его.

Если у вас есть в спецификации физическое разрешение экрана, его можно ввести в конфигурационный файл Xorg так, чтобы был рассчитан правильный DPI (регулируете идентификатор для вашего вывода xrandr):

Section "Monitor"
    Identifier              "DVI-D-0"
    DisplaySize             286 179    # В миллиметрах
EndSection

Если вы только хотите ввести спецификацию вашего монитора без создания полного xorg.conf, тогда создайте новый конфигурационный файл. Например, (/etc/X11/xorg.conf.d/90-monitor.conf):

Section "Monitor"
    Identifier             "<default monitor>"
    DisplaySize            286 179    # В миллиметрах
EndSection

Если у вас нет в спецификации ширины и высоты монитора (сейчас в большинстве спецификаций указывается только размер диагонали), вы можете использовать родное разрешение монитора (или соотношение сторон) и размер диагонали для вычисления горизонтальных и вертикальных размеров. Используя теорему Пифагора для монитора с диагональю 13,3″ и с родным разрешением 1280×800 (или соотношением сторон 16:10):

$ echo 'scale=5;sqrt(1280^2+800^2)' | bc  # 1509.43698

Вы получите размер диагонали в пикселях. С помощью него можно узнать ширину и высоту монитора в дюймах (а затем перевести их в миллиметры):

$ echo 'scale=5;(13.3/1509)*1280*25.4' | bc  # 286.43072
$ echo 'scale=5;(13.3/1509)*800*25.4'  | bc  # 179.01920

Примечание: Эти вычисления работают для мониторов с квадратными пикселями; однако, иногда встречаются мониторы, сжимающие соотношение сторон (например, разрешение изображения на мониторе с 16:10 до 16:9). В этом случае, придется измерить разрешение монитора вручную.

Настройка DPI вручную

Примечание: Сейчас вы можете установить любой dpi, который вам нравится, и тогда приложения, использующие Qt и GTK, будут масштабироваться соответственно. Рекомендуется установить dpi в 96, 120 (на 25% больше), 144 (на 50% больше), 168 (на 75% болше), 192 (на 100% больше) и т.д. для уменьшения масштабирования артефактов в приложениях с GUI, использующие растровые изображения. Уменьшение точек на дюйм (dpi) ниже 96 может не снижать размер графический элементов GUI. Обычно, наименьшее количество dpi, на которое сделаны значки, равно 96.

Для RandR-совместимых драйверов (например, драйвер ATI с открытым исходным кодом) вы можете установить dpi так:

$ xrandr --dpi 144

Примечание: Для уже запущенных приложений настройка не применяется сразу, поэтому вы должны перезапустить их.

Чтобы сделать его постоянным, посмотрите запуск команд после запуска X.

Проприетарный драйвер NVIDIA

DPI можно установить вручную, если планируется использование только одного разрешения экрана (калькулятор DPI):

Section "Monitor"
    Identifier             "Monitor0"
    Option                 "DPI" "96 x 96"
EndSection

Вы можете установить DPI вручную, добавив параметры ниже в /etc/X11/xorg.conf.d/20-nvidia.conf (внутри раздела Device):

Option              "UseEdidDpi" "False"
Option              "DPI" "96 x 96"
Предостережение о ручной настройке DPI

GTK очень часто переопределяет DPI сервера через опциональный файл Xresource Xft.dpi. Чтобы выяснить происходит ли это у вас, введите:

$ xrdb -query | grep dpi

Начиная с версии GTK 3.16, если эта переменная явно не задана, GTK задаёт ей значение 96. Чтобы приложения GTK работали с DPI сервера, потребуется явно задать Xft.dpi то же значение, что и у сервера. Также некоторые среды рабочего стола опционально приводят DPI к определенному значению в своих настройках с помощью файла ресурсов Xft.dpi. Среди них KDE (Русский) и TDE.

Управление питанием дисплея

DPMS (Display Power Management Signaling (англ), сигналы управления энергопотреблением дисплеев) — технология, позволяющая настроить энергосбережение монитора, когда компьютер не используется. Она позволит вам автоматически переключить монитор в режим ожидания через определенное время простоя.

Композит

Композитное расширение для X приводит к вынесению всего поддерева иерархии окон в буфер вне экрана. Затем приложения могут загружать содержимое этого буфера и делать все, что им нравится. Закадровый буфер может автоматически объединяться в родительское окно или объединяться внешними программами, называемыми композитными менеджерами. Для получения дополнительной информации смотрите следующую статью: w:ru:Композитный менеджер окон

Некоторые оконные менеджеры (например, Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm) имеют встроенный композит. Для других оконных менеджеров можно использовать отдельные композитные менеджеры.

Список композитных менеджеров

  • Picom — Композитный менеджер (форк Compton)
https://github.com/yshui/picom || picom
  • Xcompmgr — Композитный оконный менеджер
https://gitlab.freedesktop.org/xorg/app/xcompmgr/ || xcompmgr
  • Unagi — Модульный композитный менеджер, написанный на Си и основанный на XCB
https://projects.mini-dweeb.org/projects/unagi || unagiAUR

Советы и рекомендации

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Автоматизация

В этом разделе перечислены утилиты для автоматизации операций с окнами (например, перемещение, изменение размера или фокусировка), ввода/вывода клавиатуры и мыши.

Утилита Пакет Документация Эмуляция
клавиш
Операции
с окнами
Примечание
xautomation xautomation xte(1) Да Нет Также содержит инструменты для очистки экрана. Не может эмулировать F13+.
xdo xdo-gitAUR xdo(1) Нет Да Небольшая утилита X для выполнения элементарных действий над окнами.
xdotool xdotool xdotool(1) Да Да Очень забагованный и находится в неактивной разработке, например: имеет сломанный CLI parsing.[2][3]
xvkbd xvkbdAUR xvkbd(1) Да Нет Виртуальная клавиатура для Xorg, также имеет параметр -text для отправки символов.

См. также Clipboard#Tools и обзор средств автоматизации X.

Вложенная X-сессия

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Для запуска вложенного сеанса другой среды рабочего стола:

$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1

Это запустит сеанс Window Maker в окне 1024 на 768 в рамках текущей X-сессии.

Для этого необходим установленный пакет xorg-server-xnest.

Запуск программ с GUI удаленно

Смотрите основную статью: Secure Shell (Русский)#Проброс X11.

Отключение и включение при необходимости устройств ввода

С помощью xinput вы можете временно отключить или включить устройства ввода. Это полезно, например, на системах, имеющих несколько мышек, таких как ThinkPads и, если вам хотелось бы использовать только одну, чтобы избежать нежелательные нажатия.

Установите пакет xorg-xinput.

Найдите имя или ID устройства, которое вы хотите отключить:

$ xinput

Например для ноутбука Lenovo ThinkPad T500 вывод выглядит следующим образом:

$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=11   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=12   [slave  keyboard (3)]

Отключить устройство можно командой xinput --disable устройство, где устройство это ID устройства или имя устройства, которое вы хотите отключить. В следующем примере мы отключим тачпад Synaptics с ID 10:

$ xinput --disable 10

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

$ xinput --enable 10

Так выглядит команда для выключения устройства (здесь тачпада) через его имя:

$ xinput --disable "SynPS/2 Synaptics TouchPad"

Закрытие приложения с помощью горячей клавиши

Привяжите скрипт к горячей клавише:

#!/bin/sh
windowFocus=$(xdotool getwindowfocus);
pid=$(xprop -id "$windowFocus" | grep PID);
kill -9 "$pid"

Зависимости: xorg-xprop, xdotool

Блокирование доступа к TTY

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Чтобы запретить доступ к tty в X, добавьте следующее в файл xorg.conf:

Section "ServerFlags"
    Option "DontVTSwitch" "True"
EndSection

Запрет пользователю закрывать, перезапускать X

Чтобы запретить пользователю закрывать, перезапускать запущенный Xorg, добавьте следующее в файл xorg.conf:

Section "ServerFlags"
    Option "DontZap"      "True"
EndSection

Использование Xorg без прав суперпользователя

Xorg может запускаться со стандартными привилегиями пользователя через systemd-logind(8), для получения дополнительной информации смотрите [4] и FS#41257. Для этого необходимо:

  • Запустить X через xinit; экранный менеджер не поддерживается
  • KMS; реализации в проприетарных драйверах монитора не допускает автообнаружение, поэтому необходимо вручную настроить needs_root_rights = no в /etc/X11/Xwrapper.config.

Если вам не удовлетворяют эти требования, повторно включите права суперпользователя в /etc/X11/Xwrapper.config:

/etc/X11/Xwrapper.config
needs_root_rights = yes

Для получения дополнительной информации смотрите Xorg.wrap(1) и systemd (Русский)/User (Русский)#Xorg как пользовательская служба systemd.

Также GDM запускает Xorg без привилегий суперпользователя по умолчанию, когда используется KMS.

Неработающее перенаправление

Пока журналы пользователя Xorg хранятся в ~/.local/share/xorg/Xorg.log, они не включают вывод X-сессии. Чтобы повторно включить перенаправление, запустите X с флагом -keeptty:

exec startx -- -keeptty > ~/.xorg.log 2>&1

Или скопируйте /etc/X11/xinit/xserverrc в ~/.xserverrc и добавьте -keeptty. Для получения дополнительной информации смотрите [5].

Решение проблем

Общее

Если произошла какая-то проблема с X, посмотрите лог (журнал), хранящийся в /var/log/ или для пользователей без рут-доступа в ~/.local/share/xorg/ (по умолчанию с версии 1.16). Пользователям GDM следует проверить журнал systemd. [6]

Файлы журналов имеют следующий вид Xorg.n.log, где n — номер монитора. Для одного пользовательского компьютера с настройками по умолчанию имя нужного журнала обычно Xorg.0.log, но для остальных оно может отличаться. Чтобы убедиться, что выбранный вами файл правильный, посмотрите временную отметку запуска сеанса X сервера и из какой консоли он был запущен. Например:

$ grep -e Log -e tty Xorg.0.log
[    40.623] (==) Log file: "/home/archuser/.local/share/xorg/Xorg.0.log", Time: Thu Aug 28 12:36:44 2014
[    40.704] (--) controlling tty is VT number 1, auto-enabling KeepTty
  • При посмотре журнала будьте внимательны к строкам начинающим с (EE), которые обозначают ошибки, и к строкам — (WW), которые предупреждают об возможных других проблемах.
  • Если файл .xinitrc пустой в $HOME, то его необходимо или удалить, или изменить для правильной загрузки X. Не сделав этого, вы получите пустой экран, а в журнале возможно Xorg.0.log не будет ошибок. Просто удалив его, у вас будет запускаться стандартное окружение X.
  • Если экран становиться черным, вы все еще можете попытаться переключиться на другую виртуальную консоль (например, Ctrl+Alt+F6), и слепо войти в систему как root. Чтобы сделать это, введите root (нажмите Enter после ввода), а потом введите пароль суперпользователя (root) (снова нажмите Enter после ввода).
Вы можете попытаться завершить X сервер через:
# pkill -x X
Если это не сработало, просто перезагрузитесь:
# reboot
  • Если у вас проблемы с устройствами ввода (клавиатурой, мышкой, тачпадом, и т.д.), смотрите страницы в Category:Input devices (Русский).
  • Смотрите также решение проблем в статьях ATI (Русский), Intel graphics (Русский) и NVIDIA (Русский).

Черный экран, протокол не указан.., Ресурс временно недоступен для всех или некоторых пользователей

X создает конфигурационные и временные файлы в текущем домашнем каталоге пользователя. Убедитесь в наличии свободного места на разделе, в котором находится домашний каталог. К сожаления, X сервер в этом случае не представляет очевидную информацию о недостатке места.

DRI с картами Matrox перестает работать

Если вы используете карту Matrox и DRI перестал работать после обновления Xorg, попробуйте добавить строку:

Option "OldDmaInit" "On"

в раздел Device, который ссылается на видео карту в xorg.conf.

Проблемы с режимом Фреймбуфер

Если X не запускается со следующим сообщением в журнале,

(WW) Falling back to old probe method for fbdev
(II) Loading sub module "fbdevhw"
(II) LoadModule: "fbdevhw"
(II) Loading /usr/lib/xorg/modules/linux//libfbdevhw.so
(II) Module fbdevhw: vendor="X.Org Foundation"
       compiled for 1.6.1, module version=0.0.2
       ABI class: X.Org Video Driver, version 5.0
(II) FBDEV(1): using default device

Fatal server error:
Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices

Удалите пакет xf86-video-fbdev.

Программа требует «font ‘(null)'»

Сообщение об ошибке: unable to load font `(null)'.

Некоторые программы работают только с растровыми шрифтами. Имеется два крупных пакета с растровыми шрифтами xorg-fonts-75dpi и xorg-fonts-100dpi. Вам не нужны оба; одного будет достаточно. Чтобы выяснить какой будет лучше в вашем случае, попробуйте утилиту xdpyinfo из пакета xorg-xdpyinfo таким образом:

$ xdpyinfo | grep resolution

и используйте тот шрифт, у которого dpi ближе к показанному значению.

Восстановление: отключение Xorg перед входом в GUI

Если Xorg настроен на автозапуск и по какой-то причине вам нужно предотвратить его запуск до менеджера входа/экранного менеджера (например, если ваша система неправильно настроена и Xorg не распознает ввод с помощью мыши или клавиатуры), вы можете решить эту задачу двумя способами.

  • Изменить цель по умолчанию на rescue.target. Для получения дополнительной информации смотрите systemd (Русский)#Изменение цели загрузки по умолчанию.
  • Если у вас не только не исправная система, которая делает Xorg непригодным для использования, но также задержка меню GRUB установлено в ноль, или не как иначе нельзя использовать GRUB для предотвращения загрузки Xorg, вы можете использовать live CD Arch Linux. Следуйте руководство по установке, где монтируется система и используется chroot в установленный Arch Linux. Кроме того, попытайтесь переключиться на другую tty с помощью сочетания клавиш Ctrl+Alt + функциональная клавиша (обычно от F1 до F7 в зависимости от того, какая не используется X), войдите как root и следуйте шагам ниже.

В зависимости от настройки, вам необходимо выполнить один или более шагов:

  • Отключите экранный менеджер.
  • Отключите автозапуск X при входе в систему.
  • Переименуйте файл ~/.xinitrc или закомментируйте линии с exec в нем.

Клиент X запускается с ошибкой «su»

Если вы получаете сообщение «Client is not authorized to connect to server» (Клиент не авторизован для подключения к серверу), попробуйте добавить строку:

session        optional        pam_xauth.so

в /etc/pam.d/su и /etc/pam.d/su-l. Затем pam_xauth правильно установит переменные среды и обработает ключи xauth.

Не удалось запустить X: Ошибка инициализация клавиатуры

Если файловая система (в частности /tmp) заполнена, startx не запустится. В конце журнала /var/log/Xorg.0.log будет:

(EE) Error compiling keymap (server-0)
(EE) XKB: Could not compile keymap
(EE) XKB: Failed to load keymap. Loading default keymap instead.
(EE) Error compiling keymap (server-0)
(EE) XKB: Could not compile keymap
XKB: Failed to compile keymap
Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
Fatal server error:
Failed to activate core devices.
Please consult the The X.Org Foundation support at http://wiki.x.org
for help.
Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(II) AIGLX: Suspending AIGLX clients for VT switch

Освободите место на соответствующей файловой системе, и X сервер запустится.

Зеленый экран при попытке просмотра видео

У вас неправильно установлена цветовая глубина. Например, требуется 24 вместо 16.

Ошибка SocketCreateListener

Если X завершаются с сообщением об ошибке «SocketCreateListener() failed», вам необходимо удалить файлы сокета в /tmp/.X11-unix. Это может происходить после того, как вы ранее запускали Xorg с правами суперпользователя (например, для создания xorg.conf).

Неверный ключ MIT-MAGIC-COOKIE-1 при попытке запустить программу от суперпользователя

Эта ошибка означает, что только текущий пользователь имеет доступ к X-серверу. Решение состоит в том, чтобы предоставить доступ для суперпользователя:

$ xhost +si:localuser:root

Эта строка также может быть использована для предоставления доступа к X другому пользователю, нежели root.

Фатальная ошибка сервера: (EE) AddScreen/ScreenInit

Если Xorg-server не работает случайным образом и в логе Xorg вы видите:

systemd-logind: failed to take device /dev/dri/card0: Operation not permitted
...
AddScreen/ScreenInit failed for driver 0

Тогда, эта пробелема может быть вызвано проблемой systemd #134943. настройте Ранний запуск KMS.

Смотрите также

  • Xplain — подробное объяснение оконной системы X
  • Xorg(1) — справочная страница Xorg
  • Gentoo/Xorg#Configuration — статья о конфигурации Xorg на Gentoo Wiki

Foreword

If you are experiencing a problem with Xorg, please see the common bugs document before filing a bug. Some easy configuration tweaks that fix a wide range of issues are listed there. If the problem you are seeing is not listed there or none of the workarounds seem to help, please consider filing a bug to help us make Fedora run better on your hardware.

Be prepared to include some information (logs) about your system as well. These should be complete (no snippets please), not in an archive, uncompressed, with MIME type set as text/plain.

Identifying your problem area

What driver am I using?

If you do not know already, try to find out what video driver you are using. Examine the output of journalctl -e _COMM=gdm-x-session (Fedora 22+), journalctl -e _COMM=Xorg.bin (Fedora 21) or journalctl -e _COMM=Xorg (Fedora 20 and earlier). Quite early on, you will see some lines like this:

(II) VESA(0): initializing int10
(II) VESA(0): Bad V_BIOS checksum

The word in capital letters after (II) is the name of the driver in use (so, in this case, the word is VESA, indicating the vesa driver is in use). Drivers are packaged with the name xorg-x11-drv-(name), so the vesa driver is in the package Package-x-generic-16.pngxorg-x11-drv-vesa.

If you are using a driver with the name nvidia (not nv or nouveau) or fglrx, you are using a proprietary third-party video driver (respectively, the proprietary drivers provided by NVIDIA and AMD/ATI). Please do not report any bugs in these drivers to Fedora, as we do not provide or support these drivers. Report bugs either to the place where you got these drivers, or to NVIDIA or AMD.

What area might the problem be in?

  • If the problem in question occurs when using 3D-accelerated applications — for instance, Blender, or 3D-accelerated games — the problem is a 3D acceleration issue, and you should include the information outlined in the appropriate section further down this page.
  • If you experience a «lockup», please distinguish what kind of lockup you are seeing. There are three major categories:
    • Mouse moves, and cursor still changes when moving over window borders. This is usually a bug in the window manager’s state machine where it doesn’t let go of a grab in the X server.
    • Mouse moves, but cursor does not change. This is usually the X server being stuck far away from the dispatch loop (position updates happen asynchronously, but glyph updates do not), either waiting on the kernel or in an infinite loop. The X server will probably print a message in the log about the event queue overflowing when this happens; this is _not_ the bug, it is merely the symptom.
    • Mouse doesn’t move. This is the X server being stuck, usually in the kernel (which will not show a backtrace in the X log, but will probably show something in dmesg) but occasionally in an internal deadlock with the cursor update code disabled (which will often show up as a backtrace in the X log).

Information to include in your report

All bug reports

In all cases, the following should be attached to your bug report:

  • All of the X server log messages. Depending on your login manager, these may be in the system journal or in the file /var/log/Xorg.0.log. If /var/log/Xorg.0.log exists and has a recent date stamp, attach it. Otherwise, you can find the messages from the journal with:
    • journalctl -b _COMM=gdm-x-session (Fedora 22+)
    • journalctl -b _COMM=Xorg.bin (Fedora 21)
    • journalctl -b _COMM=Xorg (Fedora 20 and earlier)
    • If you cannot use the system in the affected configuration, but you can use it some other way (e.g. with nomodeset or a different kernel), first boot the affected configuration and reproduce the bug, then boot the unaffected configuration. If your system logs to /var/log/Xorg.0.log, boot to runlevel 3 the second time, so the file does not get overwritten, and attach it. If your system logs to the journal, run the command given above, except with -b-1 instead of -b. -b-1 asks for the output from the previous boot rather than the output from the current boot; you can adjust it as desired if you need logs from more than one boot ago, -b-2 etc.
  • The output of the command su -c 'lspci -nn'
  • If you use a xorg.conf, please include it in the bug report, otherwise, please specify in the bug report that it does not exist. Usually this would be located at /etc/X11/xorg.conf, but see the xorg.conf manpage — man xorg.conf — for other standard locations. Also include any files in the directory /etc/X11/xorg.conf.d
  • X log messages from a trial run where you move your xorg.conf aside and let Xorg autodetect your hardware (if you have such a file)
  • output of the dmesg command after adding the boot parameters drm.debug=14 log_buf_len=16M and rebooting, especially in case of crashes. If you cannot run dmesg in the affected configuration, but you can boot an unaffected configuration, boot the affected configuration with the parameters, then boot the unaffected configuration, run journalctl -b-1 and attach that output
  • Details of your monitor configuration: what monitors you have connected to what ports (e.g. VGA, DVI, HDMI…). Please note if you are using a display switcher

Rendering problems (unreadable text, corrupted display…)

As well as the information from the ‘all bug reports’ section, include the following information:

  • A screenshot showing the problem if at all possible.

Intel-specific

For intel display setup issues (outputs shaky or not lighting up):

  • collect and attach the video ROM for the chip: su -c 'dd if=/dev/mem of=/tmp/rom bs=64k skip=12 count=1'
  • collect and attach the opregion data: su -c 'mount -t debugfs debugfs /sys/kernel/debug' ; cp /sys/kernel/debug/dri/*/i915_opregion /tmp/opregion
  • Collect and attach a register snapshot from the broken configuration: su -c 'intel_reg_snapshot > /tmp/snapshot'

The command intel_reg_snapshot is provided by the Package-x-generic-16.pngintel-gpu-tools package. Note that you may need to ssh into the machine in order to collect this information. In some cases intel_reg_snapshot might fail to run, then please provide output of intel_reg_dumper (if possible, both before and after you see the issue).

For errors indicating a GPU hang:

  • collect and attach the GPU error state: su -c 'mount -t debugfs debugfs /sys/kernel/debug' ; cp /sys/kernel/debug/dri/0/i915_error_state /tmp

You may find the upstream intel driver bug filing instructions useful — much of the information from them is contained here, but there may be additional ideas there.

3D acceleration issues

As well as the information from the ‘all bug reports’ section, include the following information:

  • Output of the command glxinfo (if this is not installed, install the package Package-x-generic-16.pngglx-utils)
  • A screenshot, if possible (if the system has crashed but the display on screen is something other than just blank, take a picture with a digital camera and attach that)
  • Information as to whether or not other OpenGL applications are able to run without problems.
  • Console output from running the application with LIBGL_DEBUG=verbose. For instance, if the bug is in the application glxgears, you would run LIBGL_DEBUG=verbose glxgears from a console, reproduce the problem, and attach any output from the console

Creating a xorg.conf

If you need to make manual changes to X configuration, you will need to create a xorg.conf file if it doesn’t already exist.

Input devices

Debugging of input devices is covered by a special wiki page.

Stack traces

You will need a stack trace if your X server crashes. You should be able to submit one to bugzilla by running Automatic Bug Reporting Tool (gnome-abrt) and selecting the relevant crash from System crashes (if abrtd was running and noticed the crash). If not, see the documentation on the upstream wiki.

  • Печать

Страницы: [1]   Вниз

Тема: Как создать системный журнал (syslog) и журнал Xorg.0.log  (Прочитано 1083 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
alex-sky

При выполнении команды

cat /var/log/syslog | egrep -i "(error|fail|warning)"
получаю ошибку

cat: /var/log/syslog: No such file or directory

При выполнении команды

cat /var/log/Xorg.0.log | egrep -i "(error|fail|warning)"
получаю ошибку

Я работаю с системой, из Windows через Putty по SSH туннелю, X-ming запущен и при запуске через консоль программ имеющих графический интерфейс, графика пробрасывается и нормально отображается
 На сомой Ubuntu, к которой подключаюсь, запущен vnc-server.

Информация о системе

1.

2.

Linux localhost 3.4.0 #1 SMP PREEMPT Tue Jul 29 10:26:32 CST 2014 armv7l armv7l armv7l GNU/Linux

Почему эти журналы не были созданы автоматически, и как создать системный журнал (syslog) и  журнал Xorg.0.log ?
Или это какая-то урезанная версия Ubuntu ?


ТС не появлялся на Форуме более полугода по состоянию на 15/07/2019 (последняя явка: 03/11/2017). Модератором раздела принято решение закрыть тему.
—zg_nico

« Последнее редактирование: 15 Июля 2019, 00:17:29 от zg_nico »


Оффлайн
symon.2014


Оффлайн
alex-sky

добавь sudo

не помогает..

Таких файлов по указанному пути просто нет, а почему ???


Оффлайн
symon.2014


Оффлайн
alex-sky

Вот вывод

alternatives.log 
btmp       
dpkg.log
fsck     
upstart
apt               
ConsoleKit 
faillog         
lastlog 
wtmp
bootstrap.log     
dmesg       
fontconfig.log 
samba

Ubuntu стоит в chroot контейнере


Оффлайн
xuser73

как настроено логгирование в syslog? Может быть оно вовсе выключено? Настройки можно посмотреть в файлах, находящихся в папке /etc/rsyslog.d

Настоящему коту всегда март.


Оффлайн
alex-sky

Вот содержание файла.

/etc/rsyslog.d/50-default.conf

А как узнать, что логгирование отключено?


  • Печать

Страницы: [1]   Вверх

Невозможно представить себе пользователя и администратора сервера, или даже рабочей станции на основе Linux, который никогда не читал лог файлы. Операционная система и работающие приложения постоянно создают различные типы сообщений, которые регистрируются в различных файлах журналов. Умение определить нужный файл журнала и что искать в нем поможет существенно сэкономить время и быстрее устранить ошибку.

Журналирование является основным источником информации о работе системы и ее ошибках. В этом кратком руководстве рассмотрим основные аспекты журналирования операционной системы, структуру каталогов, программы для чтения и обзора логов.

Основные лог файлы

Все файлы журналов, можно отнести к одной из следующих категорий:

  • приложения;
  • события;
  • службы;
  • системный.

Большинство же лог файлов содержится в директории /var/log.

  • /var/log/syslog или /var/log/messages содержит глобальный системный журнал, в котором пишутся сообщения с момента запуска системы, от ядра Linux, различных служб, обнаруженных устройствах, сетевых интерфейсов и много другого.
  • /var/log/auth.log или /var/log/secure — информация об авторизации пользователей, включая удачные и неудачные попытки входа в систему, а также задействованные механизмы аутентификации.
  • /var/log/dmesg — драйвера устройств. Одноименной командой можно просмотреть вывод содержимого файла. Размер журнала ограничен, когда файл достигнет своего предела, старые сообщения будут перезаписаны более новыми. Задав ключ --level= можно отфильтровать вывод по критерию значимости.

Поддерживаемые уровни журналирования (приоритеты):

emerg — система неиспользуемая
alert — действие должно быть произведено немедленно
crit — условия критичности
err — условия ошибок
warn — условия предупреждений
notice — обычные, но значимые условия
info — информационный
debug — отладочные сообщения

(5:520)$ dmesg -l err
[1131424.604352] usb 1-1.1: 2:1: cannot get freq at ep 0x1
[1131424.666013] usb 1-1.1: 1:1: cannot get freq at ep 0x81
[1131424.749378] usb 1-1.1: 1:1: cannot get freq at ep 0x81

  • /var/log/alternatives.log — Вывод программы update-alternatives, в котором находятся символические ссылки на команды или библиотеки по умолчанию.
  • /var/log/anaconda.log — Записи, зарегистрированные во время установки системы.
  • /var/log/audit — Записи, созданные службой аудита auditd.
  • /var/log/boot.log — Информация, которая пишется при загрузке операционной системы.
  • /var/log/cron — Отчет службы crond об исполняемых командах и сообщения от самих команд.
  • /var/log/cups — Все, что связано с печатью и принтерами.
  • /var/log/faillog — Неудачные попытки входа в систему. Очень полезно при проверке угроз в системе безопасности, хакерских атаках, попыток взлома методом перебора. Прочитать содержимое можно с помощью команды faillog.
  • var/log/kern.log — Журнал содержит сообщения от ядра и предупреждения, которые могут быть полезны при устранении ошибок пользовательских модулей встроенных в ядро.
  • /var/log/maillog/ или /var/log/mail.log — Журнал почтового сервера, используемого на ОС.
  • /var/log/pm-powersave.log — Сообщения службы экономии заряда батареи.
  • /var/log/samba/ — Логи файлового сервера Samba, который используется для доступа к общим папкам Windows и предоставления доступа пользователям Windows к общим папкам Linux.
  • /var/log/spooler — Для представителей старой школы, содержит сообщения USENET. Чаще всего бывает пустым и заброшенным.
  • /var/log/Xorg.0.log — Логи X сервера. Чаще всего бесполезны, но если в них есть строки начинающиеся с EE, то следует обратить на них внимание.

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

  • /var/log/yum.log — Для программ установленных с помощью Yum в RedHat Linux.
  • /var/log/emerge.log — Для ebuild-ов установленных из Portage с помощью emerge в Gentoo Linux.
  • /var/log/dpkg.log — Для программ установленных с помощью dpkg в Debian Linux и всем семействе родственных дистрибутивах.

И немного бинарных журналов учета пользовательских сессий.

  • /var/log/lastlog — Последняя сессия пользователей. Прочитать можно командой last.
  • /var/log/tallylog — Аудит неудачных попыток входа в систему. Вывод на экран с помощью утилиты pam_tally2.
  • /var/log/btmp — Еже один журнал записи неудачных попыток входа в систему. Просто так, на всякий случай, если вы еще не догадались где следует искать следы активности взломщиков.
  • /var/log/utmp — Список входов пользователей в систему на данный момент.
  • /var/log/wtmp — Еще один журнал записи входа пользователей в систему. Вывод на экран командой utmpdump.

(5:535)$ sudo utmpdump /var/log/wtmp
[5] [02187] [l0 ] [ ] [4.0.5-gentoo ] [0.0.0.0 ] [Вт авг 11 16:50:07 2015]
[1] [00000] [~~ ] [shutdown] [4.0.5-gentoo ] [0.0.0.0 ] [Вт авг 11 16:50:08 2015]
[2] [00000] [~~ ] [reboot ] [3.18.12-gentoo ] [0.0.0.0 ] [Вт авг 11 16:50:57 2015]
[8] [00368] [rc ] [ ] [3.18.12-gentoo ] [0.0.0.0 ] [Вт авг 11 16:50:57 2015]
[1] [20019] [~~ ] [runlevel] [3.18.12-gentoo ] [0.0.0.0 ] [Вт авг 11 16:50:57 2015]

И другие журналы

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

  • /var/log/mysql/ — Лог базы данных MySQL.
  • /var/log/httpd/ или /var/log/apache2/ — Лог веб сервера Apache, журнал доступа находится в access_log, а ошибки — в error_log.
  • /var/log/lighthttpd/ — Лог веб сервера lighttpd.

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

  • ~/.xsession-errors — Вывод stderr графических приложений X11.

Initializing "kcm_input" : "kcminit_mouse"
Initializing "kcm_access" : "kcminit_access"
Initializing "kcm_kgamma" : "kcminit_kgamma"
QXcbConnection: XCB error: 3 (BadWindow), sequence: 181, resource id: 10486050, major code: 20 (GetProperty), minor code: 0
kf5.kcoreaddons.kaboutdata: Could not initialize the equivalent properties of Q*Application: no instance (yet) existing.
QXcbConnection: XCB error: 3 (BadWindow), sequence: 181, resource id: 10486050, major code: 20 (GetProperty), minor code: 0
Qt: Session management error: networkIdsList argument is NUL

  • ~/.xfce4-session.verbose-log — Сообщения рабочего стола XFCE4.

Чем просматривать — lnav

Почти все знают об утилите less и команде tail -f. Также для этих целей сгодится редактор vim и файловый менеджер Midnight Commander. У всех есть свои недостатки: less неважно обрабатывает журналы с длинными строками, принимая их за бинарники. Midnight Commander годится только для беглого просмотра, когда нет необходимости искать по сложному шаблону и переходить помногу взад и вперед между совпадениями. Редактор vim понимает и подсвечивает синтаксис множества форматов, но если журнал часто обновляется, то появляются отвлекающие внимания сообщения об изменениях в файле. Впрочем это легко можно обойти с помощью <:view /path/to/file>.

Недавно я обнаружил еще одну годную и многообещающую, но слегка еще сыроватую, утилиту — lnav, в расшифровке Log File Navigator.

Установка пакета как обычно одной командой.

$ aptitude install lnav #Debian/Ubuntu/LinuxMint
$ yum install lnav #RedHat/CentOS
$ dnf install lnav #Fedora
$ emerge -av lnav #Gentoo, нужно добавить в файл package.accept_keywords
$ yaourt -S lnav #Arch

Навигатор журналов lnav понимает ряд форматов файлов.

  • Access_log веб сервера.
  • CUPS page_log
  • Syslog
  • glog
  • dpkg.log
  • strace
  • Произвольные записи с временными отметками
  • gzip, bzip
  • Журнал VMWare ESXi/vCenter

Что в данном случае означает понимание форматов файлов? Фокус в том, что lnav больше чем утилита для просмотра текстовых файлов. Программа умеет кое что еще. Можно открывать несколько файлов сразу и переключаться между ними.

(5:471)$ sudo lnav /var/log/pm-powersave.log /var/log/pm-suspend.log

Программа умеет напрямую открывать архивный файл.

(5:471)$ lnav -r /var/log/Xorg.0.log.old.gz

Показывает гистограмму информативных сообщений, предупреждений и ошибок, если нажать клавишу <i>. Это с моего syslog-а.

Mon May 02 20:25:00 123 normal 3 errors 0 warnings 0 marks
Mon May 02 22:40:00 2 normal 0 errors 0 warnings 0 marks
Mon May 02 23:25:00 10 normal 0 errors 0 warnings 0 marks
Tue May 03 07:25:00 96 normal 3 errors 0 warnings 0 marks
Tue May 03 23:50:00 10 normal 0 errors 0 warnings 0 marks
Wed May 04 07:40:00 96 normal 3 errors 0 warnings 0 marks
Wed May 04 08:30:00 2 normal 0 errors 0 warnings 0 marks
Wed May 04 10:40:00 10 normal 0 errors 0 warnings 0 marks
Wed May 04 11:50:00 126 normal 2 errors 1 warnings 0 marks

Кроме этого поддерживается подсветка синтаксиса, дополнение по табу и разные полезности в статусной строке. К недостаткам можно отнести нестабильность поведения и зависания. Надеюсь lnav будет активно развиваться, очень полезная программа на мой взгляд.

Table of Contents

  • Лог ядра
  • syslog
  • Логи Xorg
  • ~/.xsession-errors
  • wine
  • Запись выхлопа программы в файл
  • Загрузка логов
    • Обычная ситуация
    • Загрузка из командной строки

Лог ядра

В него попадают все сообщения, связанные с драйверами и оборудованием.

Посмотреть его можно командой:

dmesg

Или, лучше:

dmesg | less

(тогда текст можно будет прокручивать стрелками на клавиатуре; для выхода нажмите q)

Чтобы сохранить этот лог в файл, наберите:

dmesg > /путь/к/файлу.txt

Обычно подходящей является команда вида:

dmesg > ~/dmesg.txt

(файл dmesg.txt появляется в домашней директории пользователя, откуда его можно загрузить)

syslog

В этот лог пишут свои сообщения все демоны, запущенные на компьютере. Возможно, для своих собственных сообщений у них есть и свои логи, но наиболее важные сообщения могут быть продублированы и в syslog. Кроме того, syslog (демон, собирающий и записывающий логи) может быть настроен так, чтобы и собирать лог ядра тоже.

Хранится он обычно в файлах:

/var/log/messages - сообщения почти от всего
/var/log/syslog - сообщения от всего, включая ядро (может отсутствовать в используемом дистрибутиве)
/var/log/kern.log - сообщения ядра
/var/log/auth.log - информация о входе в систему

Логи Xorg

Лог-файл /var/log/Xorg.0.log создаётся при запуске Xorg. Обычно нужно смотреть именно его, но если у Вас вдруг упали иксы, после чего Вы снова воспользовались графическим логином, этот лог смотреть не нужно: в нём находится информация о текущем сеансе. Вместо этого загляните в /var/log/Xorg.0.log.old

~/.xsession-errors

Скрытый файл .xsession-errors, хранящийся в домашней директории, содержит весь вывод запускаемых в X-сессии приложений, который они бы написали в терминал, будучи оттуда запущенными. Чтобы увидеть его, включите в используемом файловом менеджере показ скрытых файлов (кстати, их на самом деле полно в домашней директории) или введите имя файла вручную:

less ~/.xsession-errors

wine

Иногда требуется посмотреть выхлоп, который пишет wine при запуске программы для Windows. Обычно он, как и всё остальное, попадает в ~/.xsession-errors, но удобнее будет вычленить его запуском из командной строки:

cd /где/лежит/программа
wine file.exe  >~/wine.log  2>&1

(лог сохранится в файле wine.log в домашней директории пользователя)

Первая команда (cd /где/лежит/программа) необходима почти всегда, чтобы программа, ориентируясь по текущей директории, могла подгрузить необходимые для своей работы DLL’ки.

Запись выхлопа программы в файл

Чтобы записать то, что программа выводит в терминал, в файл, запустите её таким образом:

 some-command 2>&1 > /путь/к/файлу

Если при этом необходимо ещё и наблюдать за тем, что она выводит, воспользуйтесь утилитой tee:

 some-command 2>&1 | tee /путь/к/файлу

(подробнее см. man tee)

Загрузка логов

Обычная ситуация

Приложение многокилометровых логов прямо к комментарию является не лучшей идеей. Если лог состоит из нескольких строчек, его можно приложить, обернув тегами [code]…/code и включив режим LORCODE под полем для ввода сообщения. Более длинные файлы нужно загружать на специальные хостинги текстов, вроде paste.kde.org (объединяются общим названием Pastebin).

Использование: просто зайдите на сайт, в большое текстовое поле скопируйте текст, нажмите кнопку «Paste», «Submit» или другую, которая окажется на этом сайте, дождитесь загрузки и скопируйте ссылку в ответ на просьбу показать логи.

Загрузка из командной строки

Что делать, если иксы упали, и любимый бразуер запустить невозможно, но подключение к сети, кажется, ещё работает?
Попробуйте воспользоваться pastebinit (есть в репозитории большинства популярных дистрибутивов) или wgetpaste (просто скачайте, распакуйте и запустите).

Примеры использования:

wgetpaste /var/log/syslog
pastebinit /var/log/messages
dmesg | wgetpaste
cat /var/log/Xorg.* | pastebinit

1. Overview

The Linux operating system, and many applications that run on it, do a lot of logging. These logs are invaluable for monitoring and troubleshooting your system.

What you’ll learn

  • Viewing logs with a simple GUI tool
  • Basic command-line commands for working with log files

What you’ll need

  • Ubuntu Desktop or Server
  • Very basic command-line knowledge (cd, ls, etc.)

Originally authored by Ivan Fonseca.

How will you use this tutorial?

    Only read through it
    Read it and complete the exercises

What is your current level of experience?

    Novice
    Intermediate
    Proficient

2. Log files locations

There are many different log files that all serve different purposes. When trying to find a log about something, you should start by identifying the most relevant file. Below is a list of common log file locations.

System logs

System logs deal with exactly that — the Ubuntu system — as opposed to extra applications added by the user. These logs may contain information about authorizations, system daemons and system messages.

Authorization log

Location: /var/log/auth.log

Keeps track of authorization systems, such as password prompts, the sudo command and remote logins.

Daemon Log

Location: /var/log/daemon.log

Daemons are programs that run in the background, usually without user interaction. For example, display server, SSH sessions, printing services, bluetooth, and more.

Debug log

Location: /var/log/debug

Provides debugging information from the Ubuntu system and applications.

Kernel log

Location: /var/log/kern.log

Logs from the Linux kernel.

System log

Location: /var/log/syslog

Contains more information about your system. If you can’t find anything in the other logs, it’s probably here.

Application logs

Some applications also create logs in /var/log. Below are some examples.

Apache logs

Location: /var/log/apache2/ (subdirectory)

Apache creates several log files in the /var/log/apache2/ subdirectory. The access.log file records all requests made to the server to access files. error.log records all errors thrown by the server.

X11 server logs

Location: /var/log/Xorg.0.log

The X11 server creates a seperate log file for each of your displays. Display numbers start at zero, so your first display (display 0) will log to Xorg.0.log. The next display (display 1) would log to Xorg.1.log, and so on.

Non-human-readable logs

Not all log files are designed to be read by humans. Some were made to be parsed by applications. Below are some of examples.

Login failures log

Location: /var/log/faillog

Contains info about login failures. You can view it with the faillog command.

Last logins log

Location: /var/log/lastlog

Contains info about last logins. You can view it with the lastlog command.

Login records log

Location: /var/log/wtmp

Contains login info used by other utilities to find out who’s logged in. To view currently logged in users, use the who command.

This is not an exhaustive list!
You can search the web for more locations relevant to what you’re trying to debug. There is also a longer list here.


3. Viewing logs using GNOME System Log Viewer

The GNOME System Log Viewer provides a simple GUI for viewing and monitoring log files. If you’re running Ubuntu 17.10 or above, it will be called Logs. Otherwise, it will be under the name System Log.

System Log Viewer interface

GNOME System Log Viewer Interface

The log viewer has a simple interface. The sidebar on the left shows a list of open log files, with the contents of the currently selected file displayed on the right.

The log viewer not only displays but also monitors log files for changes. The bold text (as seen in the screenshot above) indicates new lines that have been logged after opening the file. When a log that is not currently selected is updated, it’s name in the file list will turn bold (as shown by auth.log in the screenshot above).

Clicking on the cog at the top right of the window will open a menu allowing you to change some display settings, as well as open and close log files.

There is also a magnifying glass icon to the right of the cog that allows you to search within the currently selected log file.

More information

If you wish to learn more about the GNOME System Log Viewer, you may visit the official documentation.


4. Viewing and monitoring logs from the command line

It is also important to know how to view logs in the command line. This is especially useful when you’re remotely connected to a server and don’t have a GUI.

The following commands will be useful when working with log files from the command line.

Viewing files

The most basic way to view files from the command line is using the cat command. You simply pass in the filename, and it outputs the entire contents of the file: cat file.txt.

This can be inconvenient when dealing with large files (which isn’t uncommon for logs!). We could use an editor, although that may be overkill just to view a file. This is where the less command comes in. We pass it the filename (less file.txt), and it will open the file in a simple interface. From here, we can use the arrow keys (or j/k if you’re familiar with Vim) to move through the file, use / to search, and press q to quit. There are a few more features, all of which are described by pressing h to open the help.

Viewing the start or end of a file

We may also want to quickly view the first or last n number of lines of a file. This is where the head and tail commands come in handy. These commands work much like cat, although you can specify how many lines from the start/end of the file you want to view. To view the first 15 lines of a file, we run head -n 15 file.txt, and to view the last 15, we run tail -n 15 file.txt. Due to the nature of log files being appended to at the bottom, the tail command will generally be more useful.

Monitoring files

To monitor a log file, you may pass the -f flag to tail. It will keep running, printing new additions to the file, until you stop it (Ctrl + C). For example: tail -f file.txt.

Searching files

One way that we looked at to search files is to open the file in less and press /. A faster way to do this is to use the grep command. We specify what we want to search for in double quotes, along with the filename, and grep will print all the lines containing that search term in the file. For example, to search for lines containing “test” in file.txt, you would run grep "test" file.txt.

If the result of a grep search is too long, you may pipe it to less, allowing you to scroll and search through it: grep "test" file.txt | less.

Editing files

The simplest way to edit files from the command line is to use nano. nano is a simple command line editor, which has all the most useful keybindings printed directly on screen. To run it, just give it a filename (nano file.txt). To close or save a file, press Ctrl + X. The editor will ask you if you want to save your changes. Press y for yes or n for no. If you choose yes, it will ask you for the filename to save the file as. If you are editing an existing file, the filename will already be there. Simply leave it as it is and it will save to the proper file.


5. Conclusion

Congratulations, you now have enough knowledge of log file locations, usage of the GNOME System Log Viewer and basic command line commands to properly monitor and trouble-shoot problems that arise on your system.

Further reading

  • The Ubuntu Wiki has an article that goes more in-depth into Ubuntu log files.
  • This DigitalOcean Community article covers viewing Systemd logs

Was this tutorial useful?

Thank you for your feedback.


Понравилась статья? Поделить с друзьями:
  • Var log cups error log
  • Var log apache2 error log
  • Vaquerysurfaceattributes failed va error invalid parameter
  • Vaporesso xtra течет картридж как исправить
  • Vaporesso osmal автофаер как исправить