1s linux включить отладку на сервере 1s

Обновлено: 21.11.2024

Как узнать, установлены ли в стандартном ядре моей версии Linux флаги DEBUG KERNEL ENABLED или нет??

Я думаю, что опция DEBUG должна быть включена, чтобы использовать такие инструменты, как kprobe, systemtap ??

5 ответов 5

Предполагая, что в ядре есть функция "предоставить конфигурацию через proc", вы можете проверить конфигурацию работающего ядра, заглянув в /proc/config.gz

Чтобы узнать, как было сконфигурировано ваше ядро, проверьте каталог /boot/. В зависимости от того, как работает ваш дистрибутив, может быть файл config-*, который показывает параметры конфигурации ядра, которые использовались для сборки ядра. Найдите параметры отладки (например, CONFIG_DEBUG_KERNEL ).

Если это RHEL/CentOS/Fedora:

Конфигурация ядра находится внутри пакета kernel-devel.

Конкретная конфигурация, используемая Red Hat для сборки ядра вашего дистрибутива, хранится в /usr/src/kernels/версия/.config.

В RHEL 5 вы также можете проверить все драйверы, установленные на сервере через ядро, следующим образом:

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

Также lsmod | больше должно делать также. Надеюсь, это поможет.

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

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

Вы можете просмотреть список модулей, скомпилированных в ядро, с помощью команды lsmod.

lsmod перечисляет модули, загруженные в настоящее время в ядро. сюда входят модули, скомпилированные как динамически загружаемые модули.

Поэтому для отладки ядра мне нужно снова собрать новое ядро ​​со всеми включенными флагами отладки ядра ?? Есть ли другой способ включить их??

@codingfreak, я не думаю, что есть другой способ включить флаг отладки ядра. Вы должны пересобрать ядро, если для него не включены параметры отладки.

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

Когда что-то пойдет не так, всегда лучше иметь версию демона mysqld, которая не была удалена.

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

Отладка потребления памяти с помощью tcmalloc

Если у вас есть проблема с процессом mysqld, который продолжает расти, вы можете использовать tcmalloc, чтобы узнать, что выделяет память:

В зависимости от системы вам необходимо установить пакет tcmalloc (OpenSuse) или google-perftools-lib (RedHat, Centos).

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

или если вы предпочитаете напрямую вызывать mysqld:

Конечно, вы можете добавить другие параметры mysqld в конец строки выше.

Теперь запустите клиент/приложение, использующее MariaDB. Вы можете найти, где выделяется память, в файле /tmp/mysqld.prof. Если вы обнаружите какие-либо проблемы с памятью, сообщите об этом в системе отслеживания ошибок MariaDB!

Защита ptrace и подключение GDB к экземпляру mysqld

Новые выпуски Ubuntu не позволяют одному процессу исследовать память произвольного пользовательского процесса. В результате при попытке подключить GDB к работающему экземпляру MariaDB (или любому другому процессу) в GDB возникает следующая ошибка:

Более подробная информация доступна в Ubuntu Wiki.

Чтобы разрешить подключение GDB, необходимо отредактировать значение sysctl /proc/sys/kernel/yama/ptrace_scope.

  • Чтобы временно изменить его, откройте корневую оболочку и введите:
  • Чтобы изменить его навсегда, отредактируйте его как root: и установите значение 0 .

Отладка зависшего сервера

Если ваш сервер mysqld завис, вы можете отладить его, чтобы узнать, что произошло.

Желательно, чтобы сервер был скомпилирован для отладки, но это не обязательно:

Чтобы узнать, что делает сервер:

  • Узнайте номер процесса mysqld
  • Присоединиться к процессу и получить обратную трассировку:

После этого у вас есть полная обратная трассировка, включая все локальные переменные, в файле mysqld.log. Обратите внимание, что вы получите все переменные только в том случае, если сервер не очищен.

Комментарии

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

В этой статье мы покажем вам, как включить режим отладки при работе с SSH в Linux.Это позволит вам увидеть, что на самом деле происходит, когда вы выполняете команду ssh для подключения к удаленному серверу Linux, используя подробный режим или режим отладки.

Переключатель -v клиента ssh позволяет запускать ssh в подробном режиме, который выводит отладочную информацию о ходе выполнения соединения SSH, что действительно полезно для отладки соединений, проверки подлинности и любых проблем с конфигурацией. Существуют разные уровни детализации; использование нескольких флагов -v увеличивает уровень детализации (максимальный уровень детализации — 3).

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

Пример вывода

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

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

Вот оно! Подробнее об использовании SSH читайте в следующих статьях по теме.

Мы надеемся, что эта статья окажется для вас полезной. Вы можете задать любые вопросы или поделиться мыслями через форму комментариев ниже.

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Похожие записи

5 мыслей о «Включите режим отладки в SSH для устранения проблем с подключением»

Если есть способ отладки SSH-соединений со стороны сервера, было бы полезно обсудить это в статье. Я могу надежно подключиться к своей Linux-машине по SSH, но Oracle MySQL Workbench, клиент БД, не может подключиться через TCP/IP через SSH. У меня возникла какая-то проблема с подключением, но я не могу перевести Oracle MySQL Workbench в режимы отладки, аналогичные режимам клиента SSH. Было бы очень полезно отслеживать попытки SSH-подключений с сервера.

В /etc/ssh/sshd_config измените LogLevel INFO на LogLevel DEBUG3 и перезапустите sshd.

Поддержка этой версии Operations Manager подошла к концу, мы рекомендуем вам перейти на Operations Manager 2022.

System Center — Operations Manager обеспечивает мониторинг компьютеров UNIX и Linux, аналогичный мониторингу компьютеров Windows. Вы можете отслеживать работоспособность, производительность, получать отчеты, запускать задачи и внедрять настраиваемые инструменты мониторинга.

Вы можете контролировать следующие аспекты компьютеров UNIX и Linux:

Сервисы и приложения

Файловая система, место на диске, пространство подкачки, системная память

Основные процессы и атрибуты

Прежде чем вы сможете отслеживать компьютеры UNIX и Linux, необходимо выполнить следующие шаги:

  1. Импортируйте пакеты управления, загрузив последние версии из Центра загрузки Майкрософт для мониторинга компьютеров UNIX и Linux для каждого сервера управления в пуле.
  2. Создание и настройка учетных записей запуска от имени
  3. Установите агент в UNIX и Linux с помощью мастера обнаружения

После выполнения описанных выше действий и успешного обнаружения и развертывания агента на одном или нескольких компьютерах UNIX и Linux необходимо убедиться, что они отслеживаются правильно. После развертывания агента учетные записи запуска от имени используются для выполнения обнаружений с использованием применимых правил обнаружения, а затем запускают мониторинг.Через несколько минут в рабочей области «Администрирование» перейдите к «Управление устройствами»/«Компьютеры UNIX/Linux» и убедитесь, что компьютеры не указаны в списке «Неизвестно». Они должны быть обнаружены и показывать конкретную версию ОС и дистрибутива.

По умолчанию Operations Manager отслеживает следующие объекты операционной системы:

  • Операционная система
  • Логический диск
  • Сетевые адаптеры

Вы можете предоставить дополнительные возможности мониторинга и взаимодействия с управляемыми компьютерами UNIX и Linux, используя шаблоны пакетов мониторинга UNIX и Linux. Дополнительные сведения см. в разделах «Файл журнала UNIX или Linux» и «Процесс UNIX или Linux» в Руководстве по авторскому праву.

Устранение неполадок мониторинга UNIX и Linux

В следующем разделе представлена ​​информация о проблемах, которые могут возникнуть при мониторинге компьютеров UNIX и Linux в Operations Manager.

Сообщение об ошибке подписи сертификата

Во время установки агентов UNIX/Linux может появиться следующая ошибка.

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

Если вы видите эту ошибку, сделайте следующее:

Убедитесь, что демон SSH на удаленном узле запущен.

Убедитесь, что вы можете открыть сеанс SSH с удаленным хостом, используя учетные данные, указанные в мастере обнаружения.

Убедитесь, что учетные данные, указанные в мастере обнаружения, имеют необходимые привилегии для обнаружения. Дополнительные сведения см. в разделе Учетные данные, необходимые для доступа к компьютерам UNIX и Linux.

Имя сертификата и имя хоста не совпадают

Общее имя (CN), используемое в сертификате, должно совпадать с полным доменным именем (FQDN), разрешенным Operations Manager. Если CN не совпадает, вы увидите следующую ошибку при запуске мастера обнаружения:

Вы можете просмотреть основные сведения о сертификате на компьютере UNIX или Linux, введя следующую команду:

Когда вы это сделаете, вы увидите вывод, похожий на следующий:

Проверьте имена хостов и даты и убедитесь, что они соответствуют имени, разрешаемому сервером управления Operations Manager.

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

Если имя хоста UNIX или Linux правильное, но сервер управления Operations Manager разрешает его неправильно, либо измените запись DNS, чтобы она соответствовала правильному полному доменному имени, либо добавьте запись в файл hosts на сервере Operations Manager.

Если имя хоста UNIX или Linux неверно, выполните одно из следующих действий:

Измените имя хоста на хосте UNIX или Linux на правильное и создайте новый сертификат.

Создайте новый сертификат с нужным именем хоста.

Чтобы изменить имя сертификата:

Если сертификат был создан с неверным именем, вы можете изменить имя хоста и повторно создать сертификат и закрытый ключ. Для этого выполните следующую команду на компьютере UNIX или Linux:

Параметр -f принудительно перезаписывает файлы в /etc/opt/microsoft/scx/ssl.

Вы также можете изменить имя хоста и доменное имя в сертификате, используя ключи -h и -d, как в следующем примере:

Перезапустите агент, выполнив следующую команду:

Чтобы добавить запись в файл hosts:

Если полное доменное имя не находится в обратном DNS, вы можете добавить запись в файл hosts, расположенный на сервере управления, чтобы обеспечить разрешение имен. Файл hosts находится в папке Windows\System32\Drivers\etc. Запись в файле hosts представляет собой комбинацию IP-адреса и полного доменного имени.

Например, чтобы добавить запись для хоста с именем "newhostname.newdomain.name" и IP-адресом 192.168.1.1, добавьте в конец файла hosts следующее:

Проблемы с пакетом управления

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

При использовании псевдонима или оператора конвейера с параметром ExecuteCommand команда завершается ошибкой. Параметр ExecuteCommand не поддерживает оператор конвейера, псевдонимы и синтаксис оболочки.

В пакетах управления System Center Operations Manager, предназначенных для управления компьютерами UNIX и Linux, параметр ExecuteCommand не запускает процесс оболочки, что приводит к сбою настраиваемого действия.

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

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

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

Параметр ExecuteShellCommand использует оболочку по умолчанию пользователя, выполняющего команду. Если вам требуется конкретная оболочка, используйте параметр ExecuteCommand и добавьте к аргументам команды префикс требуемой оболочки.

В следующих примерах показано, как использовать параметры ExecuteCommand и ExecuteShellCommand:

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

состояние системного журнала службы

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

/bin/sh ps -ef системный журнал | grep -v grep

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

Ведение журнала и отладка

В этом разделе описывается, как включить инструменты ведения журнала и отладки для устранения неполадок с мониторингом компьютеров UNIX и Linux.

В Operations Manager 2019 UR3 параметры уровня журнала можно изменить без перезапуска агента. Узнать больше.

Вы можете изменить настройки уровня журнала без перезапуска агента. Узнать больше.

Включить ведение журнала модуля Operations Manager

Агенты Operations Manager для UNIX и Linux поддерживают несколько файлов журналов, которые могут быть полезны при устранении неполадок клиентов. Эти файлы журналов расположены на управляемом компьютере UNIX или Linux. Уровень ведения журнала для файлов журнала агента можно настроить по мере необходимости. Более подробный журнал может быть полезен при диагностике проблемы. Для нормальной работы уровни журналов не должны быть более подробными, чем настройки по умолчанию (промежуточные), чтобы предотвратить чрезмерный рост файла журнала

Вызовы за пределами Windows Remote Management (WinRM) выполняются с использованием SSH/SFTP. Эти компоненты используют отдельный механизм ведения журнала, отличный от Operations Manager.

Уровень ведения журнала для файла журнала omiserver.log не может быть изменен по умолчанию в этой версии агентов Operations Manager для UNIX и Linux.

Создайте пустой файл с именем EnableOpsmgrModuleLogging в каталоге Temp для учетной записи пользователя, вызывающей эти модули, введя в командной строке или приглашении PowerShell:

Как правило, вызовы совершает СИСТЕМНАЯ учетная запись, а C:\Windows\Temp является временной папкой СИСТЕМЫ по умолчанию.

После создания пустого файла Operations Manager немедленно начнет регистрировать действия SSH и сертификатов в каталоге Temp. Сценарии, которые вызывают модули SSH, будут записываться в .log. Другие модули имеют собственные журналы.

В некоторых случаях может потребоваться перезапустить HealthService, чтобы ведение журнала EnableOpsmgrModuleLogging вступило в силу.

Включить ведение журнала для агента UNIX

Эти журналы сообщают о действиях агента UNIX. Если возникла проблема с данными, возвращаемыми в Operations Manager, просмотрите этот журнал. Вы можете установить объем регистрируемой информации с помощью команды scxadmin. Синтаксис этой команды:

scxadmin -log-set [все|cimom|поставщик]

В следующей таблице перечислены возможные значения параметров:

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

Использование DebugView для устранения проблем с обнаружением

DebugView — это альтернативный метод EnableOpsmgrModuleLogging для устранения проблем с обнаружением.

Запустите DebugView на сервере управления, выполняющем обнаружение.

Начните обнаружение агентов UNIX. Вы должны начать видеть вывод в окнах DebugView.

DebugView будет отображать пошаговое описание процесса работы мастера обнаружения. Часто это самый быстрый способ устранения проблем с обнаружением.

Включить ведение журнала Operations Manager для удаленного управления Windows

Этот подробный метод трассировки используется для просмотра запросов удаленного управления Windows (WinRM), используемых Operations Manager для сбора данных от агента. Если вы подозреваете, что с подключением WinRM возникла проблема, этот журнал содержит подробную информацию, которая может помочь в устранении неполадок.

На сервере управления, который отслеживает агент UNIX или Linux, откройте командную строку.

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

cd C:\Program Files\Microsoft System Center\Operations Manager\Tools

Воспроизведите неисправность в Operations Manager.

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

Найдите WS-Man в файле TracingGuidsNative.log.

WinRM также известен как WS-Management (WS-Man).

Команда FormatTracing открывает окно проводника Windows, в котором отображается каталог C:\Windows\Temp\OpsMgrTrace. Файл TracingGuidsNative.log находится в этом каталоге.

Управление файлами журналов UNIX и Linux

Агенты Operations Manager для UNIX и Linux не ограничивают размер файлов журнала агента. Чтобы управлять максимальным размером файлов журнала, реализуйте процесс управления файлами журнала. Например, стандартная утилита logrotate доступна во многих операционных системах UNIX и Linux. Утилиту logrotate можно настроить для управления файлами журналов, используемыми агентами Operations Manager для UNIX или Linux. После ротации или изменения файлов журнала агента агент должен быть проинформирован о ротации журналов, чтобы возобновить ведение журнала. Команду scxadmin можно использовать с параметром -log-rotate со следующим синтаксисом:

scxadmin -log-rotate all

Пример файла конфигурации Logrotate

В следующем примере демонстрируется файл конфигурации для ротации файлов scx.log, а также omiserver.log с помощью утилиты logrotate в Linux. Как правило, logrotate запускается как запланированное задание (с помощью crond) и действует на файлы конфигурации, найденные в /etc/logrotate.d. Чтобы протестировать и использовать этот файл конфигурации, измените его в соответствии с вашей средой и свяжите или сохраните файл в /etc/logrotate.d .

Дальнейшие шаги

Для получения дополнительных рекомендаций по устранению распространенных проблем с развертыванием агентов ознакомьтесь с вики-страницей Operations Manager 2012 Troubleshooting: UNIX/Linux Agent Discovery.

Предпосылки

На сервере Linux вам необходимо установить SSH-сервер, разархивировать и установить с помощью curl или wget. Например, в Ubuntu вы можете сделать это, запустив:

Должен быть включен SFTP и SSH. Большинство дистрибутивов SSH устанавливают и включают SFTP по умолчанию, но это не всегда так.

Подготовьте приложение к отладке

Чтобы подготовить приложение к отладке:

Рассмотрите возможность использования конфигурации отладки при сборке приложения. Гораздо сложнее отлаживать код, скомпилированный для розничной продажи (конфигурация Release), чем код, скомпилированный для отладки. Если вам нужно использовать конфигурацию Release, сначала отключите Just My Code. Чтобы отключить этот параметр, выберите «Инструменты» > «Параметры» > «Отладка», а затем снимите флажок «Включить только мой код».

Убедитесь, что ваш проект настроен на создание переносимых PDB-файлов (настройка по умолчанию) и убедитесь, что PDB-файлы находятся в том же месте, что и DLL. Чтобы настроить это в Visual Studio, щелкните проект правой кнопкой мыши и выберите «Свойства» > «Сборка» > «Дополнительно» > «Отладочная информация».

Создайте и разверните приложение

Вы можете использовать несколько методов для развертывания приложения перед отладкой. Например, вы можете:

Скопируйте исходники на целевой компьютер и выполните сборку с помощью dotnet на компьютере с Linux.

Создайте приложение в Windows, а затем перенесите артефакты сборки на компьютер с Linux. (Артефакты сборки состоят из самого приложения, переносимых PDB-файлов, любых библиотек времени выполнения, от которых оно может зависеть, и файла .deps.json.)

После развертывания приложения запустите его.

Подключить отладчик

Когда приложение запущено на компьютере с Linux, вы готовы подключить отладчик.

В Visual Studio выберите «Отладка» > «Присоединить к процессу…».

В списке "Тип подключения" выберите SSH.

Измените цель подключения на IP-адрес или имя хоста целевого компьютера.

Если вы еще не предоставили учетные данные, вам будет предложено ввести пароль и/или файл закрытого ключа.

Требования к порту для настройки отсутствуют, за исключением порта, на котором работает SSH-сервер.

Найдите процесс, который вы хотите отладить.

Ваш код выполняется либо в процессе с уникальным именем, либо в процессе с именем dotnet. Чтобы найти интересующий вас процесс, проверьте столбец Название, в котором показаны аргументы командной строки для процесса.

В следующем примере вы видите список процессов с удаленного компьютера Linux через транспорт SSH, отображаемый в диалоговом окне «Присоединение к процессу».

Выберите «Прикрепить».

Используйте функции отладки Visual Studio для отладки приложения.

В следующем примере вы видите, как отладчик Visual Studio остановился в точке останова в коде, работающем на удаленном компьютере с Linux.

Читайте также: