Cacti - グラフツール (RRDToolのGUIフロントエンド)

更新履歴

  • 2006/06/05 初版

概要

  • Cacti (カクタイ) はPHP/MySQLを利用したRRDTool用のフロントエンドプログラムです。
  • MRTGと同様なトラフィック監視等のグラフ作成が可能ですが、Cacti の方が圧倒的に便利です。
  • 以下に、Cacti の優れた機能を紹介します。
    • 監視機器やインタフェースの追加・変更が非常に簡単
    • 過去のグラフを閲覧出来る
    • グラフを分類して表示可能 (ツリー表示、一覧表示など)
    • グラフタイトルが簡単に編集可能
    • ユーザ管理が可能
    • テンプレートを使用して、様々なグラフが追加可能
    • オリジナルのグラフの作成が容易に可能
    • プラグインを使用することにより拡張が可能
  • 公式サイトに スクリーンショット がありますので、導入する前にご覧下さい。

バージョン

  • cacti 0.8.6h
  • cactid 0.8.6g

インストール環境

  • CentOS 4.3
    • Apache 2.2.2
    • MySQL 5.0.21
    • PHP 5.1.4
    • RRDTool 1.2.13
    • NET-SNMP5

参考URL

インストール手順

Apache インストール

  • CactiのWebインターフェースを使用するために、Apacheをインストールする。
  • インストール手順については、以下ページを参照。

MySQL インストール

  • Cactiはデータベースを必要とするため、MySQLをインストールする。
  • インストール手順については、以下ページを参照。

PHP インストール

NET-SNMP インストール

  • ルータ・スイッチのトラフィックをグラフ化するには、snmpで取得したデータを元にグラフと作成する。
  • よって、NET-SNMPに含まれる snmpwalk 等のコマンドが必要となる。
  • 本手順では、パッケージ管理システム「yum」でインストールする。
# yum install net-snmp net-snmp-devel net-snmp-utils

RRDTool インストール

  • RRDToolをインストールする。
    • 旧バージョンで必要だった cgilib についてはRRDToolにマージされた模様
  • 作業手順は以下の通り。
    • libart_lgpl,tclのヘッダーファイルのインストール
    • ソースのダウンロード・インストール
# yum install libart_lgpl-devel
# rpm -qa |grep libart
libart_lgpl-2.3.16-3
libart_lgpl-devel-2.3.16-3
# 
# yum install tcl-devel
# rpm -qa |grep tcl
tcl-devel-8.4.7-2
tcl-8.4.7-2
tclx-8.3.5-4
# 
# cd /usr/local/src
# wget http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.2.13.tar.gz
# tar xvzf rrdtool-1.2.13.tar.gz
# cd rrdtool-1.2.13
# 
# ./configure
# make
# make install
# ln -s /usr/local/rrdtool-1.2.13 /usr/local/rrdtool

cacti インストール

  • Cactiをインストールする。
  • 作業手順は以下の通り。
    • ソースのダウンロード
    • Apache公開ディレクトリ(/var/www/html)へのコピー
    • パッチの適用
    • cacti用データベースの作成
    • cactiの設定
# cd /usr/local/src
# wget http://www.cacti.net/downloads/cacti-0.8.6h.tar.gz
# tar xvzf cacti-0.8.6h.tar.gz
# mv cacti-0.8.6h /var/www/html/cacti
# chown -R apache:apache /var/www/html/cacti/
# 
# cd /var/www/html/cacti/
# wget http://www.cacti.net/downloads/patches/0.8.6h/fix_search_session_clear_issue.patch
# wget http://www.cacti.net/downloads/patches/0.8.6h/fix_sql_syntax_related_to_default_rra_id.patch
# wget http://www.cacti.net/downloads/patches/0.8.6h/nth_percentile_empty_return_set_issue.patch
# wget http://www.cacti.net/downloads/patches/0.8.6h/mysql_5x_strict.patch
# wget http://www.cacti.net/downloads/patches/0.8.6h/database_autoincrement_corruption.patch
# patch -p1 -N < fix_search_session_clear_issue.patch
# patch -p1 -N < fix_sql_syntax_related_to_default_rra_id.patch
# patch -p1 -N < nth_percentile_empty_return_set_issue.patch
# patch -p1 -N < mysql_5x_strict.patch
# patch -p1 -N < database_autoincrement_corruption.patch
# 
# 
# mysqladmin -u root -p create cacti
Enter password: 管理者パスワードを入力
# 
# mysql -u root -p < cacti.sql cacti
Enter password: 管理者パスワードを入力
# 
# mysql -u root -p cacti
Enter password: 管理者パスワードを入力
Welcome to the MySQL monitor.  Commands END with ; OR \g.
Your MySQL connection id IS 7 to server version: 5.0.21-LOG
 
Type 'help;' OR '\h' for HELP. Type '\c' to clear the buffer.
 
mysql> SHOW tables;
+---------------------------+
| Tables_in_cacti           |
+---------------------------+
| cdef                      |
| cdef_items                |
| colors                    |
| data_input                |
| data_input_data           |
| data_input_fields         |
| data_local                |
| data_template             |
| data_template_data        |
| data_template_data_rra    |
| data_template_rrd         |
| graph_local               |
| graph_template_input      |
| graph_template_input_defs |
| graph_templates           |
| graph_templates_gprint    |
| graph_templates_graph     |
| graph_templates_item      |
| graph_tree                |
| graph_tree_items          |
| host                      |
| host_graph                |
| host_snmp_cache           |
| host_snmp_query           |
| host_template             |
| host_template_graph       |
| host_template_snmp_query  |
| poller                    |
| poller_command            |
| poller_item               |
| poller_output             |
| poller_reindex            |
| poller_time               |
| rra                       |
| rra_cf                    |
| settings                  |
| settings_graphs           |
| settings_tree             |
| snmp_query                |
| snmp_query_graph          |
| snmp_query_graph_rrd      |
| snmp_query_graph_rrd_sv   |
| snmp_query_graph_sv       |
| user_auth                 |
| user_auth_perms           |
| user_auth_realm           |
| user_log                  |
| version                   |
+---------------------------+
48 rows IN SET (0.01 sec)
 
mysql> GRANT ALL ON cacti.* to cactiuser@localhost identified BY 'cactiuser'; ※ 'cactiuser' はパスワード
Query OK, 0 rows affected (0.40 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit
Bye
# vi /var/www/html/cacti/include/config.php

/var/www/html/cacti/include/config.php

以下のように編集(28行目から) ※手順通り作業を行っていれば変更点は無し

27 /* make sure these values refect your actual database/host/user/password */
28 $database_type = "mysql";
29 $database_default = "cacti";
30 $database_hostname = "localhost";
31 $database_username = "cactiuser";
32 $database_password = "cactiuser";
33 $database_port = "3306";

cactid インストール

  • ポーリングの速度を上げるために、専用プログラム cactid をインストールする。
  • 作業手順は以下の通り。
# cd /usr/local/src
# wget http://www.cacti.net/downloads/cactid/cacti-cactid-0.8.6g.tar.gz
# tar xvzf cacti-cactid-0.8.6g.tar.gz
# cd cacti-cactid-0.8.6g
# wget http://www.cacti.net/downloads/cactid/patches/0.8.6g/mysql_max_packet_size.patch
# patch -p1 -N < mysql_max_packet_size.patch
# 
# ./configure
# make
# make install
# 
# cp cactid.conf /usr/local/cactid/bin
# vi /usr/local/cactid/bin/cactid.conf

/usr/local/cactid/bin/cactid.conf

以下のように編集(31行目から) ※おそらくデフォルトでOK

31 DB_Host         localhost
32 DB_Database     cacti
33 DB_User         cactiuser
34 DB_Pass         cactiuser
35 DB_Port         3306

cacti 初期設定

  • 以下URLにアクセスして、cactiの初期設定を行う。
    • http://<インストールしたサーバのIPアドレス>/cacti/
  • [Next] をクリックする。

[Next] をクリック

  • [New Install] を選択して [Next] をクリックする。

[New Install]を選択して[Next]をクリック

  • RRDToolのPATHを修正して [Finish] をクリックする。

RRDToolのPATHを変更して[Finish]をクリック

  • ログイン画面が表示されるので、初期設定である ユーザ名:adminパスワード:admin を入力する。

ログイン画面

  • 初期パスワードを変更するように求められるので、新しいパスワードを設定する。

新しいパスワードの設定

cacti WebGUI画面での設定

  • cactiの設定を変更する。
    • RRDToolのバージョン
    • Pollerの設定

[Console] -> [Settings] -> [General]

  • RRDToolのバージョンを 「RRDTool 1.2.x」に変更
  • デフォルトのsnmpコミュニティ名を環境に応じて変更

[Console] -> [Settings] -> [General]

[Console] -> [Settings] -> [Paths]

  • 各コマンドへのパスを指定 (修正があれば)
  • Cactidのパスを追加

[Console] -> [Settings] -> [Paths]

[Console] -> [Settings] -> [Poller]

  • PollerType を cactid に変更。

[Console] -> [Settings] -> [Poller]

注意事項:cactid特有の問題

  • cactid を使用する場合は、「Data Input Methods」の各メソッドで指定されている Perl についてはフルパスで設定すること。(perl → /usr/bin/perl)
  • デフォルトで用意されている Data Input Methods で修正が必要な箇所は以下の通り。
    • [Console] → [Data Input Methods] →
      • [Linux - Get Memory Usage]
      • [Unix - Get Load Average]
      • [Unix - Get Logged In Users]
      • [Unix - Get System Processes]
      • [Unix - Get TCP Connections]
      • [Unix - Get Web Hits]
      • [Unix - Ping Host]
    • 設定画面の修正例 ([Linux - Get Memory Usage])

Linux - Get Memory Usage

  • ローカルディスクの容量チェックについては、以下xmlファイルを修正すること。
# vi /var/www/html/cacti/resource/script_queries/unix_disk.xml

以下の内容に編集(4行目)

4         <script_path>/usr/bin/perl |path_cacti|/scripts/query_unix_partitions.pl</script_path>
  • Perlのパスを変更後、ポーラーキャッシュを削除すること(設定が反映させるため) ※ポーリングを一度もしていない場合は不要
    • [Utilities] → [System Utilities] → [Clear Poller Cache]

[Clear Poller Cache]を選択

  • 参考情報:PerlのPATHを修正する前のcactidポーリング時のエラーメッセージ
# /usr/local/bin/php /var/www/html/cacti/poller.php
CACTID: Host[1] ERROR: Empty result [127.0.0.1]: 'perl /var/www/html/cacti/scripts/linux_memory.pl MemFree:'
CACTID: Host[1] DS[3] WARNING: Result from SCRIPT not valid. Partial Result: ...
CACTID: Host[1] ERROR: Empty result [127.0.0.1]: 'perl /var/www/html/cacti/scripts/linux_memory.pl SwapFree:'
CACTID: Host[1] DS[4] WARNING: Result from SCRIPT not valid. Partial Result: ...
CACTID: Host[1] ERROR: Empty result [127.0.0.1]: 'perl /var/www/html/cacti/scripts/loadavg_multi.pl'
CACTID: Host[1] DS[5] WARNING: Result from SCRIPT not valid. Partial Result: ...
CACTID: Host[1] ERROR: Empty result [127.0.0.1]: 'perl /var/www/html/cacti/scripts/unix_processes.pl'
CACTID: Host[1] DS[7] WARNING: Result from SCRIPT not valid. Partial Result: ...
CACTID: Host[1] ERROR: Empty result [127.0.0.1]: 'perl /var/www/html/cacti/scripts/unix_users.pl'
CACTID: Host[1] DS[6] WARNING: Result from SCRIPT not valid. Partial Result: ...
05/18/2006 07:23:15 PM - SYSTEM STATS: Time:1.0924 Method:cactid Processes:1 Threads:1 Hosts:2 
HostsPerProcess:2 
DataSources:5 RRDsProcessed:5
OK u:0.00 s:0.01 r:0.02
OK u:0.00 s:0.01 r:0.02
ERROR: Not enough arguments
OK u:0.00 s:0.01 r:0.02
OK u:0.00 s:0.01 r:0.02
# 

データ収集スクリプトの cron への登録

  • 5分毎にデータ収集スクリプト「poller.php」を実行させるため、cronに登録する。
# crontab -e

以下を追加

*/5 * * * * /usr/local/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
 
manage/cacti/install_linux.txt · 最終更新: 2009/02/05 18:16 by kikuzou
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki NINJA TOOLS