cactiとは

サーバや通信機器のグラフレポーティングツール。
基本的な機能はSNMPにより情報を取得しグラフ化する。
データの収集はrrdtoolによる。
自作スクリプトを利用すればあらゆる数値情報をグラフ化できる。

導入方法

cacti(1.1.28)をCentOS(6.9)へインストールした際の備忘録

CentOSの導入と基本設定

SELINUXとiptablesによるアクセス制御の設定

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

EPELのインストール

cactiは標準のリポジトリに含まれていないため、EPELのリポジトリを利用する。

標準リポジトリのパッケージをEPELパッケージでアップデートしなくする。

[root@myhost ~]# yum -y install yum-plugin-priorities
[root@myhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo
各セクション[]で囲まれた部分の最後に
priority=1
を追加する。

EPELのリポジトリ追加

[root@myhost ~]# yum install epel-release

cactiセットアップ

cacti本体のインストール

mysqlは依存関係でインストールされないため、同時に指定する。

[root@myhost ~]# yum install cacti mysql-server

cacti用のapache設定

[root@myhost ~]# vi /etc/httpd/conf.d/cacti.conf
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 ~]# 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 ~]# 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 <  /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> 

cacti動作確認

webでアクセス。
http://サーバのIPアドレス/cacti/
最後にスラッシュがないとアクセスできないので注意。

初回ログイン時は強制的にパスワード変更ダイアログが出る。
セットアップした直後の初期アカウントは admin/admin となっている。

その他の設定

spineを利用する際はConsole -> Cacti Settinfs -> Paths の spineパス設定と Console -> Cacti Settinfs -> Poller の Poller Type設定をする。

sslへの対応

[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

で、完了!

なにかおかしい。。。

うまくポーリングが動作しない。タイムゾーンの設定が適切でないことと、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: 742, today: 1, yesterday: 0

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS