Kuinka seurata käyttäjän toimintaa psacct- tai acct-työkaluilla


psacct tai acct ovat molemmat avoimen lähdekoodin sovelluksia käyttäjien toiminnan seurantaan järjestelmässä. Nämä sovellukset toimivat taustalla ja pitävät kirjaa jokaisesta käyttäjän toiminnasta järjestelmässäsi sekä siitä, mitä resursseja kulutetaan.

Käytin henkilökohtaisesti tätä ohjelmaa yrityksessämme, meillä on kehitystiimi, jossa kehittäjämme työskentelevät jatkuvasti palvelimilla. Joten, tämä on yksi parhaista ohjelmista pitää silmällä niitä. Tämä ohjelma tarjoaa erinomaisen tavan seurata, mitä käyttäjät tekevät, mitä komentoja he käynnistävät, kuinka paljon resursseja he kuluttavat, kuinka kauan käyttäjät ovat aktiivisia järjestelmässä. Toinen tämän ohjelman hieno ominaisuus on se, että se antaa palvelujen kuten Apache, MySQL, FTP, SSH jne.

Mielestäni tämä on yksi suurimmista ja välttämättömistä sovelluksista jokaiselle Linux/Unix-järjestelmänvalvojalle, joka halusi seurata käyttäjien toimintaa palvelimillaan/järjestelmissään.

Psacct- tai acct-paketti tarjoaa useita ominaisuuksia prosessitoimintojen seurantaan.

  1. ac-komento tulostaa käyttäjien kirjautumisten/uloskirjautumisten tilat (yhteyden aika) tunteina.
  2. lastcomm-komento tulostaa käyttäjän aiemmin suoritettujen komentojen tiedot.
  3. accton-komentoja käytetään prosessin kytkemiseen päälle/pois päältä kirjanpidossa.
  4. sa-komento sisältää yhteenvedon aiemmin suoritetuista komennoista.
  5. last ja lastb -komennot näyttävät viimeksi kirjautuneiden käyttäjien luettelon.

Psacct- tai acct-pakettien asentaminen

psacct tai acct ovat molemmat samanlaisia paketteja, eikä niiden välillä ole paljon eroja, mutta psacct-paketti on saatavana vain rpm-pohjaisiin jakeluihin, kuten RHEL, CentOS ja Fedora, kun taas acct-paketti on saatavana jakeluille, kuten Ubuntu, Debian ja Linux Mint.

Asenna psacct-paketti rpm-pohjaisiin jakeluihin antamalla seuraava yum-komento.

# yum install psacct

Asenna acct-paketti apt-get -komennolla Ubuntu/Debian/Linux Mint -kohdassa.

$ sudo apt-get install acct

OR

# apt-get install acct

Oletuksena psacct-palvelu on poissa käytöstä ja se on käynnistettävä manuaalisesti RHEL/CentOS/Fedora-järjestelmissä. Käytä seuraavaa komentoa palvelun tilan tarkistamiseen.

# /etc/init.d/psacct status
Process accounting is disabled.

Näet tilan olevan poistettu käytöstä, joten aloitetaan se manuaalisesti seuraavilla molemmilla komennoilla. Nämä kaksi komentoa luovat/var/account/pacct-tiedoston ja käynnistävät palvelut.

# chkconfig psacct on
# /etc/init.d/psacct start
Starting process accounting:                               [  OK  ]

Kun olet aloittanut palvelun, tarkista tila uudelleen, saat tilan käyttöön sallittuina alla olevan kuvan mukaisesti.

# /etc/init.d/psacct status
Process accounting is enabled.

Ubuntun alla Debian ja Mint -palvelu käynnistetään automaattisesti, sinun ei tarvitse käynnistää sitä uudelleen.

ac-komento määrittelemättä mitään argumenttia näyttää yhdistämisaikojen kokonaistilastot tunteina nykyisen wtmp-tiedoston käyttäjän kirjautumisten/uloskirjautumisten perusteella.

# ac
total     1814.03

Komennon "ac -d" avulla tulostetaan sisäänkirjautumisen kokonaisaika tunneissa päivittäin.

# 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

Komennolla “ac -p” tulostetaan kunkin käyttäjän sisäänkirjautumisaika tunteina.

# ac -p
        root                              1645.18
        tecmint                            168.96
        total     1814.14

Saadaksesi käyttäjän “tecmint” kirjautumistilastojen kokonaisajan tunneissa, käytä komentoa nimellä.

# ac tecmint
 total      168.96

Seuraava komento tulostaa käyttäjän ”tecmint” sisäänkirjautumisen kokonaispäivän päivittäin tunteina.

# 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

“Sa” -komentoa käytetään tulostamaan yhteenveto komennoista, jotka käyttäjät suorittivat.

# 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 on "reaaliaikainen" seinäkellominuuttien mukaan
  2. 0,01 cp on summa järjestelmän/käyttäjän ajasta CPU-minuutteina
  3. 2466k on prosessorin ajan keskimääräinen ydinkäyttö, ts. 1k yksikköä
  4. sshd-komennon nimi

Saadaksesi yksittäisen käyttäjän tiedot, käytä asetuksia -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

Tämä komento tulostaa prosessien kokonaismäärän ja suorittimen minuutit. Jos huomaat näiden lukujen lisääntyvän jatkuvasti, on aika tutkia järjestelmää siitä, mitä tapahtuu.

# sa -m
sshd                                    2       9.86re       0.00cp     2466k
root                                  127      14.29re       0.00cp      909k

Komento “sa -c” näyttää eniten käyttäjiä.

# 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-komentoa käytetään etsimään ja näyttämään aiemmin suoritettuja käyttäjän komentoja koskevia tietoja. Voit myös etsiä yksittäisten käyttäjänimien komentoja. Esimerkiksi näemme käyttäjän komennot (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-komennon avulla voit tarkastella kunkin komennon yksilöllistä käyttöä.

# 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