#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 https://qiita.com/haruca_tech/items/47d8eb868f31ab3c20e1