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 で webSocket を使用してリアルタイムの天気を更新する方法

目次序文webSocket の操作と例について:ウェブソケット1. webSocketについて2. ...

a タグにはテキストと画像があります。テキストを非表示にして画像のみを表示するにはどうすればよいでしょうか?

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

Expressプロジェクトファイルディレクトリの説明と詳細な機能の説明

app.js: スタートアップファイル、またはエントリファイルpackage.json: プロジェク...

HTML テーブルタグチュートリアル (46): テーブルフッタータグ

<tfoot> タグは、テーブル フッターのスタイルを定義するために使用されます。基本構...

2 つの MySQL ユーザー削除ステートメント (delete user と drop user) の違い

ヒント: MySQL では、ユーザーの作成と削除が頻繁に必要になります。ユーザーを作成するときは、通...

88 秒で 1,000 万件のレコードを MySQL データベース テーブルに挿入する方法

私が使用しているデータベースはMySQLデータベースバージョン5.7ですまずデータベーステーブルを自...

VMware Workstation 14 Pro に Win10 システムをインストールする

この記事では、VMware Workstation 14 Proにシステムをインストールする方法を紹...

MySQL 10進数符号なし更新負数を0に変換

今日、インターフェースの同時実行の問題を検証したところ、これまでredisで解決していた同時実行のプ...

Vueはスクロールバースタイルを実装します

最初はブラウザのスクロールバーのスタイルを変更して効果を実現したいと思っていましたが、情報を調べてみ...

JSオブジェクトの走査順序の詳細な説明

JavaScript ではオブジェクトを走査する順序は固定されていないと聞いたことがある人もいるかも...

ウェブサイトのユーザビリティとコンバージョン率を向上させる 25 のツール

ウェブサイトの場合、ユーザビリティとは、ユーザーが必要な情報を効果的に見つけたり、タスクを完了したり...

MySQL に大量のデータを挿入するときに重複データを除外する方法

目次1. 問題を発見する2.重複したデータを残さずにすべて削除する3. 削除テーブルから重複データを...

MySQL データベースのインデックスとトランザクション

目次1. 索引1.1 コンセプト1.2 機能1.3 索引作成の原則1.3.1 ディスクアクセス回数を...

JavaScript インタビュー: 配列の平坦化メソッドを実装する方法

目次1 配列のフラット化とは何ですか? 2 JS標準ライブラリの配列フラット化メソッド3 フラットメ...

mysql+mybatisはストアドプロシージャ+トランザクション+複数同時シリアル番号取得を実装します

データベースストアドプロシージャ`generate_serial_number_by_date` が...