Мониторинг активности пользователей 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
Для получения дополнительной информации и использования ознакомьтесь со страницами руководств этих инструментов.