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.

  1. ac-kommando udskriver statistikker over brugerlogins/logouts (tilslutningstid) i timer.
  2. lastcomm kommando udskriver oplysningerne om tidligere udførte kommandoer af brugeren.
  3. accton-kommandoer bruges til at slå processen til regnskab til/fra.
  4. en kommando opsummerer oplysninger om tidligere udførte kommandoer.
  5. 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

  1. 9.86re er en "realtid" pr. minut til væguret
  2. 0.01cp er en sum af system/brugertid i cpu minutter
  3. 2466k er et cpu-tids gennemsnitligt kerneforbrug, dvs. 1k enheder
  4. 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