1. epel repository 설치

  • centos7의 epel-release 설치 진행
    bash $ yum install -y epel-release

 

2. snmp 설치

  • SNMP와 RRDTool 설치
    $ yum -y install net-snmp net-snmp-utils net-snmp-libs rrdtool

 

3. PHP와 PHP 확장자 설치

  • cacti 설치를 위해서는 PHP v7.2 이상으로 필요
  • Remi 저장소를 사용하여 PHP 7.x를 설치
    $ yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
  • PHP v7.3 설치
    $ yum install -y --enablerepo=remi-php73 php php-xml php-session php-sockets php-ldap php-gd php-gmp php-intl php-mbstring php-mysqlnd php-pdo php-process php-snmp
  • PHP v7.2 설치 (설치 X)
    $ yum install -y --enablerepo=remi-php723 php php-xml php-session php-sockets php-ldap php-gd php-gmp php-intl php-mbstring php-mysqlnd php-pdo php-process php-snmp

 

4. MariaDB 설치

  • Cacti는 설치를 위해 MariaDB v5.6+ 또는 MariaDB v10+가 필요 → OS 리포지토리에서 사용 가능한 MariaDB 패키지(v5.4)는 Cacti의 최소 요구 사항을 충족 X
  • MariaDB 커뮤니티 웹 사이트에서 제공되는 최신 버전의 MariaDB를 설치
    $ cat <<EOF>> /etc/yum.repos.d/mariadb.repo
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.4/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    EOF
  • MariaDB 서버를 설치
    $ yum install -y MariaDB-server MariaDB-client
  • Database Tuning
    • Cacti는 더 나은 성능을 위해 MariaDB 설정을 변경할 것을 권장
    • [mysqld] 섹션에 변수를 추가
      $ vi /etc/my.cnf.d/server.cnf
      collation-server = utf8mb4_unicode_ci
      character-set-server=utf8mb4
      max_heap_table_size = 1024M
      tmp_table_size = 1024M
      join_buffer_size = 3072M
      innodb_file_format = Barracuda
      innodb_large_prefix = 1
      innodb_flush_log_at_timeout = 3
      innodb_buffer_pool_size = 16GB
      innodb_doublewrite = OFF
      innodb_buffer_pool_instances = 64
      # Based on what type for storage you use. The below values are for SSD drives.
      # Change it if Cacti reports issues during the installation
      innodb_read_io_threads = 32
      innodb_write_io_threads = 16
      innodb_io_capacity = 5000
      innodb_io_capacity_max = 10000

 

5. 서비스 시작 과 영구적 설정(Start & Enable)

  • 서비스 시작
    $ systemctl start httpd snmpd mariadb
  • 서비스 재부팅하여도 실행될 수 있도록 하기 위한 영구적 설정
    $ systemctl enable httpd snmpd mariadb

 

6. Database 생성

  • 처음으로 MySQL을 구성하는 경우; MariaDB를 보호하는 방법을 살펴볼 필요 있음
  • Cacti 설치를 위한 데이터베이스 생성 → 비밀번호 없음
    $ mysql -u root -p 
    Enter password:
  • Cacti용 데이터베이스를 생성
    MariaDB [(none)]> create database cacti;
    Query OK, 1 row affected (0.001 sec)
  • 새로 생성된 데이터베이스에 권한을 부여
    MariaDB [(none)]> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactipassword';
    Query OK, 0 rows affected (0.002 sec)
    
    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.001 sec)
      
    MariaDB [(none)]> exit
    Bye
    
  • 새로 생성된 데이터베이스 사용자(cactuuser)는 mysql.time_zone_name 테이블에 액세스 가능 → mysql_test_data_timezone.sql을 mysql 데이터베이스로 가져옴 → 비밀번호 없음
    $ mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
    Enter password:
  • MySQL 로그인 → 비밀번호 없음
    $ mysql -u root -p
    Enter password:
  • cactiuser에게 권한을 부여함
    MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;
    Query OK, 0 rows affected (0.001 sec)
    
    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.001 sec)
    
    MariaDB [(none)]> exit
    Bye
    

 

7. Cacti 설치

  • CentOS/RHEL에서 yum 명령을 사용하여 Cacti 패키지를 설치
    $ yum -y install cacti
  • 기본 데이터베이스를 cacti 데이터베이스로 가져옴
    $ mysql cacti < /usr/share/doc/cacti-*/cacti.sql -u root -p
  • 구성 파일을 편집하여 데이터베이스 유형, 이름, 호스트 이름, 사용자 및 암호 정보를 지정
    $ vi /usr/share/cacti/include/config.php
    ...생략...
    /* make sure these values reflect your actual database/host/user/password */
    $database_type = "mysql";
    $database_default = "cacti";
    $database_hostname = "localhost";
    $database_username = "cactiuser";
    $database_password = "cactipassword";
    $database_port = "3306";
    $database_ssl = false;
  • crontab 파일 수정 → 5분마다 폴링하려면 다음 항목의 주석 처리를 제거
    $ vi /etc/cron.d/cacti
    */5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
  • /etc/php.ini 파일을 편집하여 시간대를 설정 → timezone 업데이트
    $ vi /etc/php.ini
    date.timezone = Asia/Seoul
    memory_limit = 512M
    max_execution_time = 60
  • Apache 구성 파일을 편집 → Require host localhost에서 Require all granted로 수정
    $ vi /etc/httpd/conf.d/cacti.conf
    Alias /cacti    /usr/share/cacti
    <Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
                # httpd 2.4
                Require all granted
                Allow from [설정 IP]
        </IfModule>
        <IfModule !mod_authz_core.c>
                # httpd 2.2
                Order deny,allow
                Deny from all
                Allow from localhost
        </IfModule>
    </Directory>
  • httpd 재실행
    $ systemctl restart httpd

 

8. Cacti 설정

  • cacti 설치를 시작하려면 아래 URL을 방문 → [http://[설치IP]/cacti/install/install.php]
  • Cacti에 로그인하여 Cacti 설치를 설정
    1. Username: admin
    2. Password: admin
  • cacti 설정에 로그인
  • cacti를 설정하기 전에 cacti 관리자의 비밀번호를 변경
    1. 기존 비밀번호 : admin
    2. 변경 비밀번호 : hello1234
  • 사용권 계약에 동의하고 다음을 클릭하여 계속
  • Cacti는 Cacti 설치를 위한 사전 설치 검사를 수행
    1. 설치 마법사가 보고하는 경우 문제를 수정해야 함
    2. 페이지 우측 하단에 위치한 Next 버튼을 클릭하여 다음 단계로 이동
  • 새 primary 서버 또는 새 설치를 선택하고 다음을 클릭
  • Cacti 설치 디렉토리에 있을 수 있는 권한 문제를 확인 -> selniux 0 설정 필요
  • Cacti의 필수인 패키지가 누락된 경우 표시
  • White Protection에 대한 방법 공지
  • 5분마다 폴링하도록 cron을 구성했는지 기본 Profile에서 확인
  • 모든 템플릿을 선택하고 마침을 클릭
  • 최종 테스트 요약 페이지
  • 설치 확인을 선택하고 설치를 눌러 Cacti 설치를 시작
  • 설치 확인 완료

 

9. Cacti 접속

  • cacti에 로그인하려면 사용자 이름과 비밀번호를 입력
    1. 접속 URL : [http://[서버 ip]/cacti/]
    2. Username : admin
    3. Password : hello1234
  • Cacti Dashboard

※ 참고 URL : https://www.itzgeek.com/how-tos/linux/centos-how-tos/monitor-network-using-cacti-with-centos-7-rhel-7.html#Conclusion

'Mornitoring(모니터링)' 카테고리의 다른 글

smokeping (Centos7 설치 방법)  (0) 2022.06.23

+ Recent posts