- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
* cactiとは [#a67ea3cd]
>サーバや通信機器のグラフレポーティングツール。~
基本的な機能はSNMPにより情報を取得しグラフ化する。~
データの収集はrrdtoolによる。~
自作スクリプトを利用すればあらゆる数値情報をグラフ化できる。~
* 導入方法 [#n37944a2]
>cacti(1.1.28)をCentOS(6.9)へインストールした際の備忘録
** CentOSの導入と基本設定 [#c3a0846f]
*** CentOSのインストール [#i907c238]
>最小構成でインストールする。
*** ユーザアカウント作成 [#ze7608b7]
>
[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の設定 [#l95b8b52]
>
[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によるアクセス制御の設定 [#aad672a1]
>SELinuxを無効にする
[root@myhost tmp]# vi /etc/selinux/config
-----snip-----
#SELINUX=enforcing <- コメントアウト
SELINUX=disabled <- 追加
-----snip-----
>iptablesの設定
[root@myhost tmp]# vi /etc/sysconfig/iptables
-----snip-----
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT <- 追加(http)
-A INPUT -p tcp --dport 443 -j ACCEPT <- 追加(https)
-A INPUT -p udp --dport 161 -j ACCEPT <- 追加(snmp)
-A INPUT -p udp --dport 162 -j ACCEPT <- 追加(snmptrap)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
-----snip-----
>(SELinuxの設定がシステム再起動で反映されるため、再起動する。)
[root@myhost tmp]# shutdown -r now
*** RPMforgeのインストール [#rdcd40d8]
*** EPELのインストール [#rdcd40d8]
>cactiは標準のリポジトリに含まれていないため、EPELのリポジトリを利用する。
*** 標準リポジトリのパッケージをRPMforgeパッケージでアップデートしなくする。 [#e857e1a3]
*** 標準リポジトリのパッケージをEPELパッケージでアップデートしなくする。 [#e857e1a3]
[root@myhost ~]# yum -y install yum-plugin-priorities
[root@myhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo
各セクション[]で囲まれた部分の最後に
priority=1
を追加する。
*** EPELのリポジトリ追加 [#o66978a3]
[root@myhost ~]# yum install epel-release
** cactiセットアップ [#m99b8eeb]
*** cacti本体のインストール [#u04566fc]
>cacti0.8.8はプラグインアーキテクチャ同梱のため、yumでそのままインストールする。mysqlは依存関係でインストールされないため、同時に指定する。
>mysqlは依存関係でインストールされないため、同時に指定する。
[root@myhost ~]# yum install cacti mysql-server
>
[root@myhost ~]# yum install cacti-spine mysql-server
>cacti用のapache設定
[root@myhost ~]# vi /etc/httpd/conf.d/cacti.conf
Alias /cacti/ /var/www/cacti/
<Directory /var/www/cacti/>
DirectoryIndex index.php
Options -Indexes
AllowOverride all
order deny,allow
deny from all
allow from 127.0.0.1
allow from xxx.xxx.xxx.xxx/yy <- 追加
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
Alias /cacti /usr/share/cacti
<Directory /usr/share/cacti/>
<IfModule mod_authz_core.c>
# httpd 2.4
Require host localhost
</IfModule>
<IfModule !mod_authz_core.c>
# httpd 2.2
Order deny,allow
Deny from all
Allow from localhost
Allow from xxx.xxx.xxx.xxx/yy <- 追加
</IfModule>
</Directory>
>グラフに日本語を利用するための設定
[root@myhost ~]# vi /etc/sysconfig/httpd
----- snip -----
#HTTPD_LANG=C <- コメントアウト
HTTPD_LANG=ja_JP.UTF-8 <- 追加
----- snip -----
>サービスの起動設定
[root@myhost ~]# /etc/init.d/httpd start
[root@myhost ~]# service httpd start
[root@myhost ~]# chkconfig httpd on
[root@myhost ~]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
>
[root@myhost ~]# vi /etc/my.cnf
----- snip -----
[mysqld]
default-character-set=utf8 <- 追加
skip-character-set-client-handshake <- 追加
[mysql]
default-character-set=utf8 <- 追加
----- snip -----
[root@myhost ~]# /etc/init.d/mysqld start
>
[root@myhost ~]# service mysqld start
[root@myhost ~]# chkconfig mysqld on
[root@myhost ~]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
>MySQL設定
[root@myhost ~]# mysqladmin -u root password XXXXX
[root@myhost ~]# 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 ~]# mysqladmin -u root -p create cacti
[root@myhost ~]# mysql -u root -p cacti < /var/www/cacti/cacti.sql
[root@myhost ~]# mysql -u root -p cacti < /usr/share/doc/cacti-1.1.19/cacti.sql
[root@myhost ~]# mysql -u root -p
mysql> grant all on cacti.* to cactiuser@localhost identified by 'cactiuser';
mysql> flush privileges;
mysql>
>config.phpの編集
[root@myhost ~]# vi /var/www/cacti/include/config.php
-----snip-----
/*
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 = "/";
$url_path = "/cacti/"; ←修正
-----snip-----
*** cacti動作確認 [#t592975b]
>webでアクセス。~
http://サーバのIPアドレス/cacti/~
最後にスラッシュがないとアクセスできないので注意。
>初回ログイン時は強制的にパスワード変更ダイアログが出る。~
セットアップした直後の初期アカウントは admin/admin となっている。
*** その他の設定 [#va5b2f45]
>spineを利用する際はConsole -> Cacti Settinfs -> Paths の spineパス設定と
Console -> Cacti Settinfs -> Poller の Poller Type設定をする。
** sslへの対応 [#l37ca974]
>
[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
>で、完了!
* なにかおかしい。。。 [#d1e0885c]
>うまくポーリングが動作しない。タイムゾーンの設定が適切でないことと、phpのセッション保存ディレクトリのパーミッションがおかしいようだ。
>
[root@myhost ~]# vi /etc/php.ini
---- snip ----
;date.timezone =
date.timezone = Asia/Tokyo <-- 追加
---- snip ----
[root@myhost ~]# /etc/init.d/httpd restart
[root@myhost ~]# chmod 777 /var/lib/php/session/
~
~
#counter