サーバや通信機器のグラフレポーティングツール。
基本的な機能はSNMPにより情報を取得しグラフ化する。
データの収集はrrdtoolによる。
自作スクリプトを利用すればあらゆる数値情報をグラフ化できる。
cacti(1.1.28)をCentOS(6.9)へインストールした際の備忘録
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
cactiは標準のリポジトリに含まれていないため、EPELのリポジトリを利用する。
[root@myhost ~]# yum -y install yum-plugin-priorities [root@myhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo 各セクション[]で囲まれた部分の最後に priority=1 を追加する。
[root@myhost ~]# yum install epel-release
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>
webでアクセス。
http://サーバのIPアドレス/cacti/
最後にスラッシュがないとアクセスできないので注意。
初回ログイン時は強制的にパスワード変更ダイアログが出る。
セットアップした直後の初期アカウントは admin/admin となっている。
spineを利用する際はConsole -> Cacti Settinfs -> Paths の spineパス設定と Console -> Cacti Settinfs -> Poller の Poller Type設定をする。
[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/