RRDtool+Cacti

説明

代表的なサーバ監視ツール MRTG に変わる、より柔軟な描画が出来る RRDtool と、そのフロントエンドして Web ベースで管理を行える Cacti の組み合わせ。
Cacti は高機能で柔軟な設定が行えるため初回導入時には手間が掛かるが、一度導入してしまえば監視対象の増設等にすぐさま対応できる。

 

入手

それぞれの公式サイトより最新版を入手。

RRDtool ダウンロードページ
Cacti ダウンロードページ

 

必要環境

Cacti の必要環境として以下の条件がある。

  • RRDTool 1.0.49 or 1.2.x or greater
  • MySQL 3.23 or greater, 4.0.20d or greater highly recommended for advanced features
  • PHP 4.1 or greater, 4.3.6 or greater highly recommended for advanced features
     
    この他に Apache? 等の Web サーバが稼動している事と Net-SNMP 等の SNMP エージェントが監視対象サーバにインストールされている必要がある。
    ここでは一台のホストだけで管理/監視とするものとし、Net-SNMP, Apache?, PHP, MYSQL はすでにインストールされているものとする。
 

インストール

最初に RRDtool をインストールし、その後 Cacti のインストールと設定を行う。

RRDtool のインストール

  1. 必要なライブラリを揃える
    RRDtool が描画する際に様々なライブラリを必要とする。
    これらに関しては OS のパッケージ管理システム(ports, apt-get, rpm)を利用してインストールしておく。
    ・zlib
    ・libpng-config
    ・freetype
    ・libart_lgpl
     
  2. 取得したアーカイブを展開しインストールする
    $ tar xvzf rrdtool-1.2.12.tar.gz
    $ cd rrdtool-1.2.12
    $ configure --prefix=/usr/local/rrdtool-1.2.12
    $ make
    $ sudo make install 

  3. シンボリックリンクを張る
    $ sudo ln -s /usr/local/rrdtool-1.2.12 /usr/local/rrdtool


※RRDtool のビルドに失敗する場合
なお、パッケージシステムを利用してインストールしたライブラリが古く、rrdtool のビルドに失敗する場合がある。
その場合は、RRDtool build ページにあるように、各ライブラリを /tmp 以下等の一時ディレクトリ以下にスタティックライブラリの形でインストールし、その後 rrdtool をビルドすると良い。

  1. RRDtool をビルドするディレクトリを宣言しておく
    BUILD_DIR="作業用一時ディレクトリ"
    mkdir -p 作業用一時ディレクトリ

  2. zlib コンパイル
    cd $BUILD_DIR
    wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/zlib-1.2.2.tar.gz
    tar  zxf zlib-1.2.2.tar.gz
    cd zlib-1.2.2
    env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb
    make
    make install

  3. libpng-config コンパイル
    cd $BUILD_DIR
    wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libpng-1.2.8-config.tar.gz
    tar zxvf libpng-1.2.8-config.tar.gz
    cd libpng-1.2.8-config
    env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
       ./configure --disable-shared --prefix=$BUILD_DIR/lb
    make
    make install

    zlib に関しては大概 OS にインストールされているので、その場合は CPPFLAGS と LDFLAGS をセットせずにビルドする

  4. freetype ビルド
    cd $BUILD_DIR
    wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/freetype-2.1.9.tar.gz
    tar zxvf freetype-2.1.9.tar.gz
    cd freetype-2.1.9
    env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \
       ./configure --disable-shared --prefix=$BUILD_DIR/lb
    make
    make install

  5. libart_lgpl ビルド
    cd $BUILD_DIR
    wget http://people.ee.ethz.ch/oetiker/webtools/rrdtool/pub/libs/libart_lgpl-2.3.17.tar.gz
    tar zxvf libart_lgpl-2.3.17.tar.gz
    cd libart_lgpl-2.3.17
    env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb
    make
    make install

  6. ranlib の実行
    BSD系(mac os10)は、ranlib コマンドを実行する。GNU/Linux や Solaris は必要なし。
    $ ranlib $BUILD_DIR/lb/lib/*.a

  7. rrdtool のビルドとインストール
    インストールしたライブラリへの環境変数をセットしてからビルド〜インストールする
    IR=-I$BUILD_DIR/lb/include
    CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"
    LDFLAGS="-L$BUILD_DIR/lb/lib"
    CFLAGS=-O3
    export CPPFLAGS LDFLAGS CFLAGS
    
    $ ./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
    $ make clean
    $ make
    $ sudo make install

  8. 一時ディレクトリ(ライブラリ)の掃除
    $ rm -fr $BUILD_DIR
     

Cacti のインストール

  1. アーカイブの展開(インストール)
    Cacti は PHP スクリプトであるので、展開した先がそのまま設置(インストール)先となる。実際の設置場所は任意の場所で問題無いが、Apache などの Web サーバから参照出来る事が条件になる。
    また監視先の SNMP エージェントから取得したデータ(Cacti から呼び出す RDDtool が生成するラウンドロビンデータ)とログを設置先配下のディレクトリに書き込む。 設置場所については以下の3パターンが上げられるが、どのパターンにおいても Web サーバの設定とパーミッションをそれぞれ適切なものにする事。

    1. Cacti 専用ユーザディレクトリ
      専用ユーザを*1 Unix アカウントとして作成し、そのユーザのディレクトリ配下にインストール。
      root で Cacti ユーザを作成した後にホームディレクトリにアーカイブを展開。
      $ groupadd cacti
      # useradd -g cacti -d /dev/null -M -s /sbin/nologin
      # tar xvzf cacti-0.8.6h.tar.gz -C /home/cacti
      # chown -R Cacti:Cacti /home/Cacti

      ・Apache の設定
      httpd.conf に下記を追加。allow 行でローカルホストからとプライベートネットからのみアクセスを許可。
      Alias /cacti/ /home/cacti/
      <Directory /usr/share/cacti>
       Options None
       order deny,allow
       deny from all
       allow from 127.0.0.1 192.168.0.0/24
      </Directory>

    2. 個人ユーザディレクトリ
      レンタルサーバ等を利用している場合、個人ユーザの Web スペース(大概は ~/public_html)配下にインストール。
      # tar xvzf cacti-0.8.6h.tar.gz -C ~/public_htmo/cacti

    3. Web サーバ実行者のディレクトリ
      Web サーバプロセス(Apache)の実行者(大概の場合は httpd)用に設定している公開用ディレクトリ配下にインストール。
      # tar xvzf cacti-0.8.6h.tar.gz -C /home/httpd/public_html/cacti
      # chown -R httpd:httpd /home/httpd/public_html/cacti

      ※実際にデータが書き込まれるのは、cacti/rrs と cacti/log の2つのディレクトリのみである。設定の仕方によってはもっと凝ったディレクトリ構成&パーミッションにも出来る。
       
  2. Cacti 用の DB 作成
    MYSQL の DB 上に cacti 専用の DB を作成する。
    すでにある DB に追加する場合はこの項目は飛ばしてよい。
    $ mysqladmin -u root -p create Cacti

  3. Cacti DB の初期化 作成した Cacti DB に cacti/cacti.sql をインポートする
    $ cd /home/httpd/cacti
    $ mysql -u root -p Cacti < ./cacti.sql

  4. DB の権限設定 localhostからアクセスするユーザ cacti に Cacti DB に対して必要な権限を与える。
    $ mysql -p -u root -D mysql -e "GRANT SELECT, INSERT, DELETE, UPDATE, CREATE, ALTER, DROP, INDEX ON Cacti.* TO cacti@localhost IDENTIFIED BY 'パスワード';"
    $ mysql -p -u root -D mysql -e "flush privileges;"

  5. DB アクセス用ファイルの編集 cacti 設定ファイル (cacti/include/config.php) に上記で設定したユーザやパスワードを設定する。
    $database_type = "mysql";
    $database_default = "Cacti";
    $database_hostname = "localhost";
    $database_username = "cacti";
    $database_password = "パスワード";
    $database_port = "3306";

    設定した環境に合わせてそれぞれの値を編集する。

  6. 設定の確認
    作成した DB へ設定した内容に基づきアクセス出来るかどうかを確認する。
    $ mysql -u cacti -p Cacti
    mysql> SHOW TABLES;
    mysql> SELECT * FROM version;
    mysql> \q

  7. 設定ファイルのパーミッション変更
    設定ファイル内に平文でパスワードを書く為、他人に読まれないようにパーミッションを変更しておく。*2
    $ chmod 600 cacti/include/config.php

  8. Web サーバに設定を反映させる
    インストールパターン1のように新しい Web スペースにインストールした場合は、公開用の設定を加え設定を反映させる。
    $ sudo /usr/local/apache/bin/apachectl graceful

     

Cacti の初期設定

これ以降、Cacti の設定はブラウザ上から行う。

  1. Cacti にアクセス
    ブラウザで Cacti インストール URL にアクセスする。

  2. インストールタイプの設定
    "New Install" を選択

  3. パスの設定
    Cacti が使用する各コマンドパスの設定を行う。
    [NOT FOUND] と表示されているものを適切に変更した後、"Finish" を押す。

  4. ログイン
    初期パスワード admin, admin を入力後、admin ユーザのパスワードを変更する。

  5. 基本設定の設定と確認
    "console" 画面のメニューの Configuration - Settings をクリックし、画面上部に表示されるタブから各設定の設定と確認を行う。
    最初に設定した核コマンドへのパス、使用する SNMP のバージョン、ロギング、基本的な監視設定の他、グラフのエクスポートやユーザ認証方式の設定等を行える。簡単な英語なので目を通し、適切な値を設定する。
 

サーバ監視の設定

 

関連プログラム

 

参考資料

 

*1 実際にこのユーザでログインや作業はしないのでシェルは割り振らない
*2 環境によっては読み取りエラーになる場合があるので、その場合は 644 に戻す

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-09-09 (土) 01:48:30 (6447d)