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

이 기사의 끝에서는 .hpasswd Apache 인증 메커니즘을 사용하여 Collectd-web 인터페이스를 보호하는 방법도 소개하겠습니다.
요구 사항
이 기사의 요구 사항은 리눅스 시스템에 Collectd와 Collectd-Web이 설치되어 있어야 합니다. 이러한 패키지를 설치하려면, 해당 링크의 이전 시리즈 기사에서 #1 단계와 #2 단계를 따라야 합니다:
위 링크에서 다음 두 단계만 따르면 됩니다:
Step 1: Install Collectd Service Step 2: Install Collectd-Web and Dependencies
이 두 단계를 성공적으로 완료한 후에는 이 기사에서 Collectd-web을 Apache 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>

파일 편집을 마치면 CTRL + o를 눌러 파일을 닫고 nano 편집기를 종료합니다 (CTRL+x), 그런 다음 아래 명령을 사용하여 아파치 CGI 모듈을 활성화하고 지금까지 한 모든 변경 사항을 적용하기 위해 서버를 다시 시작합니다:
# a2enmod cgi cgid # service apache2 restart OR # systemctl restart apache2.service [For systemd init scripts]

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/

단계 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>

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


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