- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
* cactiとは [#fd69c575]
>サーバや通信機器のグラフレポーティングツール。~
基本的な機能はSNMPにより情報を取得しグラフ化する。~
データの収集はrrdtoolによる。~
自作スクリプトを利用すればあらゆる数値情報をグラフ化できる。~
* 導入方法 [#pf1cca78]
>cacti(0.8.7g)をCentOS(5.5)へインストールした際の備忘録
** CentOSの導入と基本設定 [#h58cec02]
*** CentOSのインストール [#if7322d6]
>最小構成でインストールする。
*** ユーザアカウント作成 [#g61e7e30]
>
[root@myhost ~]# useradd myaccount
[root@myhost ~]# passwd myaccount
Changing password for user myaccount.
New UNIX password: <- パスワード入力
Retype new UNIX password: <- パスワード入力
passwd: all authentication tokens updated successfully.
[root@myhost ~]#
*** sshdの設定 [#s9d558e0]
>
[root@myhost ~]# vi /etc/ssh/sshd_config
-----snip-----
#PermitRootLogin yes <- コメントアウト
PermitRootLogin no <- 追加
-----snip-----
[root@myhost ~]# /etc/init.d/sshd restart
sshd を停止中: [ OK ]
sshd を起動中: [ OK ]
[root@myhost ~]# chkconfig sshd on
[root@myhost ~]# chkconfig --list sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@myhost ~]#
>あとはリモートでログインして作業する。
*** SELINUXとiptablesによるアクセス制御の設定 [#yd485a76]
>SELinuxを無効にする
[root@myhost tmp]# vi /etc/selinux/config
-----snip-----
#SELINUX=enforcing <- コメントアウト
SELINUX=disabled <- 追加
-----snip-----
>iptablesの設定
[root@myhost tmp]# vi /etc/sysconfig/iptables
-----snip-----
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 80 -j ACCEPT # <- 追加
-A RH-Firewall-1-INPUT -p tcp --dport 443 -j ACCEPT # <- 追加
-A RH-Firewall-1-INPUT -p udp --dport 161 -j ACCEPT # <- 追加
-A RH-Firewall-1-INPUT -p udp --dport 9999 -j ACCEPT # <- 追加
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-----snip-----
[root@myhost tmp]# shutdown -r now
(SELinuxの設定がシステム再起動で反映されるため、再起動する。)
*** RPMforgeのインストール [#ud05f8bc]
>cactiは標準のリポジトリに含まれていないため、RPMforgeのリポジトリを利用する。
>参考~
http://rpmrepo.org/RPMforge/Using
>
[root@myhost ~]# mkdir tmp
[root@myhost ~]# cd tmp
[root@myhost tmp]# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
[root@myhost tmp]# rpm -ihv rpmforge-release-0.5.1-1.el5.rf.i386.rpm
※ 2011年1月時点では
http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
が最新のリンク先である。
*** 標準リポジトリのパッケージをRPMforgeパッケージでアップデートしなくする。 [#u2f48875]
>
[root@myhost tmp]# yum install yum-priorities
[root@myhost tmp]# vim /etc/yum.repo.d/CentOS-Base.repo
各セクション[]で囲まれた部分の最後に
priority=1
を追加する。
** cactiセットアップ [#ib90141e]
*** cacti本体のインストール [#c18849ab]
>yumでインストールすると依存関係が自動的に解決されるためspineをインストールする。
後述のプラグインアーキテクチャをインストールする際のパッチがうまくあたらないためここでcactiをアンインストールしておく。(つまり、依存関係で必要なものをインストールするだけです。)
>
[root@myhost tmp]# yum install cacti-spine
[root@myhost tmp]# yum remove cacti
>cacti用のapache設定
[root@myhost tmp]# vi /etc/httpd/conf.d/cacti.conf
Alias /cacti/ /var/www/cacti/
<Directory /var/www/cacti/>
DirectoryIndex index.php
Options -Indexes
Options +ExecCGI
AddHandler cgi-script .cgi .pl
AllowOverride all
order deny,allow
deny from all
allow from 127.0.0.1
allow from all
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
[root@myhost tmp]# /etc/init.d/httpd start
[root@myhost tmp]# chkconfig httpd on
[root@myhost tmp]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
*** mysql-serverをインストール [#p7bda645]
>
[root@myhost tmp]# yum install mysql-server
[root@myhost tmp]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8 # <- 追加
skip-character-set-client-handshake # <- 追加
character-set-server = utf8 # <- 追加
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql] # <- 追加
default-character-set=utf8 # <- 追加
[root@myhost tmp]# /etc/init.d/mysqld start
[root@myhost tmp]# chkconfig mysqld on
[root@myhost tmp]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
*** cactiプラグインアーキテクチャのインストール [#j9fdb423]
>プラグインを利用するためにはパッチを当てる必要がある。~
cacti 0.8.7g~
http://www.cacti.net/index.php~
>0.8.7g用パッチ~
http://www.cacti.net/download_patches.php~
>PluginArchitecture 2.9~
http://forums.cacti.net/viewtopic.php?f=19&t=40385~
>各種パッチ適用
[root@myhost tmp]# wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz
[root@myhost tmp]# wget http://www.cacti.net/downloads/patches/0.8.7g/data_source_deactivate.patch
[root@myhost tmp]# wget http://www.cacti.net/downloads/patches/0.8.7g/graph_list_view.patch
[root@myhost tmp]# wget http://www.cacti.net/downloads/patches/0.8.7g/html_output.patch
[root@myhost tmp]# wget http://www.cacti.net/downloads/patches/0.8.7g/ldap_group_authenication.patch
[root@myhost tmp]# wget http://www.cacti.net/downloads/patches/0.8.7g/script_server_command_line_parse.patch
[root@myhost tmp]# wget http://www.cacti.net/downloads/patches/0.8.7g/ping.patch
[root@myhost tmp]# wget http://www.cacti.net/downloads/patches/0.8.7g/poller_interval.patch
[root@myhost tmp]# wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7g-PA-v2.9.tar.gz
[root@myhost tmp]# tar zxvf cacti-0.8.7g.tar.gz
[root@myhost tmp]# tar zxvf cacti-plugin-0.8.7g-PA-v2.9.tar.gz
[root@myhost tmp]# cd cacti-0.8.7g
[root@myhost cacti-0.8.7g]# patch -p1 -N < ../data_source_deactivate.patch
[root@myhost cacti-0.8.7g]# patch -p1 -N < ../graph_list_view.patch
[root@myhost cacti-0.8.7g]# patch -p1 -N < ../html_output.patch
[root@myhost cacti-0.8.7g]# patch -p1 -N < ../ldap_group_authenication.patch
[root@myhost cacti-0.8.7g]# patch -p1 -N < ../script_server_command_line_parse.patch
[root@myhost cacti-0.8.7g]# patch -p1 -N < ../ping.patch
[root@myhost cacti-0.8.7g]# patch -p1 -N < ../poller_interval.patch
[root@myhost cacti-0.8.7g]# patch -p1 -N < ../cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff
>MySQL設定
[root@myhost cacti-0.8.7g]# mysqladmin -u root password XXXXX
[root@myhost cacti-0.8.7g]# mysql -u root -p
mysql> use mysql;
mysql> select user,host,password from user;
+------+------------------------+------------------+
| user | host | password |
+------+------------------------+------------------+
| root | localhost | XXXXXXXXXXXXXXXX |
| root | XXXXXX.XXXX.XXX.XX | |
| root | 127.0.0.1 | |
| | localhost | |
| | XXXXXX.XXXX.XXX.XX | |
+------+------------------------+------------------+
5 rows in set (0.00 sec)
mysql> delete from user where password = "";
Query OK, 4 rows affected (0.00 sec)
mysql> select user,host,password from user;
+------+-----------+------------------+
| user | host | password |
+------+-----------+------------------+
| root | localhost | XXXXXXXXXXXXXXXX |
+------+-----------+------------------+
1 row in set (0.01 sec)
mysql>exit;
>MySQLのcacti用アカウント設定
[root@myhost cacti-0.8.7g]# mysqladmin -u root -p create cacti
[root@myhost cacti-0.8.7g]# mysql -u root -p cacti < /var/www/cacti/cacti.sql
[root@myhost cacti-0.8.7g]# mysql -u root -p cacti < ../cacti-plugin-arch/pa.sql
[root@myhost cacti-0.8.7g]# mysql -u root -p
mysql> grant all on cacti.* to cactiuser@localhost identified by 'PASSWORD';
mysql> flush privileges;
mysql>
>config.phpの編集
[root@myhost cacti-0.8.7g]# vi include/config.php
-----snip-----
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "PASSWORD"; <- さっきのに修正
$database_port = "3306";
/* load up old style plugins here */
$plugins = array();
//$plugins[] = 'thold';
/*
Edit this to point to the default URL of your Cacti install
ex: if your cacti install as at http://serverip/cacti/ this
would be set to /cacti/
*/
$url_path = "/cacti/"; ←修正
-----snip-----
[root@myhost cacti-0.8.7g]# cd ..
[root@myhost tmp]# mv cacti-0.8.7g /var/www/cacti
*** cacti動作確認 [#xd18b961]
>webでアクセス。~
http://サーバのIPアドレス/cacti/
>初回ログイン時は強制的にパスワード変更ダイアログが出る。~
セットアップした直後の初期アカウントは admin/admin となっている。
*** plugin動作確認 [#dec83ce4]
>とりあえず適当なプラグインを入れてみる~
cactiのwebからプラグインの設定を行う~
Console -> Utilities -> User Management を選択~
ユーザ選択でadminを選択~
最下段の Plugin Management のチェックを入れ、Save押下~
>loginmod~
ログイン画面を変更する~
http://docs.cacti.net/plugin:loginmod~
>
[root@myhost cacti]# cd plugins
[root@myhost plugins]# wget http://docs.cacti.net/_media/plugin:loginmod-latest.tgz
[root@myhost plugins]# mv plugin:loginmod-latest.tgz loginmod-latest.tgz
[root@myhost plugins]# tar zxvf loginmod-latest.tgz
[root@myhost plugins]# rm loginmod-latest.tgz
[root@myhost plugins]# mv loginmod-1.0 loginmod
>docs~
簡単なドキュメント管理を行う~
http://docs.cacti.net/plugin:docs~
>
[root@myhost plugins]# wget http://docs.cacti.net/_media/plugin:docs_v0.2.tar.gz
[root@myhost plugins]# mv plugin:docs_v0.2.tar.gz docs_v0.2.tar.gz
[root@myhost plugins]# tar zxvf docs_v0.2.tar.gz
[root@myhost plugins]# rm docs_v0.2.tar.gz
[root@myhost plugins]# mv docs_v0.2 docs
** cronの登録 [#ace9be36]
>
[root@myhost plugins]# crontab -e
*/5 * * * * /usr/bin/php /var/www/cacti/poller.php &> /dev/null
** sslへの対応 [#i1b1634f]
>
[root@myhost plugins]# yum install mod_ssl
[root@myhost plugins]# cd /etc/httpd
[root@myhost plugins]# mkdir ssl
[root@myhost plugins]# cd ssl
[root@myhost ssl]# openssl genrsa -des3 1024 > ./server.key
[root@myhost ssl]# openssl rsa -in ./server.key -out ./server.key
[root@myhost ssl]# chmod 400 ./server.key
[root@myhost ssl]# openssl req -new -key ./server.key -out ./server.csr
[root@myhost ssl]# openssl x509 -in ./server.csr -out ./server.crt -req -signkey ./server.key -days 3650
[root@myhost ssl]# vi ../conf.d/ssl.conf
-----snip-----
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt <- コメントアウト
SSLCertificateFile /etc/httpd/ssl/server.crt <- 追加
-----snip-----
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key <- コメントアウト
SSLCertificateKeyFile /etc/httpd/ssl/server.key <- 追加
-----snip-----
[root@myhost ssl]# /etc/init.d/httpd restart
>で、完了!
~
~
#counter