Cactiのインストール RRDToolを利用したサーバ監視ツール
CactiとはRRDToolを利用したサーバ監視ツールで、サーバ負荷やネットワークなどの状況をグラフ化して時系列に表示させることができるwebツールです。
Cacti公式サイト
RRDTool公式サイト
使用するには
RRDTool
PHP
webサーバ(ApacheやIIS)
MySQL
が必要です。
MRTGを利用したトラフィック(ネットワークの負荷)を監視をするにはSNMP,SNMPDが必要です。
インストールはすべてyumで可能です。
[参考記事] Apacheをyumでインストールする
[参考記事] PHPをyumでインストールする
[参考記事] MySQLのインストール
RRDToolのインストール
yum install rrdtool
SNMPのインストール
yum install net-snmp
Cactiのインストール
yum install cacti
SNMPの設定ファイルは/etc/snmp/snmpd.confです。必要があれば設定を変更します。
SNMPDを起動します。
/etc/rc.d/init.d/snmpd start
OS再起動時にも自動でSNMPDが立ち上がるように設定します。
chkconfig snmpd on
MySQLにCacti用のデータベース、ユーザを作成します。
データベース名 cacti
ユーザ名 cactiuser
とします。
# mysql --u root -p mysql mysql> create database cacti; mysql> grant all on cacti.* to cactiuser@localhost identified by '【パスワード】'; mysql> flush privileges; mysql> \q
Cactiの初期データをデータベースに登録します。
Cactiインストール時にcacti.sqlが保存されるので、そのSQLを取り込みます。
cacti.sqlファイルを探します。
# updatedb # locate cacti.sql /usr/share/doc/cacti-0.8.7g/cacti.sql
cacti.sqlファイルを取り込みます。
# mysql -u root -p -D cacti < /usr/share/doc/cacti-0.8.7g/cacti.sql
Cactiをyumでインストールすると、/usr/share/cacti/以下にインストールされます。
このディレクトリ以下に設定ファイルがあるので、MySQLの接続情報の設定をします。
include/config.php
$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cactiuser"; $database_port = "3306";
スポンサーリンク
実際にはこのconfig.phpは/etc/cacti/db.phpのシンボリックリンクになっていて、権限はユーザ名cactiグループ名apacheになっています。
次にApacheの設定をします。
Cactiをインストールすると/etc/httpd/conf.d/cacti.confが作成されますが、アクセス制限が127.0.0.1のみアクセス可能になっています。
ローカル以外からアクセスする場合にはアクセス制限を修正します。
vi /etc/httpd/conf.d/cacti.conf
Alias /cacti /usr/share/cacti
<Directory /usr/share/cacti/>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
# ここにアクセス可能なIPを設定します。
Allow from xxx.xxx.xxx.xxx
</Directory>
設定を変更したらApacheを再起動します。
/etc/init.d/httpd restart
この設定だとAliasを使用しているため、バーチャルホストを使用して複数のドメインを管理している場合、どのドメインからもアクセスできてしまうので、シンボリックリンクによって指定する方法もあります。
ln -s /usr/share/cacti /var/www/html/cacti
これで次のアドレスでサーバにアクセスするとcactiのインストール画面が表示されます。
http://www.example.com/cacti/
ここでインストール画面が表示されず、次のようなエラーが出るときにはMySQLに接続できていません。
FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid MySQL database name in 'include/config.php'
include/config.phpやMySQLの設定を確認します。
それでも同じエラーが出る場合は、一旦include/config.phpのhostnameの設定をlocalhost以外にしてみてください。
このときも
MySQL server on 'localhost'
と出る場合には、include/config.phpが読み込めていません。
include/config.phpの権限設定を確認してApacheからアクセスできるようにします。
Cactiをyumでインストールするとinclude/config.phpの実体が/etc/cacti/db.phpなので、注意してください。
うまく設定できると次のような画面が出ます。

新規インストールを選択します。

各パス設定を確認します。

インストールが完了すると、ログイン画面になります。
初期アカウント: admin
初期パスワード: admin

ただこのとき、まだグラフは表示されません。(これは正常です。)
グラフを生成するにはpoller.phpを実行する必要があります。
poller.phpの実行にはroot権限で実行する方法とcactiuserを作成して実行する方法があります。
cacti用のユーザを作成する場合
useradd cactiuser
rraディレクトリとlogディレクトリに書き込み権限を与えます。
chown -R cactiuser:cactiuser rra/ log/
cactiuserになり、poller.phpが実行できることを確認します。
# su cactiuser $ /usr/bin/php /usr/share/cacti/poller.php
5分ごとにpoller.phpが実行されるようにcronを設定します。
cronの設定は次の方法のいずれか1つを指定します。
cacti用のcronを作成するには/etc/cron.d/cactiを作成して設定します。
# vi /etc/cron.d/cacti */5 * * * * /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
rootのcronに指定するには、実行権限をcactiuserに指定して設定します。
crontab -e */5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1
rootユーザの状態で、cactiuserのcronに指定するには次のコマンドで指定できます。
crontab -u cactiuser -e */5 * * * * /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
rootでpoller.phpを実行すると、ログファイルなどがroot権限になってしまうので、cactiuserで上書きできなくなるので注意してください。
標準でpoller.phpはcmd.phpを使用しますが、このcacti-spineを使用するとpoller.phpの実行が早くなります。
5分に1回実行するものなので、より早いものを使用したほうがいいです。
yumでインストールすることができますが、SNMPとのバージョンが合わなくて次のような実行エラーが出ることがあります。
SPINE: Poller[0] ERROR: SNMP Library Version Mismatch (5.3.1 vs 5.3.2.2) (Spine parent)
標準のリポジトリにはないので、サードパーティのインストールになります。
[参考記事] Repoforge(RPMForge) 基本リポジトリで提供されていないパッケージのyumインストール
yum install cacti-spine
バージョンが合わない場合にはソースから最新のcacti-spineをインストールします。
ソースからインストールするときにはmysql-develが必要です。
$ cd /usr/local/src $ wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz $ tar -zxvf cacti-spine-0.8.7g.tar.gz $ cd cacti-spine-0.8.7g # ./configure # make # make install
configureで次のようなエラーが出るときにはmysql-develがインストールされていません。
configure: error: Cannot find MySQL headers.
cacti-spineにもMySQLへの接続設定をします。
vi /etc/spine.conf DB_Host localhost DB_Database cacti DB_User cactiuser DB_Pass cactiuser DB_Port 3306
web画面上でcacti-spineを使用する設定をします。
Setting → Pathタブでspineのパスを設定します。

pollerの実行をcmd.phpからspineに変更します。

グラフが生成されないときはログファイルlog/cacti.logを確認します。
またSNMPが実行できるか確認します。
$ snmpget -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.11.50.0
$ snmpwalk -c public 127.0.0.1 .1.3.6.1.4.1.2021.2.1
$ snmpget -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.11.50.0
$ snmpwalk -v 1 localhost -c private
次のエラーが出るときにはMIBが設定されていません。
$ snmpget -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.11.50.0 Error in packet Reason: (noSuchName) There is no such variable name in this MIB. Failed object: UCD-SNMP-MIB::ssCpuRawUser.0
関連記事
- Apacheから2GB以上のファイルをダウンロードしようとすると403エラーが出ます
- [warn] _default_ VirtualHost overlap on port 80, the first has precedence エラー
- Zend Serverとは
- 特定のディレクトリのみベーシック認証を外す方法
- svn: '/home' does not appear to be a URL 同サーバ内にあるリポジトリの指定
- SVNリポジトリを別のサーバに移行する方法
- svn: Repository moved temporarily; please relocate PROPFIND request failed
- locateデータベースの更新
- JP106キーボードを使用する設定
- VirtualBoxでホストOSと同じネットワークにする方法
- VMware Serverのファイル・サービス
- VirtualBox、仮想OSのインストール
- IPアドレス制限とベーシック認証を併用する方法
- memcachedの仕組み(オンメモリストレージ・Slab Allocator)
- 会員専用ページを作る方法 (ベーシック認証 / Basic認証 / 基本認証)
- CGI(Perl)をApacheで使用するときの設定
- NTPサーバで時計を調節する (the NTP socket is in use, exiting とは)
- CVSについて
- Oracle Berkeley DBのインストール
- VMware Serverの使い方
- VMWare Serverのインストール
- webサーバーのレスポンスコード
- PHP
- CakePHP、Symfony、Zend Frameworkの比較
- SSL(HTTPS)でファイルのダウンロードができない場合
- str関数、preg関数、ereg関数の速度比較
- eGroupWare [バグ追跡システム]
- OpenTask [バグ追跡システム]
- Fatal error: Maximum execution time of 30 seconds exceededの対処法
- fgetcsv関数を文字化け対応 setlocaleの文字コード指定
- Twitter APIを使用する (Twitterアプリケーション登録)
スポンサーリンク






