プラグイン

  • 必要環境

プラグインアーキテクチャをインストールしておく必要があります。
http://cactiusers.org/

  • インストール方法

基本的なパターンは下記のとおりです。

forum や cactiusers からプラグインをダウンロードしてきます。

    • 展開して配置

ダウンロードした圧縮ファイルを展開して、下記の場所に保存します。
/plugins/

    • Config 変更

下記のファイルを開いてプラグインの情報を追加します。
/include/global.php (or config.php)
追記内容
$plugins[] = '<プラグインディレクトリ名>';

    • DB のテーブル作成

※たいていのプラグインは自動的に作成してくれるか、必要ないことが多いです。
プラグインディレクトリ内にある *.sql ファイルを MySQL にインポート
$ mysql -u "user 名" -p "DB 名" < hogehoge.sql

    • GUI から確認

この後、CactiGUI 上で設定を行います。
User Management にて、管理ユーザを選択。
Realm Permissions 部分でチェックボックスにチェックを入れる
これで、設定や閲覧ができるようになります。

スクリプト

Cacti では、SNMP だけでなく、スクリプトを利用したデータの取得が可能です。スクリプ
トを利用する場合は、[Data Input Methods]としてスクリプトを登録します。簡単なものだ
と、一つの値が返り値となるスクリプトを作成すれば、[Data Input Methods]として登録可
能です。

データ収集スクリプトの配置

データ収集用のスクリプトcacti/scripts/ 以下に配置します。

スクリプトの仕様
  • 取得するデータが一つの場合

値だけを標準出力に返すスクリプトにしてください。

  • 取得するデータが複数の場合

取得するデータが複数ある場合は、下記のようなフォーマットで出力するスクリプトを作
成します。この項目名をデータインプットメソッドに登録することで、値を識別します。
<項目名1>:<値1> <項目名2>:<値2> <項目名3>:<値3>...

データインプットメソッドにて引数を渡す設定が可能です。
また、引数はグラフ単位で設定することも可能です。

データインプットメソッド作成

データインプットメソッドには、作成したスクリプトと引数、スクリプトと返り値にある項目名などを登録します。

  • Data Input Methods

データインプットメソッドの名前や、スクリプトを登録します。

  • Input Fields

引数がある場合は、引数を変数として登録します。

  • Output Fields

返り値の名前と、説明を登録します。

データテンプレート/グラフテンプレート作成

作成したデータインプットメソッドを基にデータテンプレート、グラフテンプレートを作成します。

テンプレート

テンプレートの概要

Cacti では、データを取得するための設定と、グラフを描画するための設定をテンプレート化して利用します。

  • テンプレートの種類と役割

テンプレートの種類と役割は下記の通りです。

    • データテンプレート

データを取得するためのテンプレートです。
データの取得方法は、SNMP, Script の大きく2種類です。

    • グラフテンプレート

グラフを描画するためのテンプレートです。元となるデータはデータテンプレートで定義
されているものを利用します。

    • ホストテンプレート

ホストの種類にあわせてグラフテンプレートやデータクエリーをまとめてグルーピングし
たものです。

テンプレートのインポート

Data Template と Graph Template はインポートが可能です。

  • テンプレートの取得

http://forums.cacti.net/ などで探せば一般的な機器のものは見つかります。
テンプレートを見つけたらローカルの PC にダウンロードします。

  • テンプレートのインポート

Console タブの Import Templates にてテンプレートのインポートを行います。

  • 確認

各テンプレートのページにて、インポートしたテンプレートが存在することを確認します。

テンプレートの作成

単一 OID から取得したデータをテンプレート化する場合は簡単に作成できますが、Index を基に取得対象を洗い出してグラフ化する場合は、Data Queries を作成する必要があり、少し骨が折れます。ここでは、単一 OID の値をテンプレート化する手順を記載します。

データテンプレートの作成
  • データテンプレートの新規作成

Console タブの Data Templates ページの右上にある Add をクリックします。
下記の項目を入力します。

    • Data Templates
      • Name

The name given to this data template.
テンプレートの名前を定義します。

    • Data Source
      • Name

Use Per-Data Source Value (Ignore this Value)
データソース名を定義します。変数が使えるので、通常下記のように名前をつけます。
|host_description| - XXX

      • Data Input Method

This field is always templated.
データインプットメソッドを選択します。OID を指定する場合は Get SNMP Data を選択
します。

      • Associated RRA's

This field is always templated.
特別なことがない限り Default のままです。

      • Step

Use Per-Data Source Value (Ignore this Value)
通常 300(5分) です。

      • Data Source Active

Use Per-Data Source Value (Ignore this Value) Data Source Active
チェックを入れます。

    • Data Source Item
      • Internal Data Source Name

Use Per-Data Source Value (Ignore this Value)
rra ファイルに付与されるデータソース名です。

Use Per-Data Source Value (Ignore this Value)
取得できる最小の値を入力します。(CPU 使用率であれば 0)

Use Per-Data Source Value (Ignore this Value)
取得できる最大の値を入力します。(CPU 使用率であれば 100)

      • Data Source Type

Use Per-Data Source Value (Ignore this Value)
取得する値の種類を選択します。これは RRD Tool 側の仕様です。
通常は GAUGE か COUNTER を利用します。
GAUGE :その時々の値(CPU使用率、温度、LB のセッション数など)
COUNTER :その名の通りカウンターです。
DERIVE :カウンターと似ていますが、カウンターが一回りした際のオーバーフロー
チェックが除かれます。
ABSOLUTE:ABOSOLUTE は, 読み込み時にリセットするカウンタ用です。

      • Heartbeat

Use Per-Data Source Value (Ignore this Value)
step を 300 とした場合は 600 とします。
heartbeat は, このデータソースの2つの update 間で, データソースの値が *UNKNOWN*
と仮定されるまでに経過する時間の最大値を秒単位で定義します。
ここまで入力したら、一旦 SAVE します。SAVE すると、次の入力項目が出てきます。
次に入力する値は OID のみで結構です。

    • Custom Data
      • OID

対象の OID を入力してください。
これで、データテンプレートの作成は完了です。SAVE を押して保存してください。

グラフテンプレートの作成

グラフテンプレートを1から作成するのは難しいので、他のテンプレートをコピーして作成することをお勧めします。
テンプレートのコピーは、テンプレートを選択して、右下のセレクトボックスから Duplicate を選択すればコピーを作成できます。

  • グラフテンプレートの編集

テンプレートのコピーを作成したら、各項目を別途作成した Data Template 用に編集します。

    • Template

ここはテンプレートの名前なので適切な名前を入れてください。

    • Graph Template

ここはグラフの設定なのでそれぞれ見やすい設定にしてください。
これは rrdtool の仕様が大部分なので、rrdtool について調べればどのような設定かは
理解できるはずです。

    • Graph Template Items

ここでは、グラフを描画するための入力データの設定を行います。
アイテム一つずつが入力データとなっています。グラフを描画するためのデータだけでな
く、MAX/MIN/AVERAGE などのデータもアイテムの一つとなります。

ホストテンプレートの作成

ホストテンプレートはグラフテンプレートとデータクエリーの集まりなので、必要なテンプレートを選択するだけです。

  • ホストテンプレートの作成

これまで同様、Host Templates のページの右上にある Add をクリックします。
テンプレートの名前を入力します。

  • ホストテンプレートへの登録

名前を定義したら、あとは必要なテンプレートを登録するだけです。

テンプレートのエクスポート

作成したテンプレートはエクスポートすることができますので、公開したり、他のノードで利用することが簡単にできます。

グラフ描画の仕組み

Cacti にてデータを取得してグラフを作成するパターンとしては、下記の三つになります。

  • 単一 SNMP OID からデータ取得
  • SNMP のリストからデータ取得
  • スクリプトでのデータ取得

それぞれの方法について説明をします。

単一 SNMP OID からデータ取得

単一の SNMP OID からデータを取得してグラフ化をする場合は、Data Template, Graph Template を利用します。具体例としては、CPU や Memory の使用率を取得する場合などです。

この場合、対象の SNMP OID を調べ、Data Template に Data Input Method を Get SNMP Data として登録を行います。次にこの Data Template と紐づいた Graph Template を作成し、Device(対象ノード)に適用します。Template の説明は次の章にて説明します。

SNMP(もしくはスクリプト) のリストからデータ取得

SNMP のリストとは、スイッチのインターフェースのように、対象ノードによって可変なパラメータを使ってデータを取得する場合に利用します。具体的には、Data Queries 用のテンプレートを作成し、対象ノードごとに Index 情報を取得して、その Index を元にデータ取得対象を選択します。

この場合も単一 SNMP OID からデータを取得する場合と同様に、Data Template と Graph Template を作成しますが、追加で Data Queries を登録する必要があります。Data Queries は、XML ファイルで記述したもので、追加で作成する場合は、XML ファイルを作成する必要があります。GUI から設定できるのは XML ファイルの指定のみです。また、Data Queries を Data Templates に登録する場合は、Data Input Method に Get SNMP Data (Indexed) を指定します。

スクリプトでのデータ取得

スクリプトの実行結果を元データとして、グラフを描画する場合は、スクリプトを Data Input Methods に登録します。この Data Input Methods を Data Templates に登録し、Graph Template を作成すれば、グラフを描画できます。詳細はスクリプトの章で説明します。

グラフ描画

概要

テンプレートについては、テンプレートの章にて詳細に説明を行うので、ここではグラフを描画するための設定を中心に説明します。
グラフの描画を行う際は、まずターゲットとなるホストを登録します。
その後、グラフ描画用のテンプレートを対象ホストに適用することで、データを取得し、グラフを描画します。また、グラフ描画設定を行った後、どのように表示させるかを設定する必要があります。

簡単に言うと下記の順に設定していきます。

  1. ホスト登録
  2. テンプレートの適用
  3. グラフ表示設定

ホスト登録

  • Console 画面から Management の Devices を選択する。
  • 右上の Add リンクをクリックする。


  • 下記のような画面になるので、項目を入力する。

下記の設定項目を入力します。

    • Description

ホストに付ける名前なので、わかりやすいものなら何でもいいです。

    • Hostname

IP Address または、名前解決が出来るホスト名を入力します。
hosts か DNS で引けるものを入力してください。

    • Host Template

対象に合ったものを選択します。
Host Template は複数のグラフテンプレートの集まりです。
機器の種類によりテンプレートを用意しておけば簡単に設定可能です。

    • Notes

特に必要ないですが、注意書きなどあれば入力します。

必要に応じて変更してください。

  • ホスト登録

項目の入力が終わったら、Create ボタンを押してください。

  • 確認

Device 画面から今作成したホストをクリックして、左上の SNMP Information が正常に
取得されていることを確認してください。

※Error になっている場合は、コミュニティ名やホスト名(IP Address)が間違っている可能性があります。また、対象ノードの SNMP が起動していることや、ネットワーク的に SNMP のポートに対して接続可能かどうかも確認してください。

テンプレートの適用

Cacti では、グラフの取得対象はすべてテンプレートで管理されており、対象ノードにテンプレートを当てはめていくことで、データの取得とグラフ化を行っています。
テンプレートの詳細については、テンプレートの章にて説明します。

  1. Console タブにて、New Graphs 画面を開く
  2. 左上のリストボックスから対象のホストを選択
  3. データ取得対象にチェックを入れて[Create]ボタンをクリックする

ホストを登録した際選択した、Host Template によってデータの取得対象が変わります。
※Host Template というのはいくつかの Template をまとめたものです。


グラフ表示設定

グラフ表示画面は下記の三つがあります。
graphs タブに移ると、右上に下記のようなアイコンがあり、それぞれの表示形式に従ってグラフが表示されます。


  • Tree View

Tree View でグラフを表示するには別途設定が必要です。
標準では、localhsot のグラフが Tree View で閲覧可能です。

  • List View

List View は作成しているすべてのグラフのリストが表示されます。
また、グラフの検索も可能です。

Preview View は作成しているグラフが順番に並んで表示されます。
1画面に表示されるグラフの数は Settings にて変更可能です。

Tree View の設定方法

Console タブの Graph Trees にて設定を行います。

  • Root の作成

Graph Tree を作成するには、画面右上の「add」リンクから追加を行います。
ここで、Tree の root となる部分の名前を決めます。Sorting Type には下記の項目が指定可能です。

    • Manual Ordering (No Sorting)
    • Alphabetic Ordering
    • Natural Ordering
    • Numeric Ordering

※古いバージョンでは、Natural Ordering がありませんでしたが、0.8.6 ぐらいから追加されました。
※ちなみに、Natural Ordering では、5 よりも 10 のほうが後に並ぶようになっています。

  • Item の追加

Root を作成したら、その下に Item を追加していきます。
Item には下記の三つの項目が選択可能です。

    • Header

さらに分岐を行うための名前を定義します。
Header を作成したら、その下にさらに Header/Graph/Host を設定することが可能です。

    • Graph

対象のグラフを選択することができます。

    • Host

対象の Host に紐付いたグラフを表示することができます。

基本設定

概要

Cacti のセットアップが終了すれば、基本設定を行います。基本設定ではユーザ管理や、基本的なグラフ描画設定を行います。

Settings

Console 画面の Settings にて下記の項目ごとにタブが分かれており、それぞれのタブで設定を行います。
プラグインによってはここに設定項目が追加される場合があります。

General

ここでは、ログと SNMP に関する設定を行います。

  • ログ
 cacti のログを syslog に飛ばす設定や、出力させるログのプライオリティを設定する
 ことができます。SNMP でデータが取得できないなど、何か問題がある場合はログのプラ
 イオリティをあげて調査を行います。
 標準的に利用する SNMP のバージョンや、コミュニティ名を入れておくと便利です。
Paths

ここでは各プログラムへのパス情報を設定します。
cactid(spine) のパスは手動で入力する必要があります。

Poller

ここでは、ポーリングに関する設定を行います。
データの取得対象が多い場合は、ポーラーのプロセス数やスレッド数を多くすることでパフォーマンスを上げることができます。
また、ホストの死活確認の方法として、pingSNMP が選択でき、ping の種類(ICMP, TCP, UDP)も選択することが可能です。

Graph Export

ここでは、グラフのエクスポート設定が可能です。
標準の RRD Tool の設定では、下記のデータしか保存せず、時間がたつにつれて平均された丸まったデータとなってしまいます

データ 保存期間
1分平均 1時間
5分平均 1日
30分平均 1週間
2時間平均 1ヶ月
1日平均 1年間

そのため、ある時点の Snapshot を保管しておきたい場合は、グラフのエクスポートを行います。
※ただ、グラフのエクスポートを行う場合は、サーバに負荷がかかるため、データ量が多い場合は注意が必要です。
※また、この設定だけでは世代管理は出来ないため、世代を持たせたい場合は別途ローテーとする仕組みが必要です。

  • 方法
    • ローカルディスクに保存
    • FTP で put
    • SFTP で put
Visual

ここでは、表示上の設定を行います。
例えばグラフのタイトルにスイッチの description を入れた場合は、すべて表示できない場合があるため、グラフタイトルの文字数を大きくします。

Authentication

ここでは、ユーザ認証の設定を行います。

User Management

ここでは、ユーザアカウントの管理を行います。
ユーザごとの表示・編集権限の設定や、ユーザごとに表示方法の設定を定義できます。

アカウントのパスワード設定

標準では、admin と guest アカウントが存在していますが、guest アカウントは disable になっているため、このアカウントを使うには一旦 admin でログインして guest アカウントを有効にいする必要があります。
また、標準のアカウントとパスワードは下記の通りです。

 アカウント:admin
 パスワード:admin

パスワードの変更方法は下記の通りです。

 Console タブ --> User Management --> 対象のアカウントを選択
 下記の画面から新しいパスワードを入力します。

アカウントを有効にする場合も、同様の画面を開いて、「Enabled」の項目にチェックを入れます。

アカウント作成

User Management 画面の右上にある「add」リンクからユーザを作成します。

ユーザの追加時には下記の画面にある項目と、権限を設定する必要があります。

その他設定

log ディレクトリ変更

 # cd /var/log
 # mkdir cacti
 # chown cacti:cacti cacti
 settings の Paths タブにて、log のディレクトリを変更する
 /var/www/cacti/log --> /var/log/cacti