Pocket

Cacti

  • add this entry to hatena bookmark

システム監視ツールである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インストール画面では最初に以下の画面が表示されます。
Cactiインストール画面

そのまま、Nextボタンを押下すると、必要なインストールパッケージの確認画面などを経由した後に、Cactiログインフォームが表示されます。
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グラフ画面

グラフデータは、取得期間が長いほど有益に利用できるようになります。

メール通知機能に関するプラグイン設定

閾値を超えた場合にメール通知を行う機能について記載します。

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」タブでは、アラートに関する共通設定が出来ますが、監視項目毎のアラート通知設定は別の場所で行う事になります。

メール通知設定(監視項目毎)

監視項目の設定で、閾値を超えた際にメール通知を行う為の設定は、以下の流れになります。

  1. 通知先のメールアドレスを「Management」の「Notification Lists」で登録する。
  2. 監視項目を「Management」の「Thresholds」から1個ずつ登録する。
  3. 監視項目の登録/変更画面で、閾値や通知先(1で登録したメールアドレス設定)の登録を行う。

登録の流れが分かれば、あとは直感的に分かるかと思います。(英語に相当の苦手意識がなければ・・・。)

監視項目の登録は、ウィザード形式で対象項目を選択する形となります。

最初、監視項目毎に通知先を設定する個所が分からず少し戸惑いました。ポイントを説明させていただくと、監視項目ページ下部の「Other Settings」の「Warning Notification List」と「Alert Notification List」(いずれかでも可)で、先ほど登録した「Notification Lists」の名称をプルダウンで選択すれば、閾値に引っかかった場合にメール通知されるようになります。


関連する投稿
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。