Sådan overvåges brugeraktivitet med psacct- eller acct-værktøjer
psacct eller acct er begge open source-applikationer til overvågning af brugernes aktiviteter på systemet. Disse applikationer kører i baggrunden og holder styr på hver brugeraktivitet på dit system samt hvilke ressourcer der forbruges.
Jeg brugte personligt dette program i vores virksomhed, vi har et udviklingsteam, hvor vores udviklere løbende arbejder på servere. Så dette er et af de bedste programmer til at holde øje med dem. Dette program giver en glimrende måde at overvåge, hvad brugerne laver, hvilke kommandoer de affyrer, hvor mange ressourcer der forbruges af dem, hvor længe brugerne er aktive på systemet. Et andet godt træk ved dette program er, at det giver de samlede ressourcer, der forbruges af tjenester som Apache, MySQL, FTP, SSH osv.
Jeg synes, det er en af de store og nødvendige applikationer til alle Linux/Unix systemadministratorer, der ønskede at holde styr på brugeraktiviteter på deres servere/systemer.
Psacct- eller acct-pakken indeholder flere funktioner til overvågning af procesaktiviteter.
- ac-kommando udskriver statistikker over brugerlogins/logouts (tilslutningstid) i timer.
- lastcomm kommando udskriver oplysningerne om tidligere udførte kommandoer af brugeren.
- accton-kommandoer bruges til at slå processen til regnskab til/fra.
- en kommando opsummerer oplysninger om tidligere udførte kommandoer.
- sidste og sidste b-kommando viser en liste over de sidst loggede brugere.
Installation af psacct- eller acct-pakker
psacct eller acct begge er ens pakker, og der er ikke meget forskel mellem dem, men psacct-pakken er kun tilgængelig for rpm-baserede distributioner såsom RHEL, CentOS og Fedora, mens acct-pakken er tilgængelig for distributioner som Ubuntu, Debian og Linux Mint.
For at installere psacct-pakken under omdrejningstalbaserede distributioner, udsted følgende yum-kommando.
# yum install psacct
At installere acct-pakke ved hjælp af apt-get-kommandoen under Ubuntu/Debian/Linux Mint.
$ sudo apt-get install acct OR # apt-get install acct
Som standard er psacct-tjeneste i deaktiveret tilstand, og du skal starte den manuelt under RHEL/CentOS/Fedora-systemer. Brug følgende kommando til at kontrollere tjenestens status.
# /etc/init.d/psacct status Process accounting is disabled.
Du ser status vises som deaktiveret, så lad os starte den manuelt ved hjælp af følgende begge kommandoer. Disse to kommandoer opretter en/var/konto/pacct-fil og starter tjenester.
# chkconfig psacct on # /etc/init.d/psacct start Starting process accounting: [ OK ]
Efter start af service skal du kontrollere status igen, du får status som aktiveret som vist nedenfor.
# /etc/init.d/psacct status Process accounting is enabled.
Under Ubuntu startes Debian og Mint-tjenesten automatisk, du behøver ikke starte den igen.
ac-kommando uden at angive noget argument, viser den samlede statistik over tilslutningstid i timer baseret på brugerlogins/logouts fra den aktuelle wtmp-fil.
# ac
total 1814.03
Brug af kommandoen "ac -d" udskriver den samlede login tid i timer dagtimerne.
# ac -d
Sep 17 total 5.23 Sep 18 total 15.20 Sep 24 total 3.21 Sep 25 total 2.27 Sep 26 total 2.64 Sep 27 total 6.19 Oct 1 total 6.41 Oct 3 total 2.42 Oct 4 total 2.52 Oct 5 total 6.11 Oct 8 total 12.98 Oct 9 total 22.65 Oct 11 total 16.18
Brug af kommandoen "ac -p" udskriver den samlede login-tid for hver bruger i timer.
# ac -p
root 1645.18 tecmint 168.96 total 1814.14
Brug kommandoen som for at få den samlede loginstatistiktid for bruger “tecmint” i timer.
# ac tecmint
total 168.96
Den følgende kommando udskriver den dagvise samlede logintid for bruger “tecmint” i timer.
# 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
Kommandoen “sa” bruges til at udskrive en oversigt over kommandoer, der blev udført af brugerne.
# 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 er en "realtid" pr. minut til væguret
- 0.01cp er en sum af system/brugertid i cpu minutter
- 2466k er et cpu-tids gennemsnitligt kerneforbrug, dvs. 1k enheder
- sshd-kommandonavn
Brug indstillingerne -u for at få oplysninger om den enkelte bruger.
# 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
Denne kommando udskriver det samlede antal processer og CPU-minutter. Hvis du ser fortsat stigning i disse tal, er det tid til at se ind i systemet om, hvad der sker.
# sa -m
sshd 2 9.86re 0.00cp 2466k root 127 14.29re 0.00cp 909k
Kommandoen “sa -c” viser den højeste procentdel af brugere.
# 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
Kommandoen 'latcomm' bruges til at søge og vise tidligere udførte informationer om brugerkommandoer. Du kan også søge i kommandoer med individuelle brugernavne. For eksempel ser vi brugerkommandoer (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
Ved hjælp af lastcomm-kommandoen kan du se individuel brug af hver kommando.
# 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