Cacti

提供: ArchWiki
2017年4月25日 (火) 20:42時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

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=pdo_mysql.so
extension=snmp.so

日付と時刻を正しいタイムゾーンで表示するために、/etc/php/php.inidate.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_type = "mysqli";
$database_default = "cactidb";
$database_username = "cactiuser";
$database_password = "some_password";

Spine

任意で cacti の高速 poller である cacti-spineAURAUR からインストールしてください。また、データベースの設定をしてください:

/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
ノート: cacti_poller.service を起動・有効化してはいけません。cacti_poller.timer起動・有効化すれば、サービスが5分毎に実行されます。
ヒント: journalctl を使うことで poller のログメッセージを監視することができます。以下のようになります:
Sep 27 15:50:00 hoom php[4072]: OK u:0.00 s:0.01 r:0.35
Sep 27 15:50:00 hoom php[4072]: OK u:0.00 s:0.01 r:0.38
Sep 27 15:50:00 hoom php[4072]: OK u:0.00 s:0.01 r:0.40
Sep 27 15:50:01 hoom php[4072]: 09/27/2015 03:50:01 PM - SYSTEM STATS: Time:0.6176 Method:cmd.php Processes:1 Threads:N/A Hosts:5 HostsPerProcess:5 DataSources:169 RRDsProcessed:15

ウェブ設定

ブラウザを開いて 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 をクリック。

参照