システム監視ツールであるCactiを利用するまでの手順を記載しています。Cactiでは、バックエンドでRRDtoolやPHP、MySQLを利用し、監視の結果をグラフ表示する仕組みを備えています。
今回導入するCactiのバージョンは、0.8.8a です。
RRDtool インストール
RRDtoolのインストールは、必要となる関連パッケージが多いので、yumなどを使える環境では利用した方が楽です。
# yum -y install rrdtool
上記で一気にインストールできます。
Cacti インストール&設定
Cacti サイトから、アーカイブをダウンロードして解凍します。
# wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz # tar zxvf cacti-0.8.8a.tar.gz
Cactiの解凍ディレクトリをapacheで公開する場所に移動します。
# mv cacti-0.8.8a /usr/local/apache2/cacti
上記で移動したCactiのファイルをApacheで使えるように設定を行います。(apacheの設定は環境によりますので省略します。)
ここで、OSアカウントで「cacti」を作成しておきます。(後ほど、cactiアカウントでデータ収集用のcron設定を行う事になります。)
# useradd cacti -M -d /usr/local/apache2/cacti -s /sbin/nologin # chown -R cacti:cacti /usr/local/apache2/cacti
次にMySQLでCacti用のデータベースを作成し、Cactiユーザに権限を与えます。
# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3052 Server version: 5.5.23-log MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database cacti; Query OK, 1 row affected (0.10 sec) mysql> grant all on cacti.* to cactiuser@localhost identified by 'パスワード'; Query OK, 0 rows affected (0.08 sec) mysql> exit Bye #
次に、Cacti側で用意されているスキーマやデータが定義されている「cacti.sql」を作成したデータベースに流し込みます。
# mysql -u root -p cacti < cacti.sql
Cactiの設定ファイルにMySQLデータベースのCactiアカウントのパスワードを設定します。include/config.php ファイル内で、以下の個所にパスワードを設定します。
$database_password = "パスワード";
その後、先ほど設定したapacheのCactiを配置した場所にブラウザでアクセスします。
その際に、私の環境では、以下の対策が必要でした。
- apache の error_log にエラーが出ていた関係で、include/global_constants.php に「date_default_timezone_set(‘Asia/Tokyo’);」を入れ込みました。
- phpのconfigureオプションに「–enable-sockets」が必要だとCactiインストール画面に言われましたので、改めてphpをconfigure/make/installし直しました。
Cactiインストール画面では最初に以下の画面が表示されます。
そのまま、Nextボタンを押下すると、必要なインストールパッケージの確認画面などを経由した後に、Cactiログインフォームが表示されます。
初期設定である、User Name = admin、Password = admin でログインすると、パスワードを変更するように求められます(Forced Password Change)ので変更します。
その後、Cacti画面が表示されます。
Cacti画面設定
Cactiのトップページ画面で、以下が表示されています。
You are now logged into Cacti. You can follow these basic steps to get started.
- Create devices for network
- Create graphs for your new devices
- View your new graphs
よって、まず、「Devices」画面で初期作成されている「Localhost」エントリを選択し、詳細を確認します。SNMP Options のところで、SNMP Version が「Not In Use」になっていますので、Net-SNMPで設定している「Version 2」を選定します。表示される画面で Community名を設定し、一旦「Save」ボタンを押下します。
次に、「Create Graphs for this Host」リンクをクリックします。グラフ設定画面ではデフォルトで設定されている項目(Memory、Load Average、Logged in Users、Processes)がありますが、その他グラフ表示させたい項目を設定します。設定自体は直感的に分かるかと思います。
データ取得設定
ここまででも、まだデータを取得する設定は行っておりませんので、これから行います。
データ取得は、cron設定で起動される事になります。「/etc/cron.d/cacti」ファイルを作成し、以下の設定を記載します。
*/5 * * * * cacti /usr/local/bin/php /usr/local/apache2/cacti/poller.php > /dev/null 2>&1
設定後、/var/log/cronをしばらく確認していると、5分毎にプログラムが実行されている事が分かります。Cactiのグラフ画面を参照すると、データが取得され、グラフが表示されている事が確認出来ます。
グラフデータは、取得期間が長いほど有益に利用できるようになります。
メール通知機能に関するプラグイン設定
閾値を超えた場合にメール通知を行う機能について記載します。
Cactiのプラグインである「settings」と「thold」の2つが必要になります。
settings(0.7-1) | http://docs.cacti.net/plugin:settings |
thold(0.4.9-3) | http://docs.cacti.net/plugin:thold |
Cacti Pluginsダウンロードサイトからダウンロードします。ダウンロード後、解凍し、Cactiのプラグイン置き場に配置します。一連の手順コマンドを以下に記載します。
wget http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz wget http://docs.cacti.net/_media/plugin:thold-v0.4.9-3.tgz gunzip plugin:settings-v0.7-1.tgz gunzip plugin:thold-v0.4.9-3.tgz mv plugin:settings-v0.7-1.tar settings-v0.7-1.tar mv plugin:thold-v0.4.9-3.tar thold-v0.4.9-3.tar tar xvf settings-v0.7-1.tar tar xvf thold-v0.4.9-3.tar chown -R cacti:cacti settings chown -R cacti:cacti thold mv settings /usr/local/apache2/cacti/plugins/ mv thold /usr/local/apache2/cacti/plugins/
その後、Cacti画面にて、「Configuration」の「Plugin Management」で表示されるようになった、SettingsとTholdを有効化し、Statusを「Active」にします。
※今回のCactiバージョン(0.8.8a)では、今までのバージョンで必要だった「include/config.php」への設定行の追加作業は不要になりました。
その後、Cacti画面の「Configuration」の「Settings」にアクセスします。
私の環境では、エラーが出て「Settings」の画面を表示できない状態でした。apacheのエラーログを見ると、PHP5.4で無効になった「define_syslog_variables」関数が原因のようでしたので、「cacti/plugins/thold/includes/settings.php」の132行目の該当行をコメントアウトしました。そうすると、
また、ゴミファイルと思われる「cacti/plugins/thold/includes/.settings.php.swp」があったので削除しました。「Settings」の画面が表示できるようになりました。
「Settings」画面の「Mail/DNS」タブで、メール設定とDNS名前解決設定を行います。
「Settings」画面の「Thresholds」タブでは、アラートに関する共通設定が出来ますが、監視項目毎のアラート通知設定は別の場所で行う事になります。
メール通知設定(監視項目毎)
監視項目の設定で、閾値を超えた際にメール通知を行う為の設定は、以下の流れになります。
- 通知先のメールアドレスを「Management」の「Notification Lists」で登録する。
- 監視項目を「Management」の「Thresholds」から1個ずつ登録する。
- 監視項目の登録/変更画面で、閾値や通知先(1で登録したメールアドレス設定)の登録を行う。
登録の流れが分かれば、あとは直感的に分かるかと思います。(英語に相当の苦手意識がなければ・・・。)
監視項目の登録は、ウィザード形式で対象項目を選択する形となります。
最初、監視項目毎に通知先を設定する個所が分からず少し戸惑いました。ポイントを説明させていただくと、監視項目ページ下部の「Other Settings」の「Warning Notification List」と「Alert Notification List」(いずれかでも可)で、先ほど登録した「Notification Lists」の名称をプルダウンで選択すれば、閾値に引っかかった場合にメール通知されるようになります。
関連する投稿