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+PHPや
MySQLが使用できる環境が必要です。また大前提としてSNMPが使えるようになっていなければなりません。SNMPに関しては
こちらを参照ください。
Cactiに関する全体的な説明は、
こちらが参考になると思います。
具体的なグラフイメージは
こちらを参照ください。User Name: guest で Password: guest でログインできます。
負数がうまく表示できない場合は、こちらを参照ください。
■Cactiのインストール
CactiはPHP/MySQLベースのソフトで、Webベースでサーバ監視に関する設定・グラフ表示ができます。これが最大の特徴とおやじは思いますが、その反面、動作させるのにPHPやMySQLが必要になる等、初期の環境準備が面倒というのが難点でしょうか?それでも、一旦環境整備してしまえば、後はブラウザでほとんど対応できるので、特にいろいろ監視したい場合には有効と思います。
いきなりCactiでRRDToolはどうしたのか? と思われるかもしれませんが、SuSE9.3の場合はデフォルトでインストールされており、特に設定も必要はありません。万が一インストールされていないようなら、YaSTでインストールしておいてください。
- YaST コントロールセンタを起動し、「ソフトウェア」の「ソフトウェアのインストール/削除」を起動する。
- 「フィルタ」 を 「検索」 とし検索欄に 「cacti」 と入力し 「検索」 ボタンを押す。
- 右側に該当するパッケージが出てくるので、チェックマークを入れて 「了解」
を押しておしまい。MySQL等が未インストールなら、依存関係でインストールされるはずです。
と書きましたが、0.8.6eにバージョンが上がっているので、この後、オンラインアップデートしてください。因みに、おやじは単に自分の設定ミスだとは思うのですが、スクリプトによるサーバ監視がうまくいかなかったので、最新版の0.8.6g+パッチ(2005.09.25現在)でRPMを作成してインストールしました。RPMからインストールすると、定期監視のためのcronへの登録(/ect/cron.d配下)やブラウザからアクセスできるようにするためのAliasを使ったApacheのドキュメントルートへのマッピングは自動で行われています。ドキュメントルートを変更している場合は、/etc/apache2/conf.d/cacti.confを適宜変更する必要があります。
- インストールされた Cacti ディレクトリに移動する。
- Cacti用のMySQLデータベースを作成する。
# mysqladmin -u root -p create cacti Enter
password: rootパスワード[Enter] |
- デフォルトのCactiデータベースをインポートする。
# mysql -p cacti < cacti.sql Enter
password: rootパスワード[Enter] |
- 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 |
- 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) |
- 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の初期設定を以下の手順で行います。
- まず、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> |
- 上記設定を反映させる。
# /etc/init.d/apache2
reload |
- ブラウザから http://www.aconus.com/cacti/ (http://ホスト名/cacti/) にアクセスすると
Cacti の初期設定画面が表示されるので、ウィザードに従い順次設定していく。
- 初期設定の開始。「NEXT」を押す。
- インストールタイプの選択。「New Install」を選択し、「NEXT」を押す。
- Cactiが使用する各種コマンドのパス設定。[NOT
FOUND]と表示されたコマンドについてはパスを変更する必要があるが、RPMインストールなら全て適切になっており[FOUND]となっているはずなので、一応確認した後、「Finish」を押す。
- 上記で初期設定は完了し、ユーザログイン画面が表示されるので、管理者の初期値である User Name:admin、Password:admin
を入力し、「Login」を押す。
- 続けて初期パスワードを変更するように要求されるので、新規パスワードを入力した後に「Save」を押す。
以上で設定は完了し、cactiのメイン画面になる。
インストールと初期設定 -> 基本的な監視設定 -> 独自な監視設定
Top Pageへ