Поиск по сайту:

Как проверить процесс Linux с помощью atrace в CentOS/RHEL


Эта статья представляет собой нашу постоянную серию статей об аудите Linux. В последних трех статьях мы объяснили, как проводить аудит систем Linux (CentOS и RHEL), запрашивать журналы аудита с помощью ausearch и генерировать отчеты с помощью утилиты aureport.

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

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

Что такое аутрейс?

autrace — это утилита командной строки, которая запускает программу до ее завершения, как и strace; он добавляет правила аудита для отслеживания процесса и сохраняет информацию аудита в файле /var/www/audit/audit.log. Чтобы она заработала (т.е. перед запуском выбранной программы), необходимо сначала удалить все существующие правила аудита.

Синтаксис использования autrace показан ниже. Он принимает только одну опцию, -r, которая ограничивает количество собираемых системных вызовов теми, которые необходимы для оценки использования ресурсов процессом:

autrace -r program program-args

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

autrace program -r program-args

Если у вас есть какие-либо правила аудита, autrace отображает следующую ошибку.

autrace /usr/bin/df

Сначала удалите все правила аудита с помощью следующей команды.

auditctl -D

Затем перейдите к запуску autrace в целевой программе. В этом примере мы отслеживаем выполнение команды df, которая показывает использование файловой системы.

autrace /usr/bin/df -h

На снимке экрана выше вы можете найти все записи журнала, связанные с трассировкой, из файла журнала аудита с помощью утилиты ausearch следующим образом.

ausearch -i -p 2678

Где вариант:

  • -i – включает интерпретацию числовых значений в текст.
  • -p — передает идентификатор процесса для поиска.

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

ausearch -p 2678 --raw | aureport -i -f

Где :

  • --raw — сообщает ausearch о необходимости доставки необработанных данных в aureport.
  • -f — включает отчеты о файлах и сокетах af_unix.
  • -i – позволяет интерпретировать числовые значения в текст.

Используя приведенную ниже команду, мы ограничиваем количество собираемых системных вызовов теми, которые необходимы для анализа использования ресурсов процессом df.

autrace -r /usr/bin/df -h

Предполагая, что вы отслеживали программу за последнюю неделю; это означает, что в журналы аудита попадает много информации. Чтобы создать отчет только для сегодняшних записей, используйте флаг ausearch -ts, чтобы указать дату/время начала поиска:

ausearch -ts today -p 2678 --raw | aureport -i -f

Вот и все! Таким образом, вы можете отслеживать и проверять конкретный процесс Linux с помощью инструмента autrace. Для получения дополнительной информации проверьте справочные страницы.

Вы также можете прочитать эти полезные руководства:

  1. Sysdig — мощный инструмент для мониторинга системы и устранения неполадок для Linux
  2. BCC — инструменты динамической трассировки для мониторинга производительности Linux, работы в сети и многого другого
  3. 30 полезных примеров команды ps для мониторинга процессов в Linux
  4. CPUTool — Ограничивайте и контролируйте загрузку ЦП любым процессом в Linux
  5. Найдите наиболее запущенные процессы по максимальному использованию памяти и процессора в Linux

На данный момент это все! Вы можете задать любые вопросы или поделиться мыслями об этой статье в комментариях ниже. В следующей статье мы опишем, как настроить PAM (подключаемый модуль аутентификации) для аудита ввода TTY для указанных пользователей CentOS/RHEL.