ウェブサイト検索

Linux での Collectd-web および Apache CGI を使用したサーバー リソースの監視


このチュートリアルでは、Collectd デーモンのフロントエンド Web 監視ツールである Collectd-web インターフェイスをApache CGI と組み合わせてインストールして実行する方法について説明します。 Linux ボックスを監視するためにグラフィカル HTML 出力を生成するインターフェイス。

この記事の最後では、.hpasswd Apache 認証メカニズムを使用して Collectd-web インターフェイスを保護する方法についても説明します。

要件

この記事の要件は、Linux システムにCollectdCollectd-Web がインストールされている必要があることです。これらのパッケージをインストールするには、このシリーズの前の記事の手順 #1#2 に従う必要があります。

  1. Linux に Collectd と Collectd-Web をインストールする

上記のリンクから次の 2 つの手順に従ってください。


Step 1: Install Collectd Service 
Step 2: Install Collectd-Web and Dependencies 

これら 2 つの必要な作業が正常に完了したら、この記事の手順を続けて Apache CGI を使用してCollectd-web を構成できます。

ステップ 1: Apache Web サーバーのインストール

1. システムに Apache Web サーバーがすでにインストールされていると仮定します。インストールされていない場合は、Linux ディストリビューションに応じて次のコマンドを使用してインストールできます。


apt-get install apache2	[On Debian based Systems]
yum install httpd		[On RedHat based Systems]

2. Apache をインストールした後、ディレクトリをデフォルトの Web サーバー ドキュメント ルート (/var/www/html/ または /var/www にあります) に変更します。システム パスを取得し、以下のコマンドを実行してCollectd-web Githubプロジェクトのクローンを作成します。


cd /var/www/html
git clone https://github.com/httpdss/collectd-web.git

また、次のコマンドを発行して、Collectd-web スクリプトを実行可能にします。


chmod +x /var/www/html/collectd-web/cgi-bin/graphdefs.cgi

ステップ 2: デフォルト ホストの Apache CGI (.cgi スクリプト) を有効にする

3. デフォルトのホスト HTML Collectd-web cgi-bin ディレクトリにある CGI スクリプトを Apache で実行するには、Bash スクリプトの Apache CGI インターフェイスを明示的に有効にする必要があります (.cgi を使用) 拡張子) を変更するには、 サイト利用可能 のデフォルト ホストを変更し、以下のステートメント ブロックを追加します。

Debian システムの場合

まず、Apache のデフォルトのホスト構成ファイルを開き、nano エディタで編集します。


nano /etc/apache2/sites-available/000-default.conf

ファイルを編集のために開いているときに、次の図に示すように、ドキュメント ルート ディレクティブの下に次のディレクティブ ブロックを追加します。


<Directory /var/www/html/collectd-web/cgi-bin>
                Options Indexes ExecCGI
                AllowOverride All
                AddHandler cgi-script .cgi
                Require all granted
</Directory>

ファイルの編集が完了したら、CTRL + o でファイルを閉じ、nano エディター(CTRL+x) を終了してから、Apache CGI モジュールを有効にしてサーバーを再起動します。以下のコマンドを発行して、これまでに加えたすべての変更を適用します。


a2enmod cgi cgid
service apache2 restart
OR
systemctl restart apache2.service     [For systemd init scripts]

RedHat システムの場合

4. CentOS/RHEL の Apache CGI インターフェイスを有効にするには、httpd.conf Apache 構成ファイルを開き、ファイルの最後に次の行を追加します。


nano /etc/httpd/conf/httpd.conf

次の抜粋を httpd.conf ファイルに追加します。


ScriptAlias /cgi-bin/ “/var/www/html/collectd-web/cgi-bin"
Options FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .pl

変更を適用するには、次のコマンドを発行して httpd デーモンを再起動します。


service httpd restart
OR
systemctl restart httpd        [For systemd init scripts]

ステップ 3: Collectd-Web インターフェイスを参照する

5. Collectd-web インターフェイスにアクセスし、これまでに収集されたマシンに関する統計を視覚化するには、ブラウザを開いてマシンの IP アドレス/collectd- に移動します。 web/HTTP プロトコルを使用した URI の場所。


http://192.168.1.211/collect-web/

ステップ 4: Apache 認証を使用して Collectd-web URL をパスワード保護する

6. Apache 認証メカニズム (.htpasswd) を使用して保護することで、Collectd-web インターフェイスへのアクセスを制限したい場合。これには訪問者が必要です。 Web リソースにアクセスするためにユーザー名とパスワードを入力します。

これを行うには、apache2-utils パッケージをインストールし、ローカル認証用の資格情報のセットを作成する必要があります。この目標を達成するには、まず次のコマンドを発行してapache2-utils パッケージをインストールします。


apt-get install apache2-utils	        [On Debian based Systems]
yum install httpd-tools		[On RedHat based Systems]

7. 次に、ユーザー名とパスワードを生成し、Apache のデフォルト ホスト Collectd-web の下にある非表示のローカル .htpass ファイルに保存します。以下のコマンドを発行してパスを取得します。


htpasswd -c /var/www/html/collectd-web/.htpass  your_username

次のアクセス許可を割り当てて、このファイルを保護してみます。


chmod 700 /var/www/html/collectd-web/.htpass
chown www-data /var/www/html/collectd-web/.htpass

8. 次のステップでは、.htpass ファイルを生成した後、Apache のデフォルト ホストを編集用に開き、基本的な htpasswd を使用するようにサーバーに指示します。以下のスクリーンショットに示すように、次のディレクティブ ブロックを追加してサーバー側認証を行います。


<Directory /var/www/html/collectd-web >
                AuthType Basic
                AuthName "Collectd Restricted Page"
                AuthBasicProvider file
                AuthUserFile /var/www/html/collectd-web/.htpass 
                Require valid-user
</Directory>

9. 変更を反映するための最後のステップは、以下のコマンドを発行して Apache サーバーを再起動し、Coolectd-web URL ページにアクセスします。上で説明した。

認証資格情報を要求するポップアップが Web ページに表示されます。前に作成したユーザー名とパスワードを使用して、Collectd Web インターフェイスにアクセスします。


service apache2 restart		[On Debian based Systems]
service httpd restart			[On RedHat based Systems]

OR
---------------- For systemd init scripts ----------------
systemctl restart apache2.service		
systemctl restart http.service