Rocky Linux 및 AlmaLinux에 Cacti를 설치하는 방법


Cacti는 PHP로 작성된 오픈 소스 웹 기반 네트워크 모니터링 및 그래프 도구입니다. RRDtool을 사용하여 데이터 로깅을 위한 프런트 엔드 응용 프로그램으로 설계되었습니다. Cacti는 SNMP 프로토콜을 사용하여 라우터, 서버 및 스위치와 같은 장치를 모니터링합니다.

네트워크 대역폭 사용률 및 CPU 부하와 같은 정보를 그래프 형식으로 표시합니다. IT 인프라가 원하는 대로 작동하는지 모니터링하고 확인하는 데 필수적입니다.

[ 당신은 또한 좋아할 수도 있습니다: Linux에서 네트워크 사용을 분석하기 위한 16가지 유용한 대역폭 모니터링 도구 ]

이 가이드에서는 Rocky Linux 및 AlmaLinux에 Cacti 모니터링 도구를 설치하는 방법을 배웁니다.

1단계: Apache 웹 서버 설치

Cacti는 웹 기반 도구이므로 Cacti가 실행될 웹 서버를 설정해야 합니다. 다음 명령을 실행하여 Apache 웹 서버를 설치합니다.

$ sudo dnf install httpd -y

다음으로 다음 명령을 사용하여 웹 서버를 시작하고 활성화합니다.

$ sudo systemctl start httpd
$ sudo systemctl enable --now httpd

2단계: MariaDB 데이터베이스 서버 설치

선인장은 수집한 데이터를 저장하기 위해 자체 데이터베이스가 필요합니다. Mariadb를 데이터베이스 서버로 설치하고 사용할 것입니다.

$ sudo dnf install -y mariadb-server mariadb

그런 다음 그림과 같이 부팅 시 mariadb를 시작하고 활성화합니다.

$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

3단계: PHP 및 PHP 확장 설치

Cacti는 PHP로 작성되었으므로 PHP와 필수 PHP 종속성을 설치해야 합니다. 먼저 Remi 저장소를 추가합니다.

$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpmmi 

그런 다음 PHP 설치를 위해 DNF 모듈을 활성화합니다.

$ sudo dnf module reset php
$ sudo dnf module enable php:remi-7.4

그런 다음 아래 명령을 사용하여 PHP와 필수 확장을 설치합니다.

$ sudo dnf install @php
$ sudo dnf install -y php php-{mysqlnd,curl,gd,intl,pear,recode,ldap,xmlrpc,snmp,mbstring,gettext,gmp,json,xml,common}

다음 명령을 실행하여 php-fpm 서비스를 활성화합니다.

$ sudo systemctl enable --now php-fpm

4단계: SNMP 및 RRD 도구 설치

이제 시스템 메트릭을 수집하고 분석하는 데 필요한 SNMP 및 RRDtool을 설치합니다.

$ sudo dnf install -y net-snmp net-snmp-utils net-snmp-libs rrdtool

다음 명령으로 snmpd를 시작하고 활성화합니다.

$ sudo systemctl start snmpd
$ sudo systemctl enable snmpd

5단계: 선인장 데이터베이스 만들기

이제 선인장에 대한 데이터베이스와 사용자를 생성하고 선인장 사용자에게 필요한 모든 권한을 부여해야 합니다.

$ mysql -u root -p

MariaDB [(none)]> CREATE DATABASE cactidb;
MariaDB [(none)]> GRANT ALL ON cactidb.* TO [email protected] IDENTIFIED  BY 'passwd123';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

그런 다음 mysql 테스트 데이터 timezone.sql 파일을 mysql 데이터베이스로 가져옵니다.

$ mysql -u root -p mysql < /usr/share/mariadb/mysql_test_data_timezone.sql

그런 다음 mysql 데이터베이스에 연결하고 mysql.time zone 이름 테이블에 대한 선인장 사용자 액세스를 제공합니다.

MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO [email protected];
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

최적의 성능을 위해서는 그림과 같이 [ mysqld ] 섹션 아래의 mariadb-server.cnf 파일에 다음 구성을 추가해야 합니다.

$ sudo vi /etc/my.cnf.d/mariadb-server.cnf

다음 구성을 붙여넣습니다.

collation-server=utf8mb4_unicode_ci
character-set-server=utf8mb4
max_heap_table_size=32M
tmp_table_size=32M
join_buffer_size=64M
# 25% Of Total System Memory
innodb_buffer_pool_size=1GB
# pool_size/128 for less than 1GB of memory
innodb_buffer_pool_instances=10
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_io_capacity=5000
innodb_file_format=Barracuda
innodb_large_prefix=1
innodb_io_capacity_max=10000

변경 사항을 저장하고 종료합니다.

6단계: 선인장 모니터링 도구 설치 및 구성

Cacti 패키지는 EPEL(Enterprise Linux용 추가 패키지) 저장소에서 사용할 수 있습니다.

$ sudo dnf install epel-release -y

다음으로 다음과 같이 Cacti 모니터링 도구를 설치합니다.

$ sudo dnf install cacti -y

다음으로 다음과 같이 선인장 설치를 확인합니다.

$ rpm -qi cacti

그런 다음 기본 선인장 데이터베이스 테이블을 위에서 만든 mariadb 선인장 데이터베이스로 가져옵니다. "그러나 그 전에 다음 명령을 실행하여 기본 선인장 데이터베이스의 경로를 결정하십시오.

$ rpm -ql cacti | grep cacti.sql

다음으로 다음 명령을 사용하여 기본 데이터베이스 테이블을 가져옵니다.

$ mysql -u root -p cactidb < /usr/share/doc/cacti/cacti.sql

다음으로, 다음 데이터베이스 세부 정보를 포함하도록 선인장 구성 파일을 수정합니다.

$ sudo vim /usr/share/cacti/include/config.php

이전에 생성한 것을 반영하도록 데이터베이스 이름, 사용자 이름 및 암호를 수정합니다.

다음으로 php.ini 파일에서 시간대를 설정합니다. 또한 다음과 같이 반영하도록 아래 매개변수를 수정합니다.

date.timezone = Africa/Nairobi
memory_limit = 512M
max_execution_style = 60

그런 다음 다음과 같이 /etc/cron.d/cactus 파일을 편집하여 Cacti용 cron을 설정합니다.

$ sudo vim /etc/cron.d/cacti

Cacti가 5분마다 데이터를 폴링하도록 하려면 다음 줄의 주석 처리를 제거합니다.

*/5 * * * *   apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

구성 파일을 저장하고 종료합니다.

그런 다음 선인장에 원격으로 액세스할 수 있도록 Apache의 구성 파일을 수정합니다.

$ sudo vim /etc/httpd/conf.d/cacti.conf

파일에서 다음 줄을 변경합니다.

    "
  1. 호스트 localhost 필요를 모두 허용됨으로 수정합니다.
  2. localhost에서 허용을 [네트워크 서브넷]에서 허용으로 변경합니다.
  3. 자신의 네트워크 서브넷을 지정합니다. "우리의 경우 서브넷은 192.168.122.1/24입니다.
  4. 변경 사항을 적용하려면 Apache 및 php-fpm 서비스를 다시 시작하십시오.

    $ sudo systemctl restart httpd
    $ sudo systemctl restart php-fpm
    

    Cacti를 마지막으로 설정하기 전에 다음과 같이 방화벽에서 HTTP 서비스를 허용하십시오.

    $ sudo firewall-cmd --permanent --add-service=http
    $ sudo firewall-cmd --reload
    

    8단계: 브라우저를 통해 Cacti 설치 프로그램 실행

    Cacti 설정을 완료하려면 다음과 같이 서버의 IP를 방문하십시오.

    http://server-ip/cacti
    

    아래와 같은 로그인 페이지가 나타납니다. "표시된 기본 자격 증명으로 로그인합니다.

    Username: admin
    Password: admin
    

    계속하려면 '로그인'을 클릭하세요.

    기본 선인장 관리자 로그인 비밀번호를 설정하라는 메시지가 표시됩니다.

    다음으로 GPL 라이선스 계약에 동의하고 '시작'을 클릭합니다.

    Cacti는 필요한 PHP 모듈이 설치되고 관련 데이터베이스 설정이 설정되었는지 확인하기 위해 사전 설치 테스트를 실행합니다. 모든 것이 올바르게 구성되면 설치를 계속할 수 있습니다. 계속하려면 다음을 클릭하십시오.

    그런 다음 설치 유형으로 '새 주 서버'를 선택하고 데이터베이스 연결 매개변수가 올바른지 확인하십시오.

    다음 단계에서는 디렉터리 문제를 확인하고 적절한 권한이 있는지 확인합니다. 모든 것이 정상이면 '다음'을 클릭하십시오. 그렇지 않으면 '이전'을 클릭하고 문제를 수정하십시오.

    그런 다음 설치 프로그램은 필수 패키지의 모든 바이너리 경로가 설치되었는지 확인합니다.

    다음으로 데이터 입력 방법을 검증합니다. 이것은 데이터 입력 방법을 화이트리스트에 추가하기 위해 Cacti를 설치한 후 취해야 할 몇 가지 조치를 제공합니다. 지침을 읽은 후 '나는 이 진술을 읽었습니다' 확인란을 선택하십시오.

    그런 다음 cron 간격을 선택하고 그림과 같이 네트워크 서브넷을 입력하십시오. 그런 다음 '다음'을 클릭하십시오.

    Cacti에는 Linux 및 Windows 컴퓨터를 비롯한 다양한 네트워크 장치를 모니터링하고 그래프로 표시할 수 있는 템플릿이 함께 제공됩니다. 필요한 모든 템플릿을 얻을 수 있도록 모든 옵션이 확인되었습니다. 만족스러우면 '다음'을 클릭합니다.

    그런 다음 설치 프로그램은 데이터베이스/서버 데이터 정렬이 UTF8과 호환되는지 확인합니다. '다음' 버튼을 클릭합니다.

    설치 프로세스를 시작하려면 '설치 확인' 확인란을 클릭한 다음 '설치' 버튼을 클릭합니다.

    필요한 패키지가 설치되면 '시작하기' 버튼을 클릭합니다.

    이제 Cacti 대시보드가 다음과 같이 표시됩니다.

    기본적으로 선인장은 선인장이 설치된 로컬 컴퓨터에 대한 리소스 사용률 그래프를 만듭니다. 그래프를 보려면 그래프 -> 기본 트리 -> 로컬 -> 장치 선택을 통해 이동합니다.

    이것이 Rocky Linux 및 AlmaLinux에 Cacti를 설치하는 방법입니다.