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 を使用してユニオンソートを取得する方法

推薦する

Vue での親子コンポーネント通信と、sync を使用して親子コンポーネント データを同期する

目次序文子コンポーネントは親コンポーネントにデータを渡す1. 親コンポーネントから子コンポーネントに...

CSS マージンの折りたたみの詳細な説明

前のこれは古くからある古典的な質問です。以前読者から質問があったので、ここでお答えします。簡単な例か...

Navicat 接続 MySQL エラーの説明分析

目次環境仮想マシンバージョンMySQL バージョン事前準備MySQLの実行ステータスを確認するルート...

CSS3のtransform属性で実装される4つの機能

CSS3 では、transform 関数を使用して、テキストや画像の回転、拡大縮小、傾斜、移動という...

MySQL 8.0 における MySQL のインストールと新しいパスワード認証方法の詳細な説明

1. はじめにOracle が MySQL 8.0GA をリリースしました。海外での GA はリリー...

Vueでスケルトンスクリーンを実装する例

目次スケルトンスクリーンの使用Vueアーキテクチャスケルトンスクリーンアイデアの概要抽象コンポーネン...

VMware+centOS 8 で http プロトコルに基づく Git サービスを構築する方法

目次1. 原因2. デバイス情報3. 準備4. Apacheをインストールする5. gitを設定する...

要素の水平方向の中央揃えを実現する3つの方法と、固定レイアウトとフローレイアウトの概念の理解

CSS でテキストを中央揃えにするプロパティは非常に簡単に実現できます。text-align:cen...

ウェブページ作成に役立つコード

<br />ホームページの右側にあるスクロールバーを削除するにはどうすればよいですか? ...

Python MySQL データベース テーブルの変更とクエリ

Python は MySQL に接続してデータベース テーブルを変更およびクエリします。 pytho...

高品質なコードを書く Web フロントエンド開発実践書の抜粋

(P4) Web 標準は一連の標準で構成されています。中心となる概念は、Web ページの構造、スタイ...

ハイパーリンクの表示と開き方

<br />関連記事: ハイパーリンクを表示して開く方法症状<br />ユー...

CSS3ダイヤモンドパズルはdivのみを回転し、背景画像は回転しない機能を実現します

需要背景プロジェクトはVueを使用して作成され、ビジネス要件にはパズル効果があります。デフォルトの背...

C++ TpeScriptシリーズのジェネリックについて

目次1. テンプレート2. ジェネリック3. ジェネリック再帰4. デフォルトのジェネリックパラメー...

MySQL EXPLAIN出力列の詳細な説明

1. はじめにEXPLAIN ステートメントは、MySQL がステートメントを実行する方法に関する情...