서버 모니터링 · 5 min read · Nov 01, 2025

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

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

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

전제 조건

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

1단계 - Apache 설치하기

패키지를 설치하기 전에 서버를 업데이트하는 것이 좋습니다. 기존 패키지와 저장소가 업데이트됩니다.

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

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

[root@liptan-pc ~]# 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 편집기를 사용할 것입니다. 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;

위 쿼리는 cacti_user에게 SELECT 권한을 부여합니다.

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

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

Cacti 라이센스

계속 진행하려면 라이센스 계약에 동의합니다.

다음 인터페이스에서 사전 설치를 확인합니다. 모든 필수 종속성이 충족됩니다.

Cacti 사전 설치 확인

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

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

Cacti 기본 서버

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

Cacti 설정 페이지

다음 인터페이스에서 서버가 모든 필수 폴더에 대한 쓰기 권한을 가지고 있음을 확인합니다.

디렉토리 권한 확인

템플릿 설정에서 로컬 리눅스 머신을 선택하고 완료를 클릭합니다.

템플릿 설정

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

Cacti 대시보드

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

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.