- TOP - TALK - PROF - LINK -
[ Linuxに戻る ] [ 雑学に戻る ]

<<更新日:2012/04/27>>

cactiインストール


sysstatを入れましたが、データはべたなテキストです。
利用するにはEXCELやなんかでグラフ化しないといけません。
とりあえずグラフ化されていれば長期変動が見やすくなるわけなので、手をかけずにグラフ化したいですね。
手をかける作業は人間続きませんので。

そんな訳で、ちょっと前であればMRTGとなるんでしょうが、昨今様々なツールが出ています。
やる事により選択肢は変わってきますが、特に理由はありませんが、cactiを利用してみます。

以下は参考にしたサイトのURL
http://d.hatena.ne.jp/eco31/20101212/1292120350
http://centossrv.com/rrdtool-cacti.shtml
http://cacti.loaded.jp/index.php?UNIX%A4%C7%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%BC%EA%BD%E7


cactiはSNMPで情報収集しますので、管理したいサーバにはSNMPサービスを起動しないといけません。
最初にnet-snmpインストールします。
ついでにユーティリティもインストールします。
yum -y install net-snmp
yum -y install net-snmp-utils

インストールしたSNMPの設定を行います。

vi /etc/snmp/snmpd.conf


com2sec [cacti_arg] xxx.xxx.xxx.xxx/32 public ←追加

group [usergrp] v1 [cacti_arg] ←追加

view all included .1 80 ←追加

access [usergrp] "" any noauth exact all none none


上記で[cacti_arg]は入れる環境で自由に決めて良いですが、cactiで使う引数である事を意識して下さい。
また、[usergrp]についても、利用するグループになりますので、内部用として設定して下さい。

コミュニティ名を変えたい方はpublicとなっている所を変更すれば良いのですが、ここだけ変えるとちゃんと取得できないので、SNMPについては別途記載したいと思います。


cactiをインストールするにあたり、RPMダウンロードしてきても良いのですが、メンテナンス含めて手を抜きたいので、RPMforgeを利用したいと思います。

サードパーティ製の物が登録されたり、開発中の物が入ったりしますので、先進的な方は登録されると良いと思います。

cactiのyumインストールの為、RPMforgeリポジトリ導入(RPMforge)

まずは何でもかんでもRPMforgeから取ってくると、安定版での運用ができなくなりますので、RPMforgeのプライオリティは下げます。
その為、現状のyum設定をいじります。

Priority設定
vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1 ← 追加

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1 ← 追加

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1 ← 追加

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=2


次にrpmforgeをダウンロードしてきます。

rpmforgeの最新版確認

http://wiki.centos.org/AdditionalResources/Repositories/RPMForge
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge#head-5aabf02717d5b6b12d47edbc5811404998926a1b
x86_64 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

バイナリ入手 x86_64 CentOS5版・・・環境によって違うので注意
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

今回うちの環境ではCentOS5の64bit版ですので、それを落としてきます。
OSバージョンが違う場合は、上記サイトを確認して、自分のバージョンに合ったものを入れて下さい。


rpmの正当性判断の為、GPG key をインポート
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
ダウンロードファイルの状態確認

rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm
rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK

ここでgpg OKと出ればダウンロードファイルは壊れたり改竄されたりしていない事が確認できます。
※但し、改竄については、GPG keyも合わせて改竄されると分かりませんけどね・・・


rpmforgeインストール
rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm

通常rpmforgeを使わないようにする設定
vi /etc/yum.repos.d/rpmforge.repo

### Name: RPMforge RPM Repository for RHEL 5 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0  ←1から変更
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority=10 ←追加

[rpmforge-extras]
name = RHEL $releasever - RPMforge.net - extras
baseurl = http://apt.sw.be/redhat/el5/en/$basearch/extras
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge-extras
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority=10 ←追加

[rpmforge-testing]
name = RHEL $releasever - RPMforge.net - testing
baseurl = http://apt.sw.be/redhat/el5/en/$basearch/testing
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge-testing
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority=10 ←追加

使うときは・・・# yum --enablerepo=rpmforge search xxxxx
xxxxxは探したいrpmファイル名

さて、着々と準備していますが、cactiのインストールはまだ先になります。

cactiはデータの管理にMYSQLを利用しますので、MYSQLのインストールを行います。

yum -y install mysql-server

Cactiはrpmforgeにしか無いので・・・以下のコマンド
yum -y --enablerepo=rpmforge install cacti

MySQLの設定

/etc/init.d/mysql start

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
init_connect='SET NAMES utf8' ←追加
default-character-set=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 ←追加

一度リスタート
/etc/init.d/mysql restart

cacti用mysql設定

mysqladmin --user=root create cacti
mysql --user=root cacti < /var/www/cacti/cacti.sql
mysql --user=root mysql

mysql> grant all on cacti.* to cactiuser@localhost identified by 'cactiuser';

mysql> flush privileges;

mysql> quit

ここでcactiは起動でき、アクセスが可能となりますが、先にWebサーバ立ててますので、インターネットからアクセスが可能となります。
管理情報は管理者側からすると有用な情報ですが、攻撃者にとっても良い情報となります。
知らない人に自分の健康状態見られたく無いですよね。

そんな訳で、外から見えないようにでも自分は外から見えるように工夫します。

うちのサーバではBasic認証で辞書アタックを防ぐ事にしました。
SSHで転送とかもあるのですが、公開サーバでもあるので、そちらとの整合性迄の知識が無いので、まず簡単にできる所から。
Basic認証の設定

cactiフォルダの直下に.htaccessを作成します。
vi /var/www/cacti/.htaccess


ここでは、/var/wwwの直下に.cactipassと言うパスワードファイルを作成しました。
AuthType Basic
AuthName "Access Deny"
AuthUserFile /var/www/.cactipass
require valid-user


パスワードファイル作成
cd /var/www/
htpasswd -cb .cactipass [webuser] [password]


インストールした時のデフォルト設定では外から見られませんので、cacti用コンフィグのアクセス権を変更します。
vi /etc/httpd/conf.d/cacti.conf

Alias /cacti/ /var/www/cacti/

DirectoryIndex index.php
Options -Indexes
AllowOverride all
order deny,allow
# deny from all ←コメントアウト
# allow from 127.0.0.1 ←コメントアウト
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on

最後に自動起動設定します。
chkconfig mysqld on
chkconfig snmpd on

これで、とりあえずcactiのインストールが終わりました。
cactiの設定についてはこの次に。