#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS