MRTGとは、ネットワーク機器のトラフィックや各種メトリクスをリアルタイムで収集し、グラフとして可視化するネットワーク監視ツールです。
Multi Router Traffic Grapher(マルチルータートラフィックグラファー)の略であり、1990年代後半にオープンソースとして公開されて以来、世界中のネットワーク管理者に広く利用されてきました。
SNMPプロトコルを使ってルーターやスイッチなどのネットワーク機器からデータを収集し、HTMLベースのグラフレポートとして出力する機能が特徴です。
本記事では、MRTGとは何か、その意味・機能・ネットワーク監視ツールとしての特徴・トラフィック測定・SNMP・グラフ生成などについて詳しく解説していきます。
ネットワーク管理を担当している方や、監視ツールの導入を検討している方にとって役立つ内容ですので、ぜひご一読ください。
MRTGはSNMPでデータを収集してHTMLグラフを自動生成するネットワーク監視ツール
それではまず、MRTGの基本的な定義と動作の仕組みについて解説していきます。
MRTGの基本的な動作原理は非常にシンプルで、SNMPを使ってネットワーク機器からトラフィック情報などのデータを定期的に取得し、そのデータをRRDtool(またはMRTG独自のデータベース形式)に蓄積して、HTMLファイルとしてグラフを生成するというものです。
通常は5分ごとにデータを収集するよう設定され、過去の日・週・月・年単位のグラフを自動的に生成・更新します。
生成されたHTMLファイルをWebサーバーで配信することで、ブラウザからリアルタイムに近い監視ができるわけです。
MRTGの大きな特徴は、専用のクライアントソフトを必要とせず、Webブラウザだけで監視グラフを閲覧できる点です。インフラ担当者だけでなく、経営層や非技術職の社員にも視覚的にネットワーク状況を共有できます。
SNMPとMRTGの関係
SNMP(Simple Network Management Protocol)は、ネットワーク機器の管理情報を収集・変更するためのプロトコルです。
MRTGはこのSNMPのGETコマンドを使って、ルーター・スイッチ・サーバーなどのネットワーク機器からMIB(Management Information Base)と呼ばれる管理情報を取得します。
MIBには様々な情報が含まれており、インターフェースの送受信バイト数(ifInOctets/ifOutOctets)がMRTGでの主要な取得対象です。
SNMPのバージョンにはv1・v2c・v3があり、MRTGはSNMP v1/v2cを一般的にサポートしています。
セキュリティ面を重視する場合、SNMP v3の暗号化・認証機能を持つバージョンの使用が望ましいでしょう。
MRTGが生成するグラフの種類
MRTGが生成するグラフは時系列データをビジュアル化したもので、デフォルトでは4種類のグラフが生成されます。
| グラフの種類 | 表示期間 | データポイントの間隔 |
|---|---|---|
| Dailyグラフ | 過去2日分 | 5分ごと |
| Weeklyグラフ | 過去2週間分 | 30分ごとの平均 |
| Monthlyグラフ | 過去2ヶ月分 | 2時間ごとの平均 |
| Yearlyグラフ | 過去2年分 | 1日ごとの平均 |
各グラフには入力(受信)と出力(送信)トラフィックが色分けして表示され、最大値・平均値・現在値が数値でも表示されます。
これにより、トラフィックのピーク時間帯や傾向を視覚的に把握することができるでしょう。
MRTGの設定ファイル(mrtg.cfg)の基本構造
MRTGの動作はすべてmrtg.cfgという設定ファイルで制御されます。
最小限の設定例は以下のようになります。
WorkDir: /var/www/html/mrtg
Target[router1]: 2:public@192.168.1.1
MaxBytes[router1]: 12500000
Title[router1]: Traffic Analysis for Router1
PageTop[router1]: <H1>Router1 Traffic</H1>
Targetの書式は「インターフェース番号:コミュニティ名@IPアドレス」という形式です。
MaxBytesは監視するインターフェースの最大転送速度(バイト/秒)を指定します。
100Mbps回線なら12,500,000(100Mbps ÷ 8)を設定するのが一般的です。
MRTGの主な機能と活用シーン
続いては、MRTGが持つ主な機能とどのような場面で活用できるかを確認していきます。
MRTGはシンプルながら、ネットワーク管理において非常に幅広い場面で活躍します。
トラフィック監視以外の活用方法
MRTGはもともとルーターのトラフィック監視のために作られましたが、SNMPで取得できる任意の数値データを監視・グラフ化するために応用できます。
具体的には、サーバーのCPU使用率・メモリ使用量・ディスクI/O・温度センサー値・UPSのバッテリー残量なども監視対象にできます。
またSNMPを使わずに任意のコマンドやスクリプトの出力値を監視することも可能です(Execオプション)。
MRTGは「2つの数値を時系列でグラフ化する」というシンプルな設計のため、SNMP以外のあらゆるデータソースに拡張して活用できます。
cfgmakerとindexmakerツール
MRTGには設定作業を効率化する補助ツールが付属しています。
cfgmakerは、対象機器のSNMP情報を自動的に取得して設定ファイルのひな形を生成するツールです。
cfgmaker public@192.168.1.1 –output /etc/mrtg/mrtg.cfg
このコマンドで192.168.1.1のルーターから全インターフェース情報を取得し、設定ファイルを自動生成します。
indexmakerは、複数のMRTGグラフをまとめたインデックスページ(HTML)を自動生成するツールです。
多数の機器を監視している場合、indexmakerを使うことで一覧ページが自動的に作成されて管理が楽になります。
MRTGと類似ツールの比較
MRTGと比較されることの多い監視ツールには、Cacti・Zabbix・Grafana+Prometheusなどがあります。
| ツール名 | 特徴 | 難易度 | 拡張性 |
|---|---|---|---|
| MRTG | シンプル・軽量・歴史あり | 低〜中 | 低め |
| Cacti | MRTGの後継的ツール・GUI充実 | 中 | 中 |
| Zabbix | 多機能・アラート対応・エンタープライズ向け | 高 | 高 |
| Grafana+Prometheus | モダン・高度な可視化・クラウドネイティブ対応 | 高 | 非常に高 |
MRTGは機能はシンプルですが軽量で設定が容易なため、小規模ネットワークや導入コストを抑えたい環境に適しています。
より高度な監視やアラート機能が必要な場合はZabbixやGrafanaへの移行も検討するとよいでしょう。
MRTGのインストールと設定の基本
続いては、MRTGを実際にLinux環境にインストールして設定する基本的な流れを確認していきます。
MRTGはLinux(CentOS・Ubuntu・Debian等)環境で広く使われており、パッケージマネージャを使って簡単にインストールできます。
Ubuntuへのインストール手順
Ubuntuの場合、以下のコマンドでMRTGとSNMPツールをインストールできます。
sudo apt-get update
sudo apt-get install mrtg snmp snmpd -y
インストール後、cfgmakerで設定ファイルを生成します。
sudo cfgmaker public@192.168.1.1 > /etc/mrtg/mrtg.cfg
次に出力先ディレクトリを作成し、Webサーバー(Apache等)でアクセスできるように設定します。
MRTGをCronで定期実行するよう設定すると、5分ごとにデータ収集とグラフ更新が自動化されます。
Cronを使った定期実行の設定
MRTGは通常、Cronジョブとして5分ごとに実行します。
crontabに以下を追記します。
*/5 * * * * /usr/bin/mrtg /etc/mrtg/mrtg.cfg –logging /var/log/mrtg.log
初回実行時は2〜3回連続して実行することで、データが蓄積されてグラフが正常に表示されるようになります。
MRTGの初回起動直後はグラフが表示されないことがありますが、数回実行するとデータが蓄積されてグラフが描画されるようになります。
よくあるトラブルと解決策
MRTGの設定でよく遭遇するトラブルと解決策をまとめると以下のようになります。
「SNMPタイムアウト」は、対象機器でSNMPが有効になっていない、またはコミュニティ名が間違っている場合に発生します。機器側のSNMP設定とコミュニティ名を確認しましょう。
「グラフが表示されない」は、出力ディレクトリのパーミッションが不正である場合に多く見られます。mrtgプロセスがディレクトリに書き込めるよう権限を設定してください。
「データが0のまま」は、MaxBytesの設定が不適切な場合に発生することがあります。実際のインターフェース速度に合わせた値を設定してください。
まとめ
本記事では、MRTGとは何か、意味・機能・ネットワーク監視ツールとしての活用方法・トラフィック測定・SNMP・グラフ生成などについて解説しました。
MRTGはSNMPを使ってネットワーク機器のデータを収集し、HTMLグラフとして可視化するシンプルかつ強力なツールです。
設定ファイルへの記述だけで動作するため、習得コストが低く小規模ネットワークの監視に最適でしょう。
cfgmakerやindexmakerといった補助ツールを活用することで、設定作業をさらに効率化できます。
より高度な機能が必要になった場合はCactiやZabbixへの移行も選択肢となりますが、まずはMRTGでネットワーク監視の基本を体験してみることをおすすめします。