FreeBSD-5.3 cacti-0.8.6b rrdtool-1.0.49

MRTGと同じく、ネットワーク状態やメモリ状態の推移をグラフ化してみるcactiを導入します

PHPでのSNMPサポート

lang/php4-extensionでWITH_SNMP=YESとし、PHPでのSNMPサポートする(net-mgmt/php4-snmp portを導入する)

これを導入していないと、cactiでsnmpからのデータ取得ができません

導入

make install

rootで以下を実行します

依存関係でrrd-toolも同時に導入されます

# cd /usr/ports/net/cacti
# make install clean

cacti用データベースの作成

続いて、cacti用mysqlデータベースを作成します

利用するデータベースはMySQLです

rootにて以下を実行します。

# mysqladmin --user=root create cacti
# mysql cacti < /usr/local/share/cacti/cacti.sql
# mysql --user=root mysql
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser';
mysql> flush privileges;
mysql>\q

/usr/local/share/cacti/include/config.phpの変更

/usr/local/share/cacti/include/config.phpを以下の様に変更します

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";

/etc/crontabへの追加

/etc/crontabに以下を追加し、5分毎に実行する様にします。

*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2%gt;&1

ブラウザでみれる様にする為の設定

apacheのドキュメントルート下(/usr/local/www/data)にcacti設定画面の為のリンクを張ります

# ln -s /usr/local/share/cacti /usr/local/www/data/cacti

また、apacheの設定で、DirectoryIndexにindex.phpが設定されていない場合は、/usr/local/etc/apache2/httpd.confに以下を追加し、apacheを再起動します

DirectoryIndex index.html index.html.var index.php

実行

ブラウザでcacti管理画面にアクセスしてみる

以下のURLでアクセスしてみる

http://localhost/cacti/

NEXT -> NEXT で進んでいくと(途中の入力は初期値でOK)ユーザIDとパスワードの入力画面になるので

ユーザID   : admin
パスワード : admin

を入力します。

続けて、adminのパスワードを新しく入力する様に催促されるので適当な値をいれます。

以降は、その入れたパスワードでログインします。

/usr/local/bin/phpがない!!

/usr/local/bin/phpがない為にcron処理が実行できてません。

lang/php4をいれれば良いとわかり、以下を行った。

# pkg_deinstall -f mod_php4
# portinstall lang/php4
# pkgdb -F
# --->  Checking the package registry database
# Stale dependency: cacti-0.8.6b -> mod_php4-4.3.9,1 (www/mod_php4):
# New dependency? (? to help): php4-4.3.9
# Fixed. (-> php4-4.3.9)
#  :        :
#  :        :
#  :        :

ついでに、/usr/local/etc/pkgtool.confに以下も追加した

ALT_PKGDEP = {
      'www/mod_php4'          => 'lang/php4',
}

cacti側のsnmpに対する設定

cacti管理画面のsetting及びdevice - localhostののsnmpの設定項目を

NET-SNMP 5.x
version 2

に設定する

snmpgetで取得できないデータを取得するには

cactiのsetting画面で、snmpgetへのパス指定をsnmpwalkに指定してあげればとりあえずOKの様です

自分の実行環境では、tcpサブツリーの情報がsnmpgetでは取得できない為、いろいろ考えた挙句、このような解決法を見出した。

関連ページ