「Nginx + MySQL5.5」との組み合わせに「Cacti」をインストールするのに戸惑ったので記録として残しておきます。
※ Nginx と MySQL5.5 は既にインストールしてあるものとします。
cactiをインストールすると、Apache2も強制的に一緒にインストールされますので、不要な方が起動しないように設定してください。
MySQL に Cacti 用ユーザー&データベースを作っておくこと。どっちも cacti(小文字)でOK!
apt-get で Cacti のパッケージをインストール
// インストール # apt-get install cacti cacti-spine
続いて、Cacti が使うテーブルのSQL 文に 「TYPE=MyISAM」 と記述があるのですが、MySQL5.5 からは 「ENGINE=MyISAM」 に変わり、そのまま流し込むことが出来ません。
この為、データベースにテーブルを作ることが出来ないので、「ENGINE=MyISAM」に変換してから手動で流し込みます。cacti.sql の「TYPE=MyISAM」を「ENGINE=MyISAM」 に変換してやります。
// コピー&解凍 # cp /usr/share/doc/cacti/cacti.sql.gz /tmp/ # gzip -d /tmp/cacti.sql.gz // 変換 # sed s/TYPE=MyISAM/ENGINE=MyISAM/ /tmp/cacti.sql > /tmp/cacti_sed.sql
SQL文を流し込んでやります。
// 流し込み # mysql -u root -p cacti < /tmp/cacti_sed.sql
次に、Nginx で「http://example.com/cacti/」でアクセス出来るようにしてやります。Cacti の表示プログラムがあるディレクトリからシンボリックリンクを張ります。
// シンボリックリンク作成 # ln -s /usr/share/cacti/site /home/user/public_html/cacti
Cacti に spine のパスを登録して poller を spine にする。
consol -> settings -> Paths -> Spine Poller File Path に /usr/sbin/spine と登録。
consol -> settings -> poller -> Poller Type を spine にする。
これで Cacti を使えるようになるはずです。
おまけでBasic認証を付ける。
※ Basic認証が無くてもCacti画面で認証はありますので不要な人はスルーしてください。
// 編集 # vi /etc/nginx/sites-available/default // example.com server { listen 80; root /home/user/public_html; index index.php index.html; server_name example.com; // cacti Basic Auth location /cacti { auth_basic "cacti"; auth_basic_user_file $document_root/cacti/.htpasswd; } // 以下省略 }
Basic認証用のパスワードファイルを新規で作ります。
// 新規作成 # htpasswd -c /home/user/public_html/cacti/.htpasswd ユーザー名 New password: Re-type new password: Adding password for user ユーザー名 // .htpasswd の中身 ユーザー名:Ftwtwetwrwj3q6
※ ユーザーを追加する場合は、「-c」のオプションは取りましょう。「-c」があると上書きされます。
Nginx の設定ファイルを読み込む。
// リロード # /etc/init.d/nginx reload