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

Мониторинг активности пользователей Linux с помощью инструментов psacct или acct


psacct или acct — это утилиты с открытым исходным кодом для мониторинга действий пользователей в системе Linux. Эти утилиты работают в фоновом режиме и отслеживают активность каждого пользователя в вашей системе, а также потребляемые ресурсы.

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

Эти программы предоставляют отличный способ отслеживать, что делают пользователи, какие команды они выполняют, сколько ресурсов они потребляют и как долго пользователи активны в системе. Еще одна полезная функция заключается в том, что она показывает общий объем ресурсов, потребляемых такими службами, как Apache, MySQL, FTP, SSH и т. д.

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

Пакет psacct или acct предоставляет несколько функций для мониторинга действий процесса.

  • Команда ac выводит статистику входов и выходов пользователей (время подключения) в часах.
  • Команда lastcomm печатает информацию о ранее выполненных командах пользователя.
  • Команды accton используются для включения/выключения процесса учета.
  • Команда sa суммирует информацию о ранее выполненных командах.
  • Команды last и lastb отображают список последних вошедших в систему пользователей.

Установка пакетов psacct или acct в Linux

psacct и acct — похожие пакеты, и между ними нет большой разницы, но пакет psacct доступен только для дистрибутивов на основе rpm, таких как как RHEL, CentOS и Fedora, тогда как пакет acct доступен для таких дистрибутивов, как Ubuntu<, Debian и Linux Mint.

Чтобы установить пакет psacct в дистрибутивах на основе rpm, введите следующую команду yum.

yum install psacct

Чтобы установить пакет acct с помощью команды apt в Ubuntu/Debian/Linux Mint.

sudo apt install acct

В других дистрибутивах Linux его можно установить, как показано.

sudo apk add psacct          [On Alpine Linux]
sudo pacman -S acct          [On Arch Linux]
sudo zypper install acct     [On OpenSUSE]    
Запуск службы psacct или acct

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

sudo systemctl status psacct

Вы видите статус «Отключено», поэтому давайте запустим его вручную, используя следующие команды, которые создадут файл /var/account/pact.

sudo systemctl start psacct
sudo systemctl enable psacct
sudo systemctl status psacct

В Ubuntu, Debian и Mint служба запускается автоматически, вам не нужно запускать ее заново.

Отображение статистики времени подключения пользователей

Команда ac без указания каких-либо аргументов отобразит общую статистику времени подключения в часах на основе входов и выходов пользователей из текущего файла wtmp.

ac

total     11299.15

Отображение статистики пользователей Linux по дням

Использование команды «ac -d» выведет общее время входа в систему в часах по дням.

ac -d

Jun 25	total        0.19
Oct 13	total       14.45
Oct 27	total      672.00
Oct 28	total       15.82
Nov  3	total        4.29
Nov  5	total       10.13
Dec  7	total       14.04
Dec 10	total       23.60
Dec 27	total      808.93
Jan  3	total       12.31
Mar  3	total     1438.67
Jul 22	total     6767.81
Today	total     1517.09

Отображение общего времени входа в систему всех пользователей Linux

Использование команды «ac -p» выведет общее время входа в систему каждого пользователя Linux в часах.

ac -p

	rockylinux                         425.61
	tecmint                            702.29
	root                             10171.54
	total    11299.44

Отображение времени входа пользователя Linux

Чтобы получить общее время входа в систему пользователя «tecmint» в часах, используйте команду as.

ac tecmint
 total      702.29

Отображение времени входа пользователя в дневное время

Следующая команда выведет общее время входа в систему пользователя «tecmint» по дням в часах.

ac -d tecmint
Oct 11  total        8.01
Oct 12  total       24.00
Oct 15  total       70.50
Oct 16  total       23.57
Oct 17  total       24.00
Oct 18  total       18.70
Nov 20  total        0.18

Распечатать все команды Linux, выполняемые пользователями

Команда «sa» используется для печати сводки команд, выполненных пользователями.

sa
       2       9.86re       0.00cp     2466k   sshd*
       8       1.05re       0.00cp     1064k   man
       2      10.08re       0.00cp     2562k   sshd
      12       0.00re       0.00cp     1298k   psacct
       2       0.00re       0.00cp     1575k   troff
      14       0.00re       0.00cp      503k   ac
      10       0.00re       0.00cp     1264k   psacct*
      10       0.00re       0.00cp      466k   consoletype
       9       0.00re       0.00cp      509k   sa
       8       0.02re       0.00cp      769k   udisks-helper-a
       6       0.00re       0.00cp     1057k   touch
       6       0.00re       0.00cp      592k   gzip
       6       0.00re       0.00cp      465k   accton
       4       1.05re       0.00cp     1264k   sh*
       4       0.00re       0.00cp     1264k   nroff*
       2       1.05re       0.00cp     1264k   sh
       2       1.05re       0.00cp     1120k   less
       2       0.00re       0.00cp     1346k   groff
       2       0.00re       0.00cp     1383k   grotty
       2       0.00re       0.00cp     1053k   mktemp
       2       0.00re       0.00cp     1030k   iconv
       2       0.00re       0.00cp     1023k   rm
       2       0.00re       0.00cp     1020k   cat
       2       0.00re       0.00cp     1018k   locale
       2       0.00re       0.00cp      802k   gtbl

Объяснение вывода приведенной выше команды:

  • 9,86re – это минуты «реального времени» по настенным часам.
  • 0,01cp — сумма системного/пользовательского времени в процессорных минутах.
  • 2466k – это усредненная загрузка ядра за процессорное время, т. е. 1 тысяч единиц.
  • sshd имя команды

Распечатать информацию о пользователе Linux

Чтобы получить информацию об отдельном пользователе, используйте параметры -u.

sa -u
root       0.00 cpu      465k mem accton
root       0.00 cpu     1057k mem touch
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu      465k mem accton
root       0.00 cpu     1057k mem touch

Распечатать количество процессов Linux

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

sa -m
sshd                                    2       9.86re       0.00cp     2466k
root                                  127      14.29re       0.00cp      909k

Распечатайте и отсортируйте использование по процентам

Команда «sa -c» отображает самый высокий процент пользователей.

sa -c
 132  100.00%      24.16re  100.00%       0.01cp  100.00%      923k
       2    1.52%       9.86re   40.83%       0.00cp   53.33%     2466k   sshd*
       8    6.06%       1.05re    4.34%       0.00cp   20.00%     1064k   man
       2    1.52%      10.08re   41.73%       0.00cp   13.33%     2562k   sshd
      12    9.09%       0.00re    0.01%       0.00cp    6.67%     1298k   psacct
       2    1.52%       0.00re    0.00%       0.00cp    6.67%     1575k   troff
      18   13.64%       0.00re    0.00%       0.00cp    0.00%      509k   sa
      14   10.61%       0.00re    0.00%       0.00cp    0.00%      503k   ac
      10    7.58%       0.00re    0.00%       0.00cp    0.00%     1264k   psacct*
      10    7.58%       0.00re    0.00%       0.00cp    0.00%      466k   consoletype
       8    6.06%       0.02re    0.07%       0.00cp    0.00%      769k   udisks-helper-a
       6    4.55%       0.00re    0.00%       0.00cp    0.00%     1057k   touch
       6    4.55%       0.00re    0.00%       0.00cp    0.00%      592k   gzip
       6    4.55%       0.00re    0.00%       0.00cp    0.00%      465k   accton
       4    3.03%       1.05re    4.34%       0.00cp    0.00%     1264k   sh*
       4    3.03%       0.00re    0.00%       0.00cp    0.00%     1264k   nroff*
       2    1.52%       1.05re    4.34%       0.00cp    0.00%     1264k   sh
       2    1.52%       1.05re    4.34%       0.00cp    0.00%     1120k   less
       2    1.52%       0.00re    0.00%       0.00cp    0.00%     1346k   groff
       2    1.52%       0.00re    0.00%       0.00cp    0.00%     1383k   grotty
       2    1.52%       0.00re    0.00%       0.00cp    0.00%     1053k   mktemp

Список последних выполненных команд пользователя

Команда «latcomm» используется для поиска и отображения информации о ранее выполненных командах пользователя. Вы также можете искать команды отдельных имен пользователей. Например, мы видим команды пользователя (tecmint).

lastcomm tecmint
su                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
grep                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
grep                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
dircolors               tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
tput                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
tty                     tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56

Поиск команд по журналам

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

lastcomm ls
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56

Для получения дополнительной информации и использования ознакомьтесь со страницами руководств этих инструментов.