웹사이트 검색

Linux에서 Collectd-web 및 Apache CGI를 사용하여 서버 리소스 모니터링


이 튜토리얼에서는 Collectd 데몬에 대한 프런트엔드 웹 모니터링 도구인 Collectd-web 인터페이스를 Apache CGI와 함께 설치하고 실행하는 방법에 대해 설명합니다. Linux 상자를 모니터링하기 위해 그래픽 HTML 출력을 생성하기 위한 인터페이스입니다.

기사 마지막 부분에서는 .hpasswd Apache 인증 메커니즘을 사용하여 Collectd 웹 인터페이스를 보호하는 방법도 제시합니다.

요구사항

이 문서의 요구 사항은 Linux 시스템에 CollectdCollectd-Web이 설치되어 있어야 한다는 것입니다. 이러한 패키지를 설치하려면 이 시리즈의 이전 기사에 있는 #1#2 단계를 따라야 합니다.

  1. Linux에 Collectd 및 Collectd-Web 설치

위 링크에서 다음 두 단계만 따르십시오.


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

이 두 가지 필수 작업이 성공적으로 완료되면 이 문서의 추가 지침을 계속하여 Apache CGICollectd-web을 구성할 수 있습니다.

1단계: Apache 웹 서버 설치

1. 시스템에 Apache 웹 서버가 이미 설치되어 있다고 가정하고, 그렇지 않은 경우 Linux 배포판에 따라 다음 명령을 사용하여 설치할 수 있습니다.


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

2. Apache를 설치한 후 디렉토리를 기본 웹 서버 문서 루트(/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. Apache가 기본 호스트 HTML Collectd-web cgi-bin 디렉토리에 있는 CGI 스크립트를 실행하려면 Bash 스크립트용 Apache CGI 인터페이스를 명시적으로 활성화해야 합니다(.cgi 사용). 확장자) 사용 가능한 사이트 기본 호스트를 변경하고 아래 명령문 블록을 추가합니다.

데비안 시스템에서

먼저 nano 편집기로 편집할 Apache 기본 호스트 구성 파일을 엽니다.


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

편집을 위해 파일이 열려 있는 동안 아래 이미지에 표시된 대로 Document Root 지시문 아래에 다음 지시문 블록을 추가합니다.


<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 인터페이스에 대한 액세스를 제한하려는 경우 웹 리소스에 액세스하기 위해 사용자 이름과 비밀번호를 입력합니다.

이렇게 하려면 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 서버를 다시 시작하고 다음과 같이 Coollectd-web URL 페이지를 방문하는 것입니다. 전술 한 바와.

인증 자격 증명을 요청하는 팝업이 웹 페이지에 나타나야 합니다. Collectd 웹 인터페이스에 액세스하려면 이전에 생성한 사용자 이름과 비밀번호를 사용하십시오.


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