DUICUO

Cactiで2つの画像を結合する方法

Cactiは、帯域幅、ストレージ、プロセッサ、メモリ使用量などのネットワーク要素をグラフィカルに表示するために広く使用されている、優れたオープンソースのネットワーク監視システムです。Webベースのインターフェースにより、さまざまなチャートを簡単に作成・整理できます。ただし、画像のマージ、複数のソースからの集約グラフの作成、Cactiを別のサーバーに移行するなど、一部の高度な機能はデフォルトで提供されていません。Cactiのこれらの機能を使用するには、ある程度の経験が必要です。このチュートリアルでは、2つのCactiイメージを1つに結合する方法を説明します。

[[142692]]

次の例を考えてみましょう。過去6か月間、クライアントAはスイッチAのポート5に接続されていました。ポート5でエラーが発生したため、クライアントはポート6に移行しました。Cactiはインターフェース/要素ごとに異なるグラフを使用するため、クライアントの帯域幅履歴はポート5とポート6に分割されます。その結果、1つのクライアントに対して2つのグラフが表示されます。1つは過去6か月間の古いデータを示し、もう1つはそれ以降のデータを示します。

このシナリオでは、2つのイメージをマージし、古いデータを新しいイメージに追加することで、1人のユーザーの履歴データと新しいデータの両方を1つのイメージに保存することができます。このチュートリアルでは、その方法を説明します。

Cacti は各イメージのデータを独自の RRD(ラウンドロビンデータベース)ファイルに保存します。イメージが要求されると、対応する RRD ファイルに保存されている値に基づいてイメージが生成されます。Ubuntu/Debian システムでは RRD ファイルは/var/lib/cacti/rraに保存され、CentOS/RHEL システムでは/var/www/cacti/rraに保存されます。

イメージをマージする目的は、これらの RRD ファイルを変更して、古い RRD ファイル内の値を新しい RRD ファイルに追加できるようにすることです。

シーン

クライアントサービスは1年以上eth0で稼働していましたが、ハードウェア障害のため、別のサーバーのeth1インターフェースに移行されました。1年以上の履歴データを保持しながら、新しいインターフェースの帯域幅を確認したいと考えています。クライアントは、このデータを1つのグラフにのみ表示したいと考えています。

グラフのRRDファイルを決定する

グラフをマージする最初のステップは、グラフに関連付けられたRRDファイルを特定することです。このファイルは、グラフをデバッグモードで開くことで確認できます。これを行うには、Cactiのメニューから「コンソール > グラフの管理 > グラフを選択 > グラフをデバッグモードで開く」を選択します。

古い画像:

[[142694]]

新しい画像:

[[142695]]

サンプル出力 (Debian システムに基づく) から、2 つのイメージの RRD ファイルを特定できます。

  • 古いグラフ: /var/lib/cacti/rra/old_graph_traffic_in_8.rrd
  • 新しいグラフ: /var/lib/cacti/rra/new_graph_traffic_in_10.rrd

スクリプトを準備する

2つのRRDファイルを結合するために、RRDスプライシングスクリプトを使用します。PHPスクリプトをダウンロードし、/var/lib/cacti/rra/rrdsplice.php(Debian/Ubuntuシステム)または/var/www/cacti/rra/rrdsplice.php(CentOS/RHELシステム)にインストールしてください。

次のステップは、Apache ユーザーがファイルを所有していることを確認することです。

Debian または Ubuntu システムでは、次のコマンドを実行します。

  1. # chown www-data:www-data rrdsplice.php

rrdsplice.php を更新します。次の行を見つけます。

  1. chown ( $finrrd , "apache" );

次の文に置き換えます。

  1. chown ( $finrrd , "www-data" );

CentOS または RHEL システムでは、次のコマンドを実行するだけです。

  1. # chown apache:apache rrdsplice.php

2枚の画像を結合する

スクリプトの構文は、パラメータなしで実行することで取得できます。

  1. # cd /path/to/rrdsplice.php
  2. # php rrdsplice.php

  1. USAGE : rrdsplice . php -- oldrrd = file -- newrrd = file -- finrrd = file

これで、2つのRRDファイルをマージする準備が整いました。古いRRDファイルと新しいRRDファイルの名前を指定するだけです。マージされた結果を新しいRRDファイルに書き換えます。

  1. # php rrdsplice.php --oldrrd=old_graph_traffic_in_8.rrd --newrrd=new_graph_traffic_in_10.rrd --finrrd=new_graph_traffic_in_10.rrd

古いRRDファイルのデータが新しいRRDファイルに追加されました。Cactiは新しいデータをすべて新しいRRDファイルに書き込みます。グラフをクリックすると、古いグラフの週次、月次、年次の記録も追加されていることがわかります。下のグラフの2番目のグラフは、古いグラフの週次記録を示しています。

[[142696]]

まとめると、このチュートリアルでは、2つのCactiイメージを1つに簡単にマージする方法を説明しました。このトリックは、サービスを別のデバイス/インターフェースに移行する際に、2つのイメージではなく1つのイメージだけを処理したい場合に非常に便利です。このスクリプトは、Cisco 1800ルータとCisco 2960スイッチなど、ソースデバイスが同じかどうかに関係なくイメージをマージできるため、特に便利です。

これがお役に立てれば幸いです。