리눅스에서 Collectd-web 및 Apache CGI를 사용하여 서버 자원 모니터링하기

이 튜토리얼에서는 Collectd-web 인터페이스를 설치하고 실행하는 방법에 대해 설명하겠습니다. 이는 Collectd 데몬과 함께 사용되는 웹 모니터링 도구이며, Apache CGI 인터페이스와 함께 사용하여 리눅스 상자를 모니터링하기 위한 그래픽 HTML 출력물을 생성합니다.

Monitor Linux Server Resources

이 기사의 끝에서는 .hpasswd Apache 인증 메커니즘을 사용하여 Collectd-web 인터페이스를 보호하는 방법도 소개하겠습니다.

요구 사항

이 기사의 요구 사항은 리눅스 시스템에 CollectdCollectd-Web이 설치되어 있어야 합니다. 이러한 패키지를 설치하려면, 해당 링크의 이전 시리즈 기사에서 #1 단계와 #2 단계를 따라야 합니다:

  1. 리눅스에 Collectd 및 Collectd-Web 설치

위 링크에서 다음 두 단계만 따르면 됩니다:

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

이 두 단계를 성공적으로 완료한 후에는 이 기사에서 Collectd-webApache CGI와 함께 구성하는 방법에 대한 추가 지침을 계속할 수 있습니다.

단계 1: Apache 웹 서버 설치

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

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

2. 아파치를 설치한 후에는 기본 웹 서버 문서 루트(/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: 기본 호스트를 위해 아파치 CGI (.cgi 스크립트) 활성화

3. 기본 호스트 HTML Collectd-web cgi-bin 디렉토리에 있는 CGI 스크립트를 실행하기 위해 아파치가 Bash 스크립트(.cgi 확장자)를 명시적으로 활성화하려면 sites-available 기본 호스트를 수정하고 아래 문장 블록을 추가해야 합니다.

Debian 시스템에서

먼저 다음 명령을 사용하여 아파치 기본 호스트 구성 파일을 nano 편집기로 엽니다:

# 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>
Enable CGI in Debian

파일 편집을 마치면 CTRL + o를 눌러 파일을 닫고 nano 편집기를 종료합니다 (CTRL+x), 그런 다음 아래 명령을 사용하여 아파치 CGI 모듈을 활성화하고 지금까지 한 모든 변경 사항을 적용하기 위해 서버를 다시 시작합니다:

# a2enmod cgi cgid
# service apache2 restart
OR
# systemctl restart apache2.service     [For systemd init scripts]
Enable Apache CGI

RedHat 시스템에서

4. CentOS/RHEL을 위해 아파치 CGI 인터페이스를 활성화하려면 httpd.conf 아파치 구성 파일을 열고 파일의 맨 아래에 다음 라인을 추가합니다:

# 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. 지금까지 수집된 기계에 대한 통계를 시각화하려면 브라우저를 열고 HTTP 프로토콜을 사용하여 기계의 IP 주소/collectd-web/ URI 위치로 이동하십시오.

http://192.168.1.211/collect-web/
Collectd-Web Dashboard

단계 4: Apache 인증을 사용하여 Collectd-web URL 보호

6. 방문자가 웹 리소스에 액세스하려면 사용자 이름과 암호를 입력해야 하는 Apache 인증 메커니즘 (.htpasswd)을 사용하여 Collectd-web 인터페이스에 액세스를 제한하려는 경우.

이를 위해 로컬 인증을 위해 일련의 자격 증명을 생성하고 저장할 .htpass 파일을 만들려면 먼저 다음 명령을 사용하여 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>
Apache Password Protect Directory

9. 변경 사항을 반영하기 위한 마지막 단계는 아래 명령을 사용하여 Apache 서버를 다시 시작하고 위에서 설명한 대로 Coollectd-web URL 페이지를 방문하는 것입니다.

A pop-up should appear on the web page requesting for your authentication credentials. Use the username and password created earlier to access Collectd web interface.

# 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  
Apache Password Authentication
Collectd-Web Panel

Source:
https://www.tecmint.com/monitor-linux-server-resources-with-collectd-web-and-apache-cgi/