Cacti
Cacti はウェブベースのシステム管理・グラフ化ソリューションです。
サーバー設定
この記事では LAMP (Linux, Apache, MySQL, PHP) サーバーが既にセットアップされていることを前提とします。
Cacti の設定
cacti, php-snmp, net-snmp パッケージをインストールしてください。LAMP サービス (httpd
, mysqld
) を起動・有効化します。Cacti が動作しているマシン自体を監視する必要が場合、snmpd を設定してください。
Cacti は PHP, SQL データベース (MySQL あるいは MariaDB), SNMP を使用するので必要な PHP モジュールを有効化してください:
/etc/php/php.ini
extension=mysqli.so extension=sockets.so extension=snmp.so
日付と時刻を正しいタイムゾーンで表示するために、/etc/php/php.ini
で date.timezone
も設定してください。値は "Continent/City" という形式で指定します。例えば: "America/New_York", "Asia/Tokyo"。
/etc/httpd/conf/extra/cacti.conf
(あるいはバーチャルホストの設定ファイル) に以下を追加して Apache から Cacti を設定してください:
Alias /cacti /usr/share/webapps/cacti <Directory /usr/share/webapps/cacti> # PHP options AddType application/x-httpd-php .php <IfModule dir_module> DirectoryIndex index.php </IfModule> Require all granted Options +FollowSymLinks AllowOverride All # The following may be useful. #<IfModule mod_php5.c> # php_flag magic_quotes_gpc Off # php_flag short_open_tag On # php_flag register_globals Off # php_flag register_argc_argv On # php_flag track_vars On # # This setting is necessary for some locales. # php_value mbstring.func_overload 0 # php_value include_path . #</IfModule> </Directory>
Cacti の設定を分割する場合、Include conf/extra/cacti.conf
を /etc/httpd/conf/httpd.conf
に追加してください。
/usr/share/webapps/cacti/.htaccess
ファイルもアクセス権限を制御します。設定するか削除してください。
Cacti はデータやログメッセージを収集してディスクに書き込むための権限を必要とします: # chown -R http:http /usr/share/webapps/cacti/{rra,log}
。
MySQL の設定
データを保存するための Cacti のための専用データベースと、データベースを使用するためのデータベースのユーザーアカウントが必要です。
root で以下のコマンドを実行してください:
# mysqladmin -u root -p create cactidb # mysql -u root -p cactidb </usr/share/webapps/cacti/cacti.sql # mysql -u root -p mysql> GRANT ALL ON cactidb.* TO cactiuser@localhost IDENTIFIED BY 'some_password'; mysql> FLUSH PRIVILEGES; mysql> exit
あるいは PhpMyAdmin を使って設定することもできます:
cactidb
という名前の空のデータベースを作成。/usr/share/webapps/cacti/cacti.sql
ファイルをcactidb
データベースにインポート。cactiuser
ユーザーを作成してcactidb
データベースにアクセスする権限を与える。
使用するデータベースの情報を /usr/share/webapps/cacti/include/config.php
に追加してください:
$database_default = "cactidb"; $database_username = "cactiuser"; $database_password = "some_password";
Spine
任意で cacti の高速 poller である cacti-spineAUR を AUR からインストールしてください。また、データベースの設定をしてください:
/etc/spine.conf
DB_User cactiuser DB_Pass some_password
Systemd
Cacti は poller を使用してデータを収集するため、poller.php を実行する Systemd サービスと、サービスを5分毎に実行するタイマーを作成してください:
/etc/systemd/system/cacti_poller.service
[Unit] Description=Cacti Poller [Service] User=http Type=simple ExecStart=/usr/bin/php /usr/share/webapps/cacti/poller.php
/etc/systemd/system/cacti_poller.timer
[Unit] Description=Cacti Poller Timer [Timer] OnCalendar=*:0/5:0 Unit=cacti_poller.service AccuracySec=1 [Install] WantedBy=multi-user.target
ウェブ設定
ブラウザを開いて http://your_server/cacti/ にアクセスしてください。cacti インストーラーが表示されるはずです。
- Next をクリック。
- New Install を選択して Next をクリック。
- 全てのパスが問題ないことを確認。RRDTool と NET-SNMP のバージョンを指定してください。RRDTool ユーティリティのバージョンは
rrdtool -v
で、 NET-SNMP のバージョンはnet-snmp-config --version
で確認できます。Finish をクリック。- パスが間違っている場合、なぜ間違っているのか確認する必要があります。Apache のエラーログがヒントになるでしょう。
- ユーザー名 "admin" とパスワード "admin" でログイン。
- パスワードを変更して、Save をクリック。
- (任意) spine をインストールした場合、以下にしたがって設定してください。
- Console タブの左パネルにある Settings をクリック。
- Poller タブを選択。
- Poller Type を spine に変更。
- 必要なら他の設定も変更して、Save を保存。
- Paths タブを選択。
- Spine Poller のファイルパスを
/usr/bin/spine
に設定して Save をクリック。