こんにちは!大規模なデータセンターのNOC(ネットワークオペレーションセンター)で、日夜パケットの荒波と格闘しているシニアエンジニアです。数え切れないほどの障害対応をくぐり抜けてくると、「あぁ、今ネットワークが悲鳴を上げているな」という雰囲気が、不思議と肌で感じられるようになってくるものです。
さて、インフラの世界に飛び込んだばかりの皆さん、日々の運用監視でお疲れ様です。「サーバーの動きが急に重くなった」「なんだかネットワークが詰まっている気がする……でも、どこをどう見たらいいんだろう?」と途方に暮れた経験はありませんか?
今回は、そんなモヤモヤを鮮やかに吹き飛ばしてくれる、現場の強い味方「nload」コマンドについてお話しします。難解なパケットの構造や、覚えるのが大変な英語の仕様書はいったん脇に置いて、身近な例えを交えながら一歩ずつ優しく紐解いていきましょう!
—
ネットワークの「交通量」を覗き見る喜び
皆さんは、身の回りの郵便配達や、高速道路の料金所をイメージしてみてください。
「今、どれくらいの郵便物がトラックに積まれて出発したか?」「どれくらいの荷物が届いているのか?」を知りたいとき、わざわざ一つ一つの封筒を数えたりはしませんよね。料金所の電光掲示板や、道路脇の交通量カウンターを見れば、パッと一目で「今、めちゃくちゃ混んでいるな」「スイスイ流れているな」と分かります。
サーバーのネットワークカード(NIC)におけるトラフィック監視も、これとまったく同じです。
「今、このサーバーはどれくらいのデータを送り出していて(送信)、どれくらい受け取っているのか(受信)」。これをリアルタイムで、しかも美しいASCII(アスキー)文字のグラフィックスで可視化してくれるのが nload コマンドなんです。
従来の定番コマンドである iftop や sar も素晴らしいツールですが、初学者の皆さんにとって「画面がごちゃごちゃしていて見づらい」「数字が流れていくだけで直感的に頭に入ってこない」という壁を感じがちです。その点、nload はターミナル画面の上下に「受信(Incoming)」と「送信(Outgoing)」の波形グラフをドンと表示してくれるため、直感的にネットワークの鼓動を感じ取ることができます。
—
一歩ずつ使ってみよう!nloadの基本とインストール
まずは、私たちの手元にあるLinuxサーバー(UbuntuやCentOSなど)に nload を迎え入れるところから始めましょう。
1. インストール作業
多くのディストリビューションでは、標準のパッケージ管理システムから一発でインストールできます。ターミナルを開いて、以下のコマンドを優しく打ち込んでみてください。
# UbuntuやDebian系の場合
sudo apt update
sudo apt install nload
# CentOSやRHEL系の場合(EPELリポジトリが必要な場合があります)
sudo yum install epel-release
sudo yum install nload
インストールが無事に完了したら、いよいよ起動してみましょう!
2. 基本のコマンド実行
オプションを何もつけずに、ただコマンドの名前だけを入力します。
# すべてのネットワークインターフェースを対象にnloadを起動する
nload
これだけで、画面が一気に切り替わり、リアルタイムのトラフィックグラフが動き出します。もし特定のネットワークカード(例えば、メインで使っている eth0 や ens33 など)だけに絞って見たい場合は、次のように指定してあげます。
# 特定のインターフェース(例: ens33)を指定して起動する
nload ens33
—
画面の見方をマスターしよう
nload を起動すると、ターミナル画面に何やらグラフと数値が表示されます。初めて見たときは「おぉ……!」と感動する一方で、「この数字の単位は何だろう?」と戸惑うかもしれません。
でも、心配いりません。見方はとてもシンプルです。画面は大きく上下に分かれています。
1. Incoming(受信 / 下り): 外の世界から、あなたのサーバーに向かって流れてきているデータの量です。
2. Outgoing(送信 / 上り): あなたのサーバーから、外の世界に向けて送り出しているデータの量です。
それぞれのセクションには、以下のような情報がリアルタイムで表示されています。
- Curr(Current): 今まさにこの瞬間の通信速度(スループット)です。
- Avg(Average): 起動してからの平均通信速度です。
- Min(Minimum): 記録された最小の通信速度です。
- Max(Maximum): 記録された最大の通信速度です。
- Ttl(Total): 起動してから今までにやり取りしたデータの総量(ギガバイトやメガバイト)です。
そして、その下にある # や | で描かれたグラフの山が高くなればなるほど、「今、データがたくさん流れているぞ!」ということを表しています。まるで心電図のように、サーバーが元気に働いている様子が手に取るように分かるのです。
—
現場で役立つ!知っておくと便利なテクニック
NOCの現場では、ただ眺めているだけではなく、ちょっとした工夫を加えることでトラブルシューティングの効率が劇的に上がります。ここでは実務で使えるいくつかのTipsをご紹介します。
表示間隔(リフレッシュ間隔)を調整する
nload は標準だと100ミリ秒(0.1秒)ごとに画面を更新し、ものすごいスピードでグラフが動きます。もし「もう少しゆっくり推移を確認したいな」という場合は、 -t オプションで更新間隔(ミリ秒)を指定できます。
# 画面の更新間隔を1000ミリ秒(1秒ごと)に変更して起動する
nload -t 1000
この設定にすると、落ち着いて数字の変動を追うことができるため、夜間作業やキャパシティの傾向を見るときに非常に重宝します。
終了する方法
nload の世界から現実に戻るには、キーボードの q キーを押すだけです。これだけ覚えておけば、いつでも安全に抜け出すことができますよ。
—
トラブルシューティングの現場から:nloadが救った瞬間
ここで少し、私が実際に経験した現場のエピソードをお話ししましょう。
ある日、社内の大規模ウェブサービスで「突然、画像の読み込みが遅くなった」というアラートが上がりました。バックエンドのデータベースか? それともロードバランサーの故障か? 焦るチームメンバー。
私は迷わず、問題の疑いがあるアプリケーションサーバーにSSHでログインし、nload を立ち上げました。
すると、どうでしょう。Outgoing(送信)のグラフが、まるで天井知らずのビル群のように限界値まで張り付いていました。 受信側は静かなのに、送信側だけが異常な高負荷です。
「犯人は外部からの攻撃やデータベースの遅延ではなく、このサーバー自身が誰かに巨大なデータを送り続けている(あるいは、無限ループのような不正な通信を引き起こしている)」と瞬時に当たりをつけた私たちは、そこから netstat や ss コマンドを組み合わせて、どのIPアドレスに対してデータを吐き出しているのかを特定し、無事に障害を切り分けることができました。
もし、あのとき nload でパッと視覚的に「送信側の異常」を掴めていなかったら、原因究明に何倍もの時間がかかっていたことでしょう。
—
おわりに
ネットワークの監視と聞くと、なんだか難解なグラフツールや高価な監視ソフトウェアを想像しがちです。もちろん、それらもプロの現場では不可欠ですが、「今、目の前のサーバーで何が起きているのか」を最も素早く、最も直感的に教えてくれるのは、こうした軽量なCLIツールです。
インフラの世界に足を踏み入れたばかりの皆さんも、ぜひ今日の仕事や学習の合間に、自分のPCやテストサーバーで nload を叩いてみてください。画面の向こう側でパケットたちが生き生きと駆け巡っている様子が見えてくると、ネットワークを触ることがもっともっと楽しくなりますよ。
それでは、次回の技術コラムでお会いしましょう! 安全で快適なネットワークライフを!
コメント