こんにちは、鯨井貴博@opensourcetechです。
今回は、Virtualbox上の仮想マシン(CentOS7)にて、
LPICレベル2の範囲に含まれるcollectdを使ってみます。
なおCentOS7についてはインストールされている前提となりますので、
CentOS7のインストールから行う場合は、
その1、その2、その3、Netinstall編をご覧ください。
また、CentOS6環境でcollectdを使いたい方は、
こちらをご覧ください。
まずは、collectdパッケージを含んでいるepelレポジトリを利用する準備から始めます。
http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/repoview/epel-release.html
にあるepel-release-7-1.noarchを取得します。
wget http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/e/epel-release-7-1.noarch.rpm
続いて取得したrpmをインストールします。
rpm -ivh epel-release-7-1.noarch.rpm
すると、/etc/yum.repos.dにepel-testing.repoとelep.repoというレポジトリファイルが作成されます。
collectdのインストールを行います。
yum install collectd
collectdがインストール出来たら、
設定ファイルである/etc/collectd.confを編集します。
編集箇所は、Hostnameというパラメータにて、「"Collectd on CentOS7(任意名)"」を設定します。
また、システムリソースを取得しrrdファイルに格納してくれるcollectd-rrdtoolもインストールします。やたらと依存関係が多いです(笑)
yum install collectd-rrdtool
続いてcollectdの起動。
CentOS7ではsystemdが使われているので、
systemctl start collectd.serviceとします。
systemdについて知りたい方は、こちら。
collectdを起動すると、/var/lib/collectd/rrd/ホスト名ディレクトリ配下の
各リソースディレクトリ内にrrdファイルが作成されます。
続いて、
取得したrrdファイルの情報をグラフ化し、ブラウザから閲覧する為に、
httpdおよびcollectd-webをインストールします。
yum install httpd
yum install collectd-web
Collectd用にApache(httpd)を設定するのですが、
collectd-webのインストールとともに、
/etc/httpd/conf.dディレクトリにcollectd.confというファイルが出来ますので、
これを編集します。
編集内容としては、
グラフ化を行うスクリプトであるindex.cgiが実行出来るように、
Options ExecCGI(CGI使用の許可)と、
Allow from 192.168.11.0/24(アクセス制御)を設定しました。
そして、httpdの起動。
systemctl start httpd.service
lsof -i:80でTCP80番ポートの使用状況を確認します。
続いて、iptablesを設定し、apache(httpd)への通信を許可します。
iptables -I IN_public_allow 2 -p tcp --dport 80 -m state --state NEW -j ACCEPT
なお、CentOS7におけるiptablesについては、以下をご覧ください。
CentOS6と7の差分対応 (iptables) - Opensourcetechブログ(ゼウス・ラーニングパワー裏BLOG)
そしていよいよ、クライアントのブラウザより、
http://collectdのIPアドレス/collectd/bin/index.cgiへアクセスします。
が、しかし、
何故か「403 Forbidden」となりアクセスが拒否されます。
You don't have permission to access /collectd/bin/index.cgi on this server.とあることからどうもアクセス制御に引っかかっているようです。
しかし、Allow fromとDeny fromはきちんと設定したような気がしたので、
念の為、Apacheのドキュメントを確認しました。
Upgrading to 2.4 from 2.2 - Apache HTTP Server Version 2.4
すると、apache2.4ではアクセス制御の設定方法が変更されているとの記載が、、(汗)
Order deny,allow
Deny from allは、Require all denied
Order allow,deny
Allow from allは、Require all granted
Order Deny,Allow
Deny from all
Allow from example.orgは、Require host example.orgにせよとあるではありませんか。
rpm -q httpdとすると、
確かにバージョン2.4です。
早速、/etc/httpd/conf.d/collectd.confを再編集します。
編集箇所は以下です。
そして、httpdの再起動。
systemctl stop httpd.service
systemctl start httpd.service
改めてブラウザより、http://collectdのIPアドレス/collectd/bin/index.cgiにアクセスすると、今度は無事に表示されました。
リソース表示もOK!
Apache2.4のUpdateに少しあせりながらも、
無事完了です。
collectdが試験範囲に含まれているLPICレベル2を勉強されている方は、
こちらもどうぞ!