hana_shinのLinux技術ブログ

Linuxの技術情報を掲載しています。特にネットワークをメインに掲載していきます。

nstatコマンドの使い方



1 nstatコマンドとは?

ネットワークの統計情報を表示するコマンドです。 CentOS6までは、ネットワークの統計情報はnetstat -sで取得できました。 CentOS7では、netstatコマンドではなくssコマンドを使うことが推奨されています。 しかし、ssコマンドにはnetstat -sに相当する情報が取得できません。 nstatコマンドは、netstat -sに相当する情報を取得することができます。 ここでは、nstatコマンドの使い方について説明します。

2 検証環境

CentOS版数は以下のとおりです。

[root@server ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

カーネル版数は以下のとおりです。

[root@server ~]# uname -r
3.10.0-1160.el7.x86_64

3 インストール方法

[root@server ~]# yum -y install iproute

nstatコマンドの版数を確認します。

[root@server ~]# nstat -V
nstat utility, iproute2-ss170501

4 オプション一覧

オプションを確認します。

[root@server ~]# nstat -h
Usage: nstat [OPTION] [ PATTERN [ PATTERN ] ]
   -h, --help           this message
   -a, --ignore         ignore history
   -d, --scan=SECS      sample every statistics every SECS
   -j, --json           format output in JSON
   -n, --nooutput       do history only
   -p, --pretty         pretty print
   -r, --reset          reset history
   -s, --noupdate       don't update history
   -t, --interval=SECS  report average over the last SECS
   -V, --version        output version information
   -z, --zeros          show entries with zero activity

5 単純な使い方(オプション指定なし)

nstatコマンドを実行します。オプションを指定しないと、前回nstatコマンドを実行してからの差分を表します。 左から2列目の情報が統計情報のカウンタです。統計情報のカウンタが0以外のものを表示します。

[root@server ~]# nstat
#kernel
IpInReceives                    31                 0.0
IpInDelivers                    25                 0.0
IpOutRequests                   17                 0.0
-snip-

6 特定の統計情報だけを表示する方法

6. 1 統計情報を1つ指定する場合

ここでは、ICMP echo requestパケットの統計情報だけを表示してみます。 IcmpInMsgsは、ICMP Echo Requestパケット数を表す統計情報です。 実行結果より、前回nstat コマンドを実行したときから、ICMP Echo Requestパケットを受信していないことがわかります。

[root@server ~]# nstat IcmpInMsgs
#kernel

次に、サーバに対してpingを1回実行してみます。 なお、pingの使い方は、pingコマンドの使い方 - hana_shinのLinux技術ブログを参照してください。

[root@client ~]# ping -c 1 server

サーバでnstatコマンドを実行します。IcmpInMsgsが1つ増加したことがわかります。

[root@server ~]# nstat IcmpInMsgs
#kernel
IcmpInMsgs                      1                  0.0

6. 2 統計情報を複数指定する場合

次に、統計情報を2つ指定してみます

[root@server ~]# nstat IcmpOutEchoReps IcmpInMsgs
#kernel

クライアントでpingコマンドを1回実行します。

[root@client ~]# ping -c 1 192.168.2.100
[root@server ~]# nstat IcmpOutEchoReps IcmpInMsgs
#kernel
IcmpInMsgs                      1                  0.0
IcmpOutEchoReps                 1                  0.0

7 カウンタ値が0の統計情報も表示する方法(-z)

[root@server ~]# nstat -z
#kernel
IpInReceives                    35                 0.0
IpInHdrErrors                   0                  0.0
IpInAddrErrors                  0                  0.0
-snip-

Z 参考情報

私が業務や記事執筆で参考にした書籍を以下のページに記載します。 Linux技術のスキルアップをしよう! - hana_shinのLinux技術ブログ