サーバー用の監視アプリはたくさんあり、ターミナルに慣れていない、またはデータのグラフィック表現を本当に必要としているシステム管理者とLinuxの採用を支援するために多くのことを行ってきました。ただし、Linuxは当初からマルチユーザーシステムであり、UNIXはそれよりずっと前から存在しているため、サーバーにログインしているユーザー、リソースを使用しているユーザー、およびその目的を監視するのに役立つ組み込みツールが40年前にあります。
自分の責任であるサーバーを注意深く監視することを正当化するために、偏執的である必要はありません。 psacctパッケージには、ユーザーのステータスとアクティビティに関する詳細なレポートを収集するためのいくつかのコマンドが含まれています。
acct
のすべてのコマンドではありません ユーティリティでは、アカウンティングをアクティブ化する必要がありますが、多くの場合、アクティブ化されます。 acct
を使用する場合 コマンドの場合、accton
を使用してアカウンティングを有効にする必要があります コマンド。
有効にするには:
$ sudo accton on
デフォルトでは、アカウンティングレコードは/var/account/pacct
に保存されます 。このファイルはかなり大きくなる可能性があるため、logrotate
を使用してください または適切なログ管理を確実にするための同様のツール。
アカウンティングを無効にするには:
$ sudo accton off
ac
ac
コマンドは、接続時間に関する統計を出力します。システムでアクティブなユーザーがどのように活動しているかの概要を把握する必要がある場合は、--individual-totals
オプションはそれを提供します。 /var/log/wtmp
に記録されたログインとログアウトに基づいてレポートを数時間で生成します ファイル。
アカウンティングファイルwtmp
init(8)
によって維持されます およびlogin(1)
しかし、どちらもac
またはlogin
実際にファイルを作成します。 wtmp
の場合 存在しない場合、レポートは生成されませんが、ac
を指定できます --file
を使用して別の場所に移動します オプション。 wtmp
の場合 ファイルがシステムに存在しない場合は、空のwtmp
を作成できます システムでのレポートを有効にするファイル。
個々のユーザーのログイン時間に関するレポートを取得するには:
$ ac --individual-totals
seth 20.16
larry 43.60
curly 10.32
moe 35.11
1日の合計も取得できます:
$ 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
lastcomm
コマンドは最後のコマンドを表示します 特定のユーザーに対してシステムで発行されます。ユーザーが指定されていない場合は、現在のユーザーに関するレポートが生成されます。
$ 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
lastcomm
によってリストされたコマンド 必ずしもユーザーがインタラクティブに起動するコマンドであるとは限りません。たとえば、ログインするだけで、ユーザーはlastcomm
の出力に40近くのアイテムを生成します。 、それでそれは圧倒される可能性があります。 grep
と組み合わせる ただし、これはユーザーのセッション履歴を把握するための簡単な方法です。
sa
sa
コマンドは、/var/account/pacct
から派生したアカウンティング情報を要約します ファイル。ユーザーのアクティビティを監査している場合は、--print-users
オプションは、各コマンドの前にユーザー名を出力します:
$ 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
または、各ユーザーの概要のみを取得することもできます:
$ 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
[...]
表示される列には、ユーザー名に加えて、CPU(リアルタイムおよびCPU時間)、コマンドごとのI / O操作(平均および合計)などが報告されます。 --sort-tio
などのオプションを使用して構成できます t otal I / O 、--sort-cpu-avmem
平均メモリ使用量などでCPU時間を並べ替えます。すべての並べ替えフィルターは、--reverse-sort
で逆にすることができます オプション。
who、w、psなどのツールと組み合わせると、ユーザーがシステムリソースをどのように使用しているか、どのコマンドが問題になる可能性があるか、どのサーバーのアップグレードが将来役立つ可能性があるかを把握できます。 acct
スイートは端末ベースであり、スクリプトを作成して他のツールで利用できるため、カスタマイズされたレポートメカニズムを作成できます。
[Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。 ]