منبع اصلی نوشتار زیر در این لینک قرار دارد

مانیتور کردن فعالیت یوزر ها با psacct و acct

سلام

psacct  و acct دو تا برنامه متن باز تحت لینوکس هستند که به ما این قابلیت رو میدن که به راحتی و با چند تا دستور ساده میتونیم یوزر های ssh رو مانیتور بکنیم ، صد البته دستور ps و دستورات دیگری برای این کار وجود داره اما اینم یه نوعشه :D

این دستورات همونطور که مشاهده خواهید کرد اطلاعات خوبی از جمله میزان منابع مصرفی توسط یوزر ها یا مدت زمان کار با سیستم یا حتی دستوری که توسط یوزر در حال اجرا هست رو با جزئیات کامل در اختیار ما قرار میده .

  • ac : این دستور اطلاعاتی در رابطه با ورود و خروج و مدت زمان اتصال یوزر رو در اختیار ادمین قرار میده.
  • lastcomm : این دستور هم همونطور که از syntax اش معلومه اطلاعات مربوط به دستور قبلی که یوزر به اجرا درآورده رو میده.
  • accton : برای بستن و باز کردن پروسه کار کاربر
  • sa : اطلاعات کامل از دستورات قبلی که کاربر اجرا کرده
  • last یا lastb : لیست یوزر هایی که لاگین کردن

خوب بریم سراغ نصب psacct  و acct :

برای Centos  و RHEL نرم افزار psacct رو داریم , برای Debian ، fedora ، Ubuntu و MINT هم نرم افزار acct رو داریم به راحتی هم با Yum  و Apt-get قابل نصبه

#CentsOs and Rhel
[root@seclinux ~]# yum install psacct
# Ubuntu , Debian , Fedora
[N3td3vil@seclinux ~]# sudo apt-get install acct
OR
[root@seclinux ~]# apt-get install acct

برای اجرای Deamon هم در RHEL/CentOS/Fedora باید به صورت دستی اجرا بشه

[root@seclinux ~]# /etc/init.d/psacct status
Process accounting is disabled.
[root@seclinux ~]# chkconfig psacct on
[root@seclinux ~]# /etc/init.d/psacct start
Starting process accounting:                               [  OK  ]
[root@seclinux ~]# /etc/init.d/psacct status
Process accounting is enabled.

روی Ubuntu/Debian/Mint بعد از نصب به صورت اتوماتیک خود سرویس استارت میشه و نیاز نیست که مجدد استارت کنید.

خوب برای دیدن زمان کلی اتصال به سرور توسط همه یوزر ها بر حسب ساعت :

[root@seclinux ~]# ac
        total      653.38
[root@seclinux ~]#

دستور قبلی با سوئیچ -d بر اساس روز های گذشته :

[root@seclinux ~]# ac -d
Jun 23  total       12.54
Jun 24  total        6.43
Jun 26  total       11.32
Jun 27  total        0.41
Jun 29  total        4.91
Jun 30  total       15.19
Jul  2  total        1.96
Jul  3  total       14.21
Jul  6  total        5.72
Jul  7  total       13.59
Jul  8  total        5.08
Jul  9  total        0.08
Jul 11  total        0.48
Jul 16  total       11.87
Jul 17  total        1.53
Jul 21  total        7.10
Jul 24  total        0.51
Jul 28  total        2.22
Aug  8  total        0.01
Aug 18  total        2.28
Aug 21  total        0.00
Sep  7  total        5.35
Sep  8  total        0.33
Sep 11  total        5.83
Sep 28  total      404.94
Sep 29  total       16.86
Sep 30  total       15.26
Oct  1  total       17.77
Today   total        0.49
[root@seclinux ~]#

دستور قبلی با سوئیچ -p بر اساس یوزر :

[root@seclinux ~]# ac -p
        root                               1645.18
N3td3vil                            168.96
        total      1814.14
[root@seclinux ~]#

برای دیدن connect Time یه یوزر خاص :

[root@seclinux ~]# ac root
        total      653.50
[root@seclinux ~]#

دستور بالا رو با سوئیچ -d برای یوزر بزنیم براساس روز فقط اطلاعات یوزر وارد شده رو میده

خوب دستور sa اطلاعات بهتری رو میده ، ببینید:

[root@seclinux ~]# 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 نشان دهنده real Time هست
  • 0.01cp زمان استفاده شده از cpu بر اساس دقیقه
  • میانگین استفاده از هسته cpu به تناسب میانگین استفاده
  • sshd دستور اجرا شده

دستور بالا با سوئیچ -u اطلاعات فردی یوزر :

[root@seclinux ~]# 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

خوب دستور بالا با سوئیچ -m برای دیدن تعداد Procces

[root@seclinux ~]# sa -m

sshd                                    2       9.86re       0.00cp     2466k
root                                  127      14.29re       0.00cp      909k

دستور sa با سوئیچ -c بر اساس درصد مرتب میشه

[root@seclinux ~]# 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

خوب رسیدیم به دستور lastcomm

برای دیدن دستوراتی که یوزر اجرا کرده

[root@seclinux ~]# lastcomm n3td3vil

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

برای دیدن یوزر هایی که یک کامند خاص رو اجرا کردن

[root@seclinux ~]# 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

خوب امیدوارم که مطلب فوق براتون مفید واقع شده باشه

پیروز باشید

N3td3v!l

 



برچسب ها : , , , ,