Monitore a atividade dos usuários do Linux com ferramentas psacct ou acct
psacct ou acct são utilitários de código aberto para monitorar as atividades dos usuários no sistema Linux. Esses utilitários são executados em segundo plano e monitoram a atividade de cada usuário em seu sistema, bem como quais recursos estão sendo consumidos.
Eu pessoalmente usei essas ferramentas em nossa empresa, temos uma equipe de desenvolvimento onde nossos desenvolvedores trabalham continuamente nos servidores. Então, esses são os melhores utilitários para ficar de olho neles.
Esses programas fornecem uma excelente maneira de monitorar o que os usuários estão fazendo, quais comandos estão executando, quantos recursos estão sendo consumidos por eles e por quanto tempo os usuários estão ativos no sistema. Outro recurso útil é fornecer o total de recursos consumidos por serviços como Apache, MySQL, FTP, SSH, etc.
Eu acho que este é um dos grandes e mais necessários utilitários para todo administrador de sistema Linux/Unix, que deseja manter um controle das atividades dos usuários em seus servidores/sistemas.
O pacote psacct ou acct fornece vários recursos para monitorar atividades do processo.
- O comando ac imprime as estatísticas de logins/logouts de usuários (tempo de conexão) em horas.
- O comando lastcomm imprime as informações dos comandos executados anteriormente pelo usuário.
- Os comandos accton são usados para ativar/desativar o processo de contabilidade.
- O comando sa resume informações de comandos executados anteriormente.
- Os comandos last e lastb mostram uma lista dos últimos usuários logados.
Instalando pacotes psacct ou acct no Linux
psacct e acct são pacotes semelhantes e não há muita diferença entre eles, mas o pacote psacct está disponível apenas para distribuições baseadas em rpm, como como RHEL, CentOS e Fedora, enquanto o pacote acct está disponível para distribuições como Ubuntu<, Debian e Linux Mint.
Para instalar o pacote psacct em distribuições baseadas em rpm, emita o seguinte comando yum.
yum install psacct
Para instalar o pacote acct usando o comando apt em Ubuntu/Debian/Linux Mint.
sudo apt install acct
Em outras distribuições Linux, você pode instalá-lo conforme mostrado.
sudo apk add psacct [On Alpine Linux]
sudo pacman -S acct [On Arch Linux]
sudo zypper install acct [On OpenSUSE]
Iniciando serviço psacct ou acct
Por padrão, o serviço psacct está no modo desabilitado e você precisa iniciá-lo manualmente nas distribuições baseadas em RHEL. Use o seguinte comando para verificar o status do serviço.
sudo systemctl status psacct
Você vê o status como desativado, então vamos iniciá-lo manualmente usando os seguintes comandos, que criarão um arquivo /var/account/pacct.
sudo systemctl start psacct
sudo systemctl enable psacct
sudo systemctl status psacct
No Ubuntu, Debian e Mint o serviço é iniciado automaticamente, você não precisa iniciá-lo novamente.
Exibir estatísticas do tempo de conexão dos usuários
O comando ac sem especificar nenhum argumento exibirá estatísticas totais do tempo de conexão em horas com base nos logins/logouts do usuário do arquivo wtmp atual.
ac
total 11299.15
Exibir estatísticas de usuários Linux durante o dia
Usar o comando “ac -d” imprimirá o tempo total de login em horas por dia.
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
Exibir o tempo total de login de todos os usuários Linux
Usar o comando “ac -p” imprimirá o tempo total de login de cada usuário Linux em horas.
ac -p
rockylinux 425.61
tecmint 702.29
root 10171.54
total 11299.44
Exibir tempo de login do usuário Linux
Para obter o tempo total de estatísticas de login do usuário “tecmint” em horas, use o comando as.
ac tecmint
total 702.29
Exibir horário de login diário do usuário
O comando a seguir imprimirá o tempo total de login diário do usuário “tecmint” em horas.
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
Imprimir todos os comandos do Linux executados pelos usuários
O comando “sa” é utilizado para imprimir o resumo dos comandos que foram executados pelos usuários.
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
Explicação da saída do comando acima:
- 9,86re é um “tempo real” conforme os minutos do relógio de parede
- 0,01cp é a soma do tempo do sistema/usuário em minutos de CPU
- 2466k é uma média de uso do núcleo em tempo de CPU, ou seja, 1k unidades
- nome do comando sshd
Imprimir informações do usuário Linux
Para obter as informações de um usuário individual, utilize as opções -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
Imprimir número de processos Linux
Este comando imprime o número total de processos e minutos de CPU. Se você observar um aumento contínuo nesses números, é hora de analisar o sistema para saber o que está acontecendo.
sa -m
sshd 2 9.86re 0.00cp 2466k
root 127 14.29re 0.00cp 909k
Imprimir e classificar o uso por porcentagem
O comando “sa -c” exibe a maior porcentagem de usuários.
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
Listar os últimos comandos executados do usuário
O comando ‘latcomm‘ é usado para pesquisar e exibir informações de comandos do usuário executados anteriormente. Você também pode pesquisar comandos de nomes de usuário individuais. Por exemplo, vemos comandos do usuário (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
Registros de pesquisa para comandos
Com a ajuda do comando lastcomm, você poderá visualizar o uso individual de cada comando.
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
Para mais informações e uso, verifique as páginas de manual dessas ferramentas.