サーバー用の監視アプリはたくさんあり、ターミナルに慣れていない、またはデータのグラフィック表現を本当に必要としているシステム管理者と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を試してみませんか?今すぐ無料でダウンロードしてください。 ]