Linux サーバーの状態を監視する方法

Linux サーバーの状態を監視する方法

私たち、特に Linux エンジニアは毎日 Linux サーバーを扱っています。サーバーのセキュリティとパフォーマンスを確保するために、作業がスムーズに進むようにサーバーの状態を監視する必要があることがよくあります。

この記事で紹介したいくつかのコマンドは、サーバーの監視だけでなく、日常の開発にも適しています。

1. 見る

watch コマンドは頻繁に使用されます。その基本的な機能は、特定の命令を指定された頻度で繰り返し実行することです。このコマンドを使用すると、いくつかのコマンドを繰り返し呼び出して、サーバーを監視するという目的を達成できます。

デフォルトでは、watch コマンドは 2 秒ごとに実行されますが、 -nオプションを使用して頻度を指定できます。たとえば、date コマンドを 5 秒ごとに実行する場合は、次のようにします。

$ watch -n 5 日付

1 台のサーバーを多くの人、特に部門内の同僚が使用する必要があります。これらの友人が状況を利用しようとしているかどうかを確認するには、いくつかのコマンドを使用して監視することができます。

10 秒ごとに who コマンドを実行して、サーバーを使用しているユーザーを確認できます。

$ ウォッチ -n 10 誰
10.0秒ごと: who butterfly: 2019年1月23日火曜日 16:02:03

:0 2019-01-23 09:45 (:0)
ドリー pts/0 2019-01-23 15:50 (192.168.0.5)
アルビン pts/1 2019-01-23 16:01 (192.168.0.15)
サメ pts/3 2019-01-23 11:11 (192.168.0.27)

システムの実行速度が非常に遅いことがわかった場合は、uptime コマンドを呼び出して平均システム負荷を表示できます。

$ 稼働時間を見る
2.0秒ごと: uptime butterfly: 2019年1月23日火曜日 16:25:48

 16:25:48 22 日間稼働、4:38、ユーザー 3 人、負荷平均: 1.15、0.89、1.02

いくつかの重要なプロセスは失敗してはなりません。そうしないと、業務運営に影響する可能性があります。そのため、サーバー内のすべてのプロセスの数を繰り返しカウントすることができます。

$ ウォッチ -n 5 'ps -ef | wc -l'
5.0 秒ごと: ps -ef | wc -l butterfly: 2019 年 1 月 23 日火曜日 16:11:54

245

サーバーのメモリ使用量を動的に知るには、free コマンドを繰り返し実行します。

$ ウォッチ -n 5 無料 -m
5.0秒ごと: free -m butterfly: 2019年1月23日火曜日 16:34:09

  使用可能な使用済み空き共有バフ/キャッシュの合計
会員番号: 5959 776 3276 12 1906 4878
スワップ: 2047 0 2047

もちろん、これだけではありません。多くのコマンドを繰り返し呼び出して、サーバーのいくつかの重要なパラメータを監視することもできます。

2. トップ

top コマンドを使用すると、システムの多くの重要なパラメータを知ることができ、それらは動的に更新されます。デフォルトでは、top はシステム全体の状態を監視します。特定のユーザーの使用状況のみを知りたい場合は、 -uオプションを使用してそのユーザーを指定できます。

$ トップ -u アルビン
トップ - 16:14:33 2 日間稼働、4:27、ユーザー 3 人、負荷平均: 0.00、0.01、0.02
タスク: 合計 199、実行中 1、スリープ中 198、停止中 0、ゾンビ 0
%CPU: 0.0 us、0.2 sy、0.0 ni、99.8 id、0.0 wa、0.0 hi、0.0 si、0.0 st
MiB メモリ: 合計 5959.4、空き 3277.3、使用中 776.4、バッファ/キャッシュ 1905.8
MiB スワップ: 合計 2048.0、空き 2048.0、使用済み 0.0。使用可能なメモリ 4878.4

 PID ユーザー PR NI 仮想リソース SHR S %CPU %MEM 時間+ コマンド
23026 アルビン 20 0 46340 7820 6504 S 0.0 0.1 0:00.05 システムd
23033 アルビン 20 0 149660 3140 72 S 0.0 0.1 0:00.00 (sd-pam)
23125 アルビン 20 0 63396 5100 4092 S 0.0 0.1 0:00.00 sshd
23128 アルビン 20 0 16836 5636 4284 S 0.0 0.1 0:00.03 zsh

この結果では、ユーザー alvin によって実行されたすべてのプロセスの数だけでなく、各プロセスによって消費されたシステム リソース (CPU、メモリ) も確認でき、システム全体の主要なパラメータも確認できます。

3. 交流

サーバーにログインした各ユーザーが要した時間を知りたい場合は、ac コマンドを使用できます。このコマンドを使用するには、 acctパッケージ (Debian) またはpsacctパッケージ (RHEL、Centos) をインストールする必要があります。

すべてのユーザーがサーバーにログインするのにかかった合計時間を知りたい場合は、パラメータなしで ac コマンドを直接実行できます。

$ ac
合計 1261.72

各ユーザーが使用した時間を知りたい場合は、 -pオプションを追加できます。

$ ac -p
 サメ 5.24
 アルヴィン 5.52
 1251.00 シュシュ
 合計 1261.76

-dオプションを追加して、各日にユーザーが使用したサーバーの合計時間を表示することもできます。

$ ac -d | テール -10
1月11日 合計 0.05
1月12日 合計 1.36
1月13日 合計 16.39
1月15日 合計 55.33
1月16日 合計 38.02
1月17日 合計 28.51
1月19日 合計 48.66
1月20日合計1.37
1月22日合計23.48
今日の合計 9.83

まとめ

システムの実行状態を監視するには、さまざまなコマンドを使用できます。この記事では、主に 3 つのコマンドを紹介します。watch コマンドを使用すると、コマンドを繰り返し実行していくつかのパラメータの変更を監視できます。top コマンドを使用すると、ユーザーが実行したプロセスの数と消費されたリソースを表示できます。ac コマンドを使用すると、各ユーザーが使用したサーバー時間を表示できます。

Linux サーバーの状態を監視する方法についてはこれで終わりです。Linux サーバーの状態の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux でリモート サーバー ファイルの状態を表示する方法
  • Linux サーバーのステータスとパフォーマンスに関連するコマンドの詳細な説明
  • Linuxサーバのハードウェア動作状況や障害メール通知の監視スクリプトの共有
  • Linuxサーバーのステータスを取得するためのPHPコードを共有する

<<:  VueはBaidu Mapsを使用して都市の位置特定を実現

>>:  MySQL で union all を使用してユニオンソートを取得する方法

推薦する

MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法

2 つのパラメータ innodb_flush_log_at_trx_commit と sync_bi...

要素の読み込み効果を実現するための純粋なHTML+CSS

これは Element UI の読み込みコンポーネントのエフェクトです。かっこいいですね。実装してみ...

HTML 名、ID、クラス (フォーマット/アプリケーション シナリオ/機能) などの違いの紹介。

ページには多くのコントロール (要素またはタグ) があります。これらのタグをより便利に操作するには、...

MySQL 数十億のデータのインポート、エクスポート、移行に関するメモ

最近はMySQLのメモをたくさん取っていますが、それは主に会社のOracleが比較的安定していてメン...

Dockerプライベートウェアハウスレジストリの導入

使用される Docker イメージが増えるにつれて、イメージを保存する場所、つまりウェアハウスが必要...

Ubuntu で G++ を使用して CPP ファイルをコンパイルする

g++ を使用して初めて cpp ファイルをコンパイルしたとき、未定義の参照エラーが報告されました。...

MySQLはイベントを使用してスケジュールされたタスクを完了します

イベントでは、SQL コードを 1 回または一定の間隔で実行することを指定できます。通常、複雑な S...

IE8 互換性について: X-UA-compatible 属性の説明

問題の説明:コードをコピーコードは次のとおりです。 <meta http-equiv=&quo...

HTML 基本コントロール入門_PowerNode Java アカデミー

<input> タグ<input> タグはユーザー情報を収集するために使用さ...

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...

FileZilla Server の FTP サーバー構成と 425 エラーおよび TLS 警告の解決策の詳細な説明

123WORDPRESS.COM では、FileZilla のダウンロード リンクを提供しています:...

CSSはフロートをシミュレートして、画像の左右を囲む中央テキストの効果を実現します。

画像の周囲にテキストを折り返すとは何ですか?これは次の図の効果です。 エフェクトのCSSコードはここ...

VScode設定のリモートデバッグLinuxプログラムの問題を解決する

VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...

HTMLページをクリックしてダウンロードファイルを実装する2つの方法

1. <a>タグを使用して完了します <a href="/user/te...

スネークゲームのアイデアを実現するためのJavaScript

JavaScriptゲームSnakeの実装アイデア(完全なコード実装)を参考までに説明します。具体...