웹사이트 검색

Cacti를 사용하여 CentOS 7 서버를 모니터링하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 센트OS 8
  • 센트OS 7

이 페이지에서

  1. 1단계 - Apache 설치
  2. 2단계 - PHP 설치
  3. 3단계 - MariaDB 설치
  4. 4단계 - Cacti 설치 및 구성
  5. 5단계 - 권한 및 방화벽 구성\n

Cacti는 무료 오픈 소스 네트워크 그래프 솔루션입니다. 데이터 수집 및 그래프 작성을 위해 RRDTool을 사용합니다. 원격 및 로컬 데이터 수집기, 네트워크 검색, 기기 관리 자동화, 그래프 템플릿 등과 같은 많은 기능을 제공합니다.

이 튜토리얼에서는 CentOS 7 서버에 Cacti를 설치합니다.

전제 조건

  • 최소 CentOS 7 서버
  • 루트 권한\n

1단계 - 아파치 설치

기존 패키지와 리포지토리가 업데이트되도록 패키지를 설치하기 전에 서버를 업데이트하는 것이 좋습니다.

yum -y update

시스템이 업데이트되면 Apache 웹 서버 설치를 진행할 수 있습니다.

yum -y install httpd

이제 Apache 웹 서버를 시작하고 다음 명령을 사용하여 부팅 시 시작되도록 활성화합니다.

systemctl start httpd
systemctl enable httpd

2단계 - PHP 설치

Cacti는 5.3 이상의 모든 PHP 버전을 지원합니다. 하지만 이 튜토리얼에서는 PHP v5.3의 수명이 다했기 때문에 PHP 7.1을 설치합니다. 최신 버전의 PHP를 설치하면 애플리케이션의 최대 보안 및 성능이 보장됩니다.

CentOS의 기본 YUM 리포지토리에는 PHP 7.1이 포함되어 있지 않으므로 시스템에 Webtatic 리포지토리를 추가해야 합니다. Webtatic 저장소가 작동하려면 EPEL 저장소가 필요합니다. 다음 명령을 실행하여 EPEL 리포지토리를 설치합니다.

yum -y install epel-release
yum -y update

명령을 입력하여 Webtatic 리포지토리를 설치합니다.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y update

필요한 모든 종속성과 함께 PHP 7.1을 설치하려면 다음 명령을 입력하십시오.

yum -y install php71w php71w-snmp php71w-mysqli php71w-cli php71w-ldap php71w-xml php71w-session php71w-sockets php71w-pcre php71w-gd php71w-dom php71w-posix php71w-mbstring

PHP가 성공적으로 설치되었는지 확인하려면 다음을 실행할 수 있습니다.

php -v

이와 유사한 출력이 표시되어야 합니다.

[ ~]# php -v
PHP 7.1.6 (cli) (built: Jun 10 2017 07:28:42) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

이제 PHP에서 몇 가지 구성을 구성해야 합니다. 선호하는 텍스트 편집기를 사용하여 PHP 구성 파일인 php.ini를 엽니다. 이 자습서에서는 나노 편집기를 사용합니다. nano가 설치되어 있지 않으면 yum -y install nano를 실행할 수 있습니다.

nano /etc/php.ini

다음 줄을 찾아 주석 처리를 해제하고 지역에 따라 시간대를 설정합니다. 예를 들어:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Kolkata

3단계 - MariaDB 설치

MariaDB는 MySQL 데이터베이스의 포크입니다. 서버에 MariaDB를 설치하려면 다음을 실행하십시오.

yum -y install mariadb mariadb-server

다음 명령을 실행하여 MariaDB를 시작하고 부팅 시 시작되도록 활성화합니다.

systemctl start mariadb
systemctl enable mariadb


이제 다음 명령을 실행하여 MariaDB 설치를 보호하십시오.

mysql_secure_installation

위의 명령은 새로운 MariaDB 설치를 보호하기 위해 스크립트를 실행합니다. 스크립트는 기존 루트 사용자 암호를 묻습니다. 방금 MariaDB를 설치했으며 루트 암호가 설정되지 않았습니다. 계속 진행하려면 Enter 키를 누르십시오.

스크립트는 MariaDB 설치를 위한 루트 암호를 설정할지 묻고 y를 선택하고 설치를 위한 강력한 암호를 설정합니다. 대부분의 질문은 자명하며 모든 질문에 예 또는 y로 대답해야 합니다. 출력은 아래와 같이 표시됩니다.

데이터베이스를 생성하려면 먼저 MySQL 명령줄에 로그인해야 합니다. 동일하게 다음 명령을 실행하십시오.

mysql -u root -p

위의 명령은 루트 사용자의 MySQL 셸에 로그인하고 루트 사용자의 암호를 묻는 메시지를 표시합니다. 로그인하려면 암호를 입력하십시오. 이제 다음 쿼리를 실행하여 Cacti 설치를 위한 새 데이터베이스를 만듭니다.

CREATE DATABASE cacti_data;

위의 쿼리는 cacti_data라는 새 데이터베이스를 생성합니다. 원하는 경우 데이터베이스에 다른 이름을 사용할 수 있습니다. 쿼리는 항상 세미콜론으로 끝나므로 각 쿼리 끝에 세미콜론을 사용해야 합니다.

데이터베이스가 생성되면 새 사용자를 생성하고 해당 사용자에게 데이터베이스에 대한 모든 권한을 부여할 수 있습니다. 새 데이터베이스 사용자를 생성하려면 다음 쿼리를 실행합니다.

CREATE USER 'cacti_user'@'localhost' IDENTIFIED BY 'StrongPassword';

위의 쿼리는 사용자 이름이 cacti_user인 사용자를 생성합니다. cacti_user 대신 원하는 사용자 이름을 사용할 수 있습니다. StrongPassword를 매우 강력한 암호로 바꾸십시오. 이제 생성한 데이터베이스에 대한 모든 권한을 데이터베이스 사용자에게 제공하십시오. 다음 명령을 실행합니다.

GRANT ALL PRIVILEGES ON cacti_data.* TO 'cacti_user'@'localhost';

이제 다음 명령을 실행하여 데이터베이스 권한에 대한 변경 사항을 즉시 적용하십시오.

FLUSH PRIVILEGES;

다음 명령을 사용하여 MySQL 프롬프트를 종료합니다.

EXIT;

시간대 테이블도 채워야 합니다. 다음 명령을 실행하여 시간대 테이블을 채웁니다.

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

계속 진행하려면 MySQL 루트 암호를 입력하십시오. 테이블이 채워지면 테이블을 통해 Cacti 사용자 계정에 대한 선택 액세스를 제공해야 합니다. 다음을 사용하여 MySQL 프롬프트에 다시 로그인하십시오.

mysql -u root -p

이제 다음 쿼리를 실행합니다.

GRANT SELECT ON mysql.time_zone_name TO 'cacti_user'@'localhost';
FLUSH PRIVILEGES;

위의 쿼리는 SELECT가 cacti_user에 대한 액세스 권한을 부여합니다.

4단계 - Cacti 설치 및 구성

Cacti에는 몇 가지 종속성이 더 필요합니다. 다음 명령을 실행하여 설치하십시오.

yum -y install net-snmp rrdtool net-snmp-utils

모든 종속성이 준비되었으므로 이제 Cacti 웹 사이트에서 설치 패키지를 다운로드할 수 있습니다.

cd /var/www/html
wget http://www.cacti.net/downloads/cacti-1.1.10.tar.gz

Cacti 다운로드 페이지에서 항상 최신 버전의 애플리케이션 링크를 찾을 수 있습니다. 다음 명령을 사용하여 아카이브를 추출하십시오.

tar xzvf cacti*.tar.gz

다음을 사용하여 Cacti 폴더의 이름을 바꿉니다.

mv cacti-1*/ cacti/

이제 다음 명령을 실행하여 Cacti 데이터베이스를 가져옵니다.

cd /var/www/html/cacti
mysql cacti_data < cacti.sql -u root -p

위의 명령은 루트 사용자를 사용하여 cacti.sql 데이터베이스를 cacti_data로 가져옵니다. 또한 데이터베이스를 가져오기 전에 루트 사용자의 비밀번호를 묻습니다.

이제 다음 명령을 실행하여 Cacti 구성을 편집합니다.

nano /var/www/html/cacti/include/config.php

이제 다음 줄을 찾아 MySQL 데이터베이스 자격 증명에 따라 편집합니다.

/* make sure these values reflect your actual database/host/user/password */

$database_type     = 'mysql';
$database_default  = 'cacti_data';
$database_hostname = 'localhost';
$database_username = 'cacti_user';
$database_password = 'StrongPassword';
$database_port     = '3306';
$database_ssl      = false;

5단계 - 권한 및 방화벽 구성

이제 다음 명령을 사용하여 웹 서버 사용자에게 애플리케이션의 소유권을 제공해야 합니다.

chown -R apache:apache /var/www/html/cacti

방화벽을 실행 중인 경우 방화벽을 통해 포트 80에서 HTTP 트래픽을 허용해야 할 수도 있습니다. 동일하게 다음 명령을 실행하십시오.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

프록시 구성이 SELinux 정책과 작동하지 않기 때문에 이제 SELinux를 비활성화해야 합니다. 서버를 다시 시작하지 않고 SELinux를 일시적으로 비활성화하려면 다음 명령을 실행합니다.

setenforce 0

SELinux를 완전히 비활성화하려면 /etc/selinux/config 파일을 편집해야 합니다.

nano /etc/selinux/config

다음 줄을 찾으십시오.

SELINUX=enforcing

다음으로 변경:

SELINUX=disabled

이제 웹 브라우저를 사용하여 설치를 완료하고 원하는 웹 브라우저를 사용하여 다음 링크로 이동합니다.

http://Your_Server_IP/cacti

다음 페이지가 표시됩니다.

계속 진행하려면 라이센스 계약에 동의하십시오.

다음 인터페이스에서 사전 설치를 볼 수 있으며 필요한 모든 종속성이 충족됩니다.

다음 인터페이스로 진행합니다.

설치 유형에서 새 주 서버를 선택하고 다음으로 진행합니다.

다음 인터페이스에서 바이너리에 위치를 제공해야 합니다. RRDTool 및 PHP 바이너리의 경로가 정확합니다. 다른 모든 바이너리의 경우 경로 /usr/bin/binary_name을 제공합니다. 예를 들어, snapwalk 바이너리의 경우 경로는 /usr/bin/snmpwalk입니다.

다음 인터페이스에서 서버에 필요한 모든 폴더에 대한 쓰기 액세스 권한이 있음을 알 수 있습니다.

템플릿 설정에서 로컬 Linux 머신을 선택하고 마침을 클릭합니다.

로그인 페이지로 이동됩니다. 사용자 이름 admin과 비밀번호 admin을 사용하여 로그인하면 대시보드로 이동합니다.

이제 Cacti 설치가 완료되었습니다. 애플리케이션을 사용하여 대화형 그래프를 사용하여 서버를 모니터링할 수 있습니다.