こんにちは!NOC(ネットワークオペレーションセンター)で日々、数々のネットワークの荒波と格闘しているシニアエンジニアです。
深夜のデータセンター。アラートの赤色灯が点滅し、「おい、どこかの回線が詰まっているぞ!」と緊迫するフロア。そんな修羅場で私たちが真っ先に手に取るのは、凝った監視システムではなく、実はターミナル上で軽快に動くシンプルなコマンドたちだったりします。
インフラの世界へ一歩を踏み出したばかりの皆さん、「なんだかネットワークの調子が遅い気がする……」と感じたとき、どのインターフェースが悲鳴を上げているのか、一目で把握したくないですか?
今回は、そんな現場の強い味方、マルチインターフェース帯域監視ツール bmon について、身近な例えを交えながら優しく、そして徹底的に解説していきますね。一歩ずつ、一緒に理解していきましょう!
—
1. ネットワークの「交通量」を覗き見る難しさ
突然ですが、みなさんは「郵便配達」を想像してみてください。
ネットワークを流れるデータ(パケット)は、まるで全国津々浦々に届けられる手紙や荷物のようなものです。あなたの手元のサーバーには、外の世界とつながるための「玄関(ネットワークインターフェース)」がいくつもあります。
- インターネット側と通信するメインの玄関 (
eth0) - 社内のメンバーとやり取りする内線用の玄関 (
eth1) - 自分自身とこっそり会話するための裏口 (
lo)
データセンターの規模が大きくなればなるほど、この玄関の数が増えていきます。「どの玄関が今、一番混雑しているのか?」「どこかの玄関で、荷物が多すぎて受け取り拒否(エラー)になっていないか?」これらを同時に監視するのは、まるで何十個もの防犯カメラの映像を一人で見続けるようなものです。
普段よく使われる ifconfig や ip -s link などのコマンドは、いわば「今の累計カウンター」を見るだけのもの。1秒間にどれくらいのスピードで荷物が流れているのか(帯域利用率)をリアルタイムで知るには、ちょっと物足りないんですよね。
そこで登場するのが、今回主役の bmon(Bandwidth Monitor)です!
—
2. bmon ってどんなツール? 現場の視点で見てみよう
bmon は、ターミナル(黒い画面)の中で動く、テキストベースのグラフィカルな帯域モニターです。
何がすごいって、すべてのネットワークインターフェースの「今この瞬間の一秒あたりの通信量(レート)」を、美しいグラフと数値で同時に一覧できるところなんです。
身近な例えで言うと…
すべてのレジの混雑状況がひと目でわかる、スーパーの「レジ待ち状況リアルタイムモニター」のようなものです。
「あ、3番レジ(eth0)が今すごく混んでいるな」「2番レジ(eth1)はガラガラだな」というのが、パッと見で直感的にわかるようになっています。
—
3. さあ、実際に bmon を動かしてみよう!
百聞は一見にしかず。まずはインストールして、その動きを見てみましょう。
(※多くのLinuxディストリビューションでは、パッケージマネージャーから一発で入ります)
インストール方法(Ubuntu / Debian の場合)
# システムのパッケージリストを更新して、bmonをインストールします
sudo apt update
sudo apt install bmon
インストールが終わったら、ターミナルに次のように打ち込むだけです。
# bmonを起動する
bmon
おっと、画面がパッと切り替わりましたね! 上半分にはサーバーが持っているすべてのネットワークインターフェースのリストと帯域のグラフ、下半分には選択しているインターフェースの詳細な統計情報(送受信したデータの総量やエラー数など)が表示されているはずです。
画面の主な見方と操作のコツ
難しそうに見える画面ですが、覚えるキーはこれだけです。
- 上下の矢印キー (
↑/↓): 監視したいインターフェース(玄関)の切り替え dキー: 詳細情報の表示・非表示の切り替え(グラフを大きく見たい時に便利!)gキー: グラフの表示形式の切り替え(テキストベースのバーグラフなど)qキー:bmonの終了
これだけ知っていれば、現場でも慌てずに対処できますよ。
—
4. グラフの「単位」と「レート計算」の裏側
ここで少しだけ、パケットが駆け巡る裏側の仕組みを覗いてみましょう。初心者の方がよくつまずくのが「単位」です。
bmon の画面を見ていると、KB/s(キロバイト毎秒)や MB/s(メガバイト毎秒)、あるいはネットワークの世界特有の Mbit/s(メガビット毎秒)という表示が出てきます。
バイトとビットの違い、覚えていますか?
- バイト (Bytes): ファイルのサイズや、実際に運ぶ「荷物の実データ」を表す単位です(例: 1文字=1バイト)。
- ビット (bits): 回線の通信速度(帯域幅)を表すときによく使われる単位です。「8ビット = 1バイト」の関係があります。
例えば、bmon が 1 MB/s(1メガバイト毎秒)と表示しているとき、これは「1秒間に100万文字分の荷物を通りに送り出している」状態を意味します。これをビット換算すると 8 Mbps(8メガビット毎秒)のスピードが出ていることになります。
回線業者から「100Mbpsのプランです」と言われているのに、bmon で見ている数値が 12.5 MB/s を超えていたら……それはもう回線の限界(100Mbit ÷ 8 = 12.5MB)まで荷物を詰め込んでいる状態、つまり「ボトルネック発生!」のサインというわけです。
—
5. トラブルシューティング実践:エラーパケットを見逃すな!
帯域の利用率を見るだけが bmon の仕事ではありません。私たちが現場で最も重宝しているのは、「エラーパケット(ドロップ数)」の監視です。
bmon の詳細画面(dキーで表示される部分)には、次のような項目が並びます。
- Rx Errors / Tx Errors: 受け取り(Rx)や送り出し(Tx)の際に、データが破損してしまい「これ読めないよ!」と捨てざるを得なかった回数。
- Rx Drops / Tx Drops: サーバーの処理が追いつかず、あるいは玄関があまりに満員電車状態で、あふれてしまった荷物を「これ以上入らないから捨てます」と諦めた回数。
もし、帯域の利用率はまだ30%なのに、Rx Drops の数値がモリモリと増え続けていたらどうでしょう?
これは「道路は空いているのに、料金所のゲートの処理能力が追いついて大渋滞を起こしている」ような状態です。CPUの性能不足や、OSのネットワークバッファの設定不足が原因であることが多く、非常に価値のあるヒントになります。
—
おわりに
いかがでしたでしょうか?
bmon は、ただの無機質な黒い画面のツールに見えて、実は私たちのサーバーの「健康状態」と「交通事情」をリアルタイムで教えてくれる、とっても頼もしい相棒です。
「なんだか最近、システム全体の動きが怪しいな」と感じたら、まずは bmon を起動して、どの玄関が混み合っているのか、エラーを吐いている玄関はないか、落ち着いて眺めてみてください。きっと、トラブル解決への糸口がそこに見つかるはずです。
それでは、また次回の現場でお会いしましょう!快適なネットワークライフを!
コメント