Cacti 설치 및 설정 (Ubuntu)

| 2020년 4월 28일 | 0 Comments

 

Cacti란 데이터베이스를 이용하여 웹 그래픽을 생성하는 도구로써, 시스템 상의 각종 데이터 값을 데이터베이스에 저장하고, 시간 단위로 저장된 데이터를 분석하여 Web 상에서 그래프로 보여주는 오픈소스 시스템 모니터링 도구입니다.

Ubuntu 환경에서 Cacti를 설치하고 설정하는 과정에 대해서 다루도록 하겠습니다. Cacti의 사용을 위해 APM이 필요하며, APM이 설치된 환경에서 Cacti 설치를 진행하였습니다.

 

1. 필수 패키지 설치

# apt-get install snmp snmpd php-snmp php-xml php-gd php-ldap php-mbstring php-gmp rrdtool

→ ‘apt-get’ 명령어를 이용하여 Cacti 에 필요한 각종 패키지들을 설치합니다.

 

2. Cacti 다운로드

# cd /var/www/html
# wget https://www.cacti.net/downloads/cacti-1.1.38.tar.gz
# tar zxvf cacti-1.1.38.tar.gz
# mv cacti-1.1.38 cacti_html

→ ‘/var/www/html’ 경로에 ‘wget’ 명령어로 cacti 설치 파일을 다운로드합니다. 이후 압축을 풀고 해당 디렉터리 이름을 ‘cacti_html’ 으로 변경합니다.

 

3. Cacti 경로 설정

# vi /etc/apache2/apache2.conf

→ vi 편집기로 apache 설정 파일(apache2.conf)을 엽니다.

 

Alias /cacti /var/www/html/cacti_html

→ cacti 설치 경로를 /cacti 로 치환하기 위해 위의 문장을 설정 파일 하단에 추가합니다.

 

# service apache2 restart

→ apache 설정 파일의 적용을 위해 서비스를 재시작합니다.

 

4. Cacti DB 생성 및 설정

# mysqladmin create cacti -u root -p   → DB 생성
# cd /var/www/html/cacti_html
# mysql -u root -p cacti < cacti.sql   → DB 복원

→ ‘cacti ’ 라는 이름의 DB 를 생성한 뒤 cacti 설치 경로(cacti_html)의 cacti.sql 파일을 이용하여 DB 를 복원합니다.

 

# mysql -u root -p
> grant all privileges on cacti.* to cacti@localhost identified by ‘100smile@’;
> flush privileges;

→ mysql 에 root 계정으로 접속합니다. ‘cacti ’ DB 에 대한 모든 권한을 가지며 localhost 에서 접근 가능한 ‘cacti ’ 라는 사용자를 생성합니다. 이후 ‘flush’ 명령어로 변경된 내용을 저장합니다.

 

# vi /var/www/html/cacti_html/include/config.php

→ vi 편집기로 위의 경로에 위치한 ‘config.php’ 파일을 엽니다.

 

$database_type = ‘mysql’;
$database_default = ‘cacti’;
$database_hostname = ‘localhost’;
$database_username = ‘cacti’;
$database_password = ‘100smile@’;
$database_port = ‘3306’;
$database_ssl = false;

→ 위의 과정들에서 설정한 내용을 토대로 데이터베이스의 정보를 지정합니다.

 

5. PHP  표준 시간대 설정

# vi /etc/php/7.0/apache2/php.ini

→ vi 편집기로 php 설정파일(php.ini)을 엽니다.

 

date.timezone = Asia/seoul

→ 서울 표준 시간 적용을 위해 date.timezone 을 ‘Asia/seoul’ 로 지정합니다.

 

# service apache2 restart

→ php 설정 파일 적용을 위해 apache 서비스를 재시작합니다.

 

6. MySQL 표준 시간대 설정

# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
# mysql_tzinfo_to_sql /usr/share/zoneinfo/Asia/Seoul KST

→ ‘mysql_tzinfo_to_sql’ 명령어를 이용하여 시스템의 타임 존 정보를 mysql 내부에 적용시킵니다.

 

# vi /etc/mysql/my.cnf

→ vi 편집기로 mysql 설정파일(my.cnf)을 엽니다.

 

default-time-zone=’Asia/Seoul’

→ 서울 표준 시간 적용을 위해 [mysqld] 하단에 위의 내용을 추가합니다.

 

# service mysql restart

→ mysql 설정 파일 적용을 위해 서비스를 재시작합니다.

 

# mysql -u root -p
> select @@global.time_zone, @@session.time_zone;

→ mysql 에 root 계정으로 접속합니다. 이후 select 명렁어를 이용하여 mysql 에 적용된 표준 시간대를 확인합니다.

 

> grant select on mysql.time_zone_name to cacti@localhost identified by ‘100smile@’;
> flush privileges;

→ 추가적으로 cacti 계정에 timezone 에 대한 select 권한을 부여합니다.

 

7. crontab 설정

# crontab -e

→ crontab 설정을 위해 해당 명령어를 입력합니다.

 

*/1 * * * * /usr/bin/php /var/www/html/cacti_html/poller.php –force > /dev/null 2>&1

→ 모니터링 측정을 위한 ‘poller.php’ 파일을 1 분 주기로 동작하도록 설정합니다.

 

8. 권한 설정

# chmod 777 /var/www/html/cacti_html/rra /var/www/html/cacti_html/log

→ Cacti 의 그래프와 로그 파일이 저장되는 경로의 권한을 설정합니다.

 

9. Cacti 설치

→ 웹 브라우저를 열고 URL 에 ‘[서버 IP]/cacti/install’을 입력합니다.

 

→ ‘Accept GPL License Agreement’를 체크하고 ‘Begin’을 누릅니다.

 

 

→ Cacti 설치 이전에 표준 시간대 설정, DB 테이블 설정, PHP 모듈 설치 여부, mysql 설정 파일 등을 검사하는 부분입니다. 설정에 문제가 있는 부분은 위와 같이 빨간색으로 표시됩니다.

 

max_heap_table_size = 256M
tmp_table_size = 64M
join_buffer_size = 128M
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 128M
innodb_doublewrite = OFF
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16

→ my.cnf 파일을 열고 문제가 발생한 부분을 설정한 뒤 mysql 을 재시작합니다.

 

→ 설정을 재확인하고 ‘Next’로 넘어갑니다.

 

→ ‘New Primary Server’가 선택된 상태에서 ‘Next’로 넘어갑니다.

 

→ 각종 바이너리 파일 경로 및 RRDtool 의 버전을 확인하고 ‘Next’로 넘어갑니다. ‘spine’은 Cacti 에서 사용되는 모듈로 별도의 사용이 없을 경우 설치를 진행하지 않아도 무방합니다.

 

# chown -R apache:apache /var/www/html/cacti_html/resource
# chown -R apache:apache /var/www/html/cacti_html/scripts
# chown -R apache:apache /var/www/html/cacti_html/cache
# chmod 777 /var/www/html/cacti_html/resource/snmp_queries
# chmod 777 /var/www/html/cacti_html/resource/script_server
# chmod 777 /var/www/html/cacti_html/resource/script_queries
# chmod 777 /var/www/html/cacti_html/scripts
# chmod 777 /var/www/html/cacti_html/cache/boost
# chmod 777 /var/www/html/cacti_html/cache/mibcache
# chmod 777 /var/www/html/cacti_html/cache/realtime
# chmod 777 /var/www/html/cacti_html/cache/spikekill

→ ‘Not Writable’ 로 나타나는 각 디렉터리의 권한을 chown 또는 chmod 로 설정합니다.

→ 권한 설정을 재확인하고 ‘Next’로 넘어갑니다.

 

→ Cacti 에 적용 가능한 각종 Device Template 을 체크하고 ‘Next’로 넘어갑니다.

 

10. Cacti 모니터링 설정

→ Cacti 설치가 완료되면 초기 접속 정보(admin / admin)로 로그인합니다.

 

[Console] → [Configuration] → [Settings] → [Poller] 에서 ‘Poller Interval ’, ‘Cron Interval ’을 ‘Every Minute(1 분마다)’ 로 설정하고 ‘Save’를 누릅니다.

 

[Console] → [Device] 에서 나타나는 장치명(Local Linux Machine)을 누릅니다.

 

→ 적용되는 각종 Graph Templates 를 확인하고 ‘Save’를 누릅니다.

 

[Graphs] → [Default Tree] 에 나오는 장치(Local Linux Machine)를 누릅니다.

 

→ ‘Graph Template’ 에서 확인하였던 Memory Usage(메모리 사용량), Load Average(시스템 부하), Logged in Users(사용자수), Processes(프로세스)에 대한 그래프를 확인할 수 있습니다.

 

Category: LINUX

Avatar

About the Author ()