RRDTool+Cactiによるサーバ監視(Linux編)

インストールと初期設定 -> 基本的な監視設定 -> 独自な監視設定

おやじは今までMRTGを使ってサーバ監視を行っていましたが、1つのグラフでデータが2つの必要だったり非整数データを扱えない等不便な面もあったので、MRTGの開発者がより柔軟なグラフ作成ツールとして開発したRRDTool(Round Robin Database Tool)を使ってみることにしました。
調べたところ、SuSE9.3では標準でRRDToolがインストールされていました。なお、RRDToolは、名前のとおり収集されたラウンドロビン型データベースのデータを元にグラフを描画するツールであり、これ自体ではデータ収集機能は持っていません。そのため、データ収集用のフロントエンドが必要であり、HotSaNIC等のフロントエンドがいろいろ提供されていますが、今回はSuSE9.3でサポートされているCacti(サボテンの意)を使うことにしました。
なお、CactiはPHP/MySQLベースのソフトであり、Webベースでサーバ監視に関する設定ができることが特徴になっています。従って、Apache+PHPMySQLが使用できる環境が必要です。また大前提としてSNMPが使えるようになっていなければなりません。SNMPに関してはこちらを参照ください。
Cactiに関する全体的な説明は、こちらが参考になると思います。

具体的なグラフイメージはこちらを参照ください。User Name: guest で Password: guest でログインできます。

負数がうまく表示できない場合は、こちらを参照ください。

■Cactiのインストール

CactiはPHP/MySQLベースのソフトで、Webベースでサーバ監視に関する設定・グラフ表示ができます。これが最大の特徴とおやじは思いますが、その反面、動作させるのにPHPやMySQLが必要になる等、初期の環境準備が面倒というのが難点でしょうか?それでも、一旦環境整備してしまえば、後はブラウザでほとんど対応できるので、特にいろいろ監視したい場合には有効と思います。
いきなりCactiでRRDToolはどうしたのか? と思われるかもしれませんが、SuSE9.3の場合はデフォルトでインストールされており、特に設定も必要はありません。万が一インストールされていないようなら、YaSTでインストールしておいてください。
  1. YaST コントロールセンタを起動し、「ソフトウェア」の「ソフトウェアのインストール/削除」を起動する。
  2. 「フィルタ」 を 「検索」 とし検索欄に 「cacti」 と入力し 「検索」 ボタンを押す。
  3. 右側に該当するパッケージが出てくるので、チェックマークを入れて 「了解」 を押しておしまい。MySQL等が未インストールなら、依存関係でインストールされるはずです。
と書きましたが、0.8.6eにバージョンが上がっているので、この後、オンラインアップデートしてください。因みに、おやじは単に自分の設定ミスだとは思うのですが、スクリプトによるサーバ監視がうまくいかなかったので、最新版の0.8.6g+パッチ(2005.09.25現在)でRPMを作成してインストールしました。RPMからインストールすると、定期監視のためのcronへの登録(/ect/cron.d配下)やブラウザからアクセスできるようにするためのAliasを使ったApacheのドキュメントルートへのマッピングは自動で行われています。ドキュメントルートを変更している場合は、/etc/apache2/conf.d/cacti.confを適宜変更する必要があります。

  1. インストールされた Cacti ディレクトリに移動する。

    # cd /usr/share/cacti

  2. Cacti用のMySQLデータベースを作成する。

    # mysqladmin -u root -p create cacti
    Enter password:
    rootパスワード[Enter]

  3. デフォルトのCactiデータベースをインポートする。

    # mysql -p cacti < cacti.sql
    Enter password:
    rootパスワード[Enter]

  4. Cactiデータベース用のユーザ(cactiuser)にパスワードを設定するとともにアクセス権限を付与する。

    # mysql -u root -p
    Enter password:
    rootパスワード[Enter]
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 87 to server version: 4.1.10a

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY '
    cactiuser用パスワード';
    mysql> flush privileges;
    mysql> \q
    Bye

  5. PHPからMySQLへのアクセスを可能にするため、上記で設定した内容をcactiの設定ファイルinclude/config.php に設定する。上記のとおり作業したなら変更するのは $database_password のみでよい。

       (snip)

    $database_type = "mysql";
    $database_default = "cacti";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "cactiuser用パスワード";

       (snip)

  6. cactiではデータ収集をcronで5分毎に行っているが、デフォルトではApacheのユーザ権限(SuSEの場合はwwwrun)で実行されるようになっており、ログ(/var/log/cacti)やデータベース(/var/lib/cacti)のパーミッションはwwwrunになっているが、下記のようなエラーを吐いてデータが作成されない。

    /usr/sbin/cron[3906]: (*system*) RELOAD (/etc/cron.d/cacti)

    cronでの実行権限をrootにすることで回避した。

    #*/5 * * * *     wwwrun   php /usr/share/cacti/poller.php > /dev/null 2>&1
    */5 * * * *     root   php /usr/share/cacti/poller.php > /dev/null 2>&1


■Cactiの初期設定

続けて、Cactiの初期設定を以下の手順で行います。

  1. まず、SuSE9.3 の場合、デフォルトでは localhost からしかCactiにアクセスできないので、必要に応じて /etc/apache2/conf.d/cacti.conf を編集する。
    ここでは、とりあえず赤字の内容を追加し家庭内からのアクセスを許可した。任意にアクセスを許可するなら青字のように3行をコメントアウトすればよい。なお、緑字の「/」は、これがあると「/cacti/」でマッチングするか探すため、アクセス時に最後の「/」がないとマッチングせず、ファイルが見つからないエラーになるため削除した。実質的には、ディレクトリの最後の「/」の補完機能が働かないのと同じ現象である。

    Alias /cacti/ /usr/share/cacti/
    <Directory /usr/share/cacti
    />
       Options None
    #   order deny,allow
    #   deny from all
    #   allow from 127.0.0.1 192.168.1.0/24
    </Directory>

    # For SSL-servers
    #Alias /cacti/ /usr/share/nagat/
    #<Directory /usr/share/cacti/>
    #   Options None
    #   SSLRequireSSL
    #   order deny,allow
    #   deny from all
    #   AuthType Basic
    #   AuthUserFile /site/cfg/passwd
    #   AuthGroupFile /site/cfg/group
    #   AuthName "cacti"
    #   require group cacti
    #   Satisfy Any
    #</Directory>

  2. 上記設定を反映させる。

    # /etc/init.d/apache2 reload

  3. ブラウザから http://www.aconus.com/cacti/  (http://ホスト名/cacti/) にアクセスすると Cacti の初期設定画面が表示されるので、ウィザードに従い順次設定していく。

  4. 初期設定の開始。「NEXT」を押す。



  5. インストールタイプの選択。「New Install」を選択し、「NEXT」を押す。



  6. Cactiが使用する各種コマンドのパス設定。[NOT FOUND]と表示されたコマンドについてはパスを変更する必要があるが、RPMインストールなら全て適切になっており[FOUND]となっているはずなので、一応確認した後、「Finish」を押す。



  7. 上記で初期設定は完了し、ユーザログイン画面が表示されるので、管理者の初期値である User Name:admin、Password:admin を入力し、「Login」を押す。



  8. 続けて初期パスワードを変更するように要求されるので、新規パスワードを入力した後に「Save」を押す。



以上で設定は完了し、cactiのメイン画面になる。



インストールと初期設定 -> 基本的な監視設定 -> 独自な監視設定


Top Pageへ