Il existe de nombreuses applications de surveillance pour les serveurs, et elles ont beaucoup fait pour faciliter l'adoption de Linux avec des administrateurs système qui ne sont pas habitués au terminal ou qui ont un réel besoin de représentations graphiques des données. Cependant, Linux est un système multi-utilisateurs depuis le début, et UNIX bien avant cela, il existe donc des outils intégrés qui remontent à 40 ans pour vous aider à surveiller qui est connecté à votre serveur, qui utilise des ressources et pour quoi.
Vous n'avez pas besoin d'être paranoïaque ou même curieux pour justifier de surveiller de près un serveur dont vous êtes responsable. Le package psacct contient plusieurs commandes pour collecter des rapports détaillés sur l'état et l'activité de l'utilisateur.
accton
Pas toutes les commandes dans le acct
les utilitaires exigent que vous activiez la comptabilité, mais beaucoup le font. Si vous avez l'intention d'utiliser acct
commandes, vous devez activer la comptabilité avec le accton
commande.
Pour activer :
$ sudo accton on
Par défaut, les enregistrements comptables sont stockés dans /var/account/pacct
. Ce fichier pourrait devenir assez volumineux, alors utilisez logrotate
ou un outil similaire pour assurer une bonne gestion des journaux.
Pour désactiver la comptabilité :
$ sudo accton off
ac
Le ac
La commande affiche des statistiques sur les temps de connexion. Si vous avez besoin d'avoir un aperçu du nombre d'utilisateurs actifs sur un système, le --individual-totals
l'option fournit cela. Il génère son rapport en heures sur la base des connexions et déconnexions enregistrées dans le /var/log/wtmp
fichier.
Le fichier comptable wtmp
est maintenu par init(8)
et login(1)
mais ni ac
ou login
crée réellement le fichier. Si wtmp
n'existe pas, alors aucun rapport n'est généré, mais vous pouvez pointer ac
vers un autre emplacement en utilisant le --file
option. Si un wtmp
n'existe pas sur votre système, vous pouvez créer un wtmp
vide fichier pour activer la création de rapports sur votre système.
Pour obtenir un rapport sur les temps de connexion des utilisateurs individuels :
$ ac --individual-totals
seth 20.16
larry 43.60
curly 10.32
moe 35.11
Vous pouvez également obtenir les totaux quotidiens :
$ ac --daily-totals
Jan 20 total 22.61
Jan 21 total 73.60
Jan 22 total 84.00
Jan 23 total 100.69
Jan 24 total 18.24
Jan 25 total 2.43
Jan 27 total 35.36
Today total 62.13
lastcomm
Le lastcomm
commande affiche les dernières commandes émis sur le système pour un utilisateur donné. Si aucun utilisateur n'est spécifié, un rapport sur l'utilisateur actuel est généré.
$ sudo lastcomm --strict-match --user curly --tty pts/2
basename curly pts/2 0.00 secs Tue Jan 28 15:41
ps curly pts/2 0.00 secs Tue Jan 28 15:41
bash F curly pts/2 0.00 secs Tue Jan 28 15:41
manpath curly pts/2 0.00 secs Tue Jan 28 15:41
bash F curly pts/2 0.00 secs Tue Jan 28 15:41
tclsh curly pts/2 0.00 secs Tue Jan 28 15:41
bash F curly pts/2 0.00 secs Tue Jan 28 15:41
bash F curly pts/2 0.00 secs Tue Jan 28 15:41
sed curly pts/2 0.00 secs Tue Jan 28 15:41
Les commandes listées par lastcomm
ne sont pas nécessairement des commandes lancées interactivement par un utilisateur. Par exemple, simplement en se connectant, un utilisateur génère près de 40 éléments dans la sortie de lastcomm
, donc ça peut être écrasant. Couplé avec grep
, cependant, c'est un moyen facile d'avoir une idée de l'historique des sessions d'un utilisateur.
sa
Le sa
La commande résume les informations comptables dérivées de /var/account/pacct
dossier. Si vous auditez les activités des utilisateurs, alors le --print-users
option imprime le nom d'utilisateur avant chaque commande :
$ sudo sa --print-users
root 0.00 cpu 579k mem 0 io accton
root 0.03 cpu 64064k mem 0 io sudo
seth 0.00 cpu 56752k mem 0 io bash *
seth 0.00 cpu 54080k mem 0 io sed
seth 0.00 cpu 56752k mem 0 io bash *
larry 0.00 cpu 56752k mem 0 io bash *
curly 0.00 cpu 56752k mem 0 io bash *
moe 0.00 cpu 56752k mem 0 io bash *
seth 0.00 cpu 54080k mem 0 io ls
Vous pouvez également obtenir uniquement un résumé pour chaque utilisateur :
$ sudo sa --user-summary
1065 2169.59re 0.97cp 0avio 49373k
seth 812 1117.11re 0.83cp 0avio 58163k
root 199 1052.42re 0.14cp 0avio 21314k
larry 41 0.00re 0.00cp 0avio 19403k
curly 1 0.06re 0.00cp 0avio 6706k
moe 12 0.00re 0.00cp 0avio 25888k
[...]
Les colonnes affichées, en plus des noms d'utilisateurs, rapportent sur le CPU (temps réel et temps CPU), les opérations d'E/S par commande (moyenne et totale), etc. Ils peuvent être configurés à l'aide d'options telles que --sort-tio
pour t E/S totales , --sort-cpu-avmem
pour trier le temps CPU en fonction de l'utilisation moyenne de la mémoire, etc. Tous les filtres de tri peuvent être inversés avec le --reverse-sort
option.
Profilage des utilisateurs
Combiné avec des outils tels que who, w et ps, vous pouvez avoir une idée de la façon dont les utilisateurs dépensent les ressources système, quelles commandes peuvent être problématiques et quelles mises à niveau de serveur pourraient être utiles à l'avenir. Parce que le acct
est basée sur un terminal, elle peut être scriptée et utilisée par d'autres outils, vous permettant de créer un mécanisme de rapport personnalisé.
[ Voulez-vous essayer Red Hat Enterprise Linux ? Télécharge le maintenant gratuitement. ]