웹사이트 검색

CentOS 8에 Cacti 모니터링 서버를 설치하는 방법


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

  • 센트OS 8
  • 센트OS 7

이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. LAMP 서버 설치
  4. MariaDB 데이터베이스 구성
  5. Cacti 설치 및 구성
  6. Cacti용 Apache 구성
  7. 방화벽 및 SELinux 구성\n
  8. Cacti 웹 인터페이스 액세스
  9. 결론

Cacti는 강력한 무료 오픈 소스 웹 기반 네트워크 모니터링 및 그래프 도구입니다. 시스템 성능, CPU 부하 및 네트워크 대역폭 사용률을 그래프 형식으로 모니터링하는 데 사용됩니다. 미리 결정된 간격으로 서비스를 폴링하고 결과 데이터를 그래프로 표시할 수 있습니다. PHP로 작성된 RRDTool의 완전한 프론트엔드이며 필요한 모든 정보를 저장하기 위해 MySQL 데이터베이스를 사용합니다.

이 튜토리얼에서는 CentOS 8에 Cacti 모니터링 도구를 설치하는 방법을 설명합니다.

전제 조건

  • 최소 2GB RAM이 장착된 CentOS 8을 실행하는 서버.\n
  • 루트 암호는 서버에 구성됩니다.\n

시작하기

먼저 시스템 패키지를 최신 버전으로 업데이트하는 것이 좋습니다. 다음 명령으로 업데이트할 수 있습니다.

dnf update -y

모든 패키지가 업데이트되면 다음 명령을 사용하여 Cacti에 필요한 다른 종속성을 설치합니다.

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

모든 종속성을 설치한 후 SNMP 서비스를 시작하고 다음 명령을 사용하여 부팅 시 시작되도록 활성화합니다.

systemctl start snmpd
systemctl enable snmpd

완료되면 다음 단계로 진행할 수 있습니다.

램프 서버 설치

다음으로 Apache 웹 서버, MariaDB 데이터베이스 서버, PHP 및 기타 필요한 PHP 확장을 시스템에 설치해야 합니다. 다음 명령으로 모두 설치할 수 있습니다.

dnf install httpd mariadb-server php php-xml php-session php-sockets php-ldap php-gd php-json php-mysqlnd php-gmp php-mbstring php-posix php-snmp php-intl -y

모든 패키지가 설치되면 HTTP 및 MariaDB 서비스를 시작하고 다음 명령을 사용하여 부팅 시 시작할 수 있도록 합니다.

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

다음으로 php.ini 파일을 편집하고 몇 가지 사항을 변경해야 합니다.

nano /etc/php.ini
date.timezone = Asia/Kolkata
memory_limit = 512M
max_execution_style = 60

완료되면 다음 단계로 진행할 수 있습니다.

MariaDB 데이터베이스 구성

다음으로 Cacti에 대한 데이터베이스와 사용자를 생성해야 합니다. 먼저 다음 명령을 사용하여 MariaDB 셸에 로그인합니다.

mysql

로그인하면 다음 명령을 사용하여 Cacti에 대한 데이터베이스와 사용자를 만듭니다.

MariaDB [(none)]> create database cactidb;
MariaDB [(none)]> GRANT ALL ON cactidb.* TO IDENTIFIED BY 'password';

그런 다음 권한을 플러시하고 다음 명령을 사용하여 MariaDB 셸을 종료합니다.

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

다음으로 MariaDB 구성 파일을 편집하고 일부 설정을 조정해야 합니다. /etc/my.cnf.d/mariadb-server.cnf 파일을 편집하면 됩니다.

nano /etc/my.cnf.d/mariadb-server.cnf

[mysqld] 섹션 안에 다음 줄을 추가합니다.

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

완료되면 파일을 저장하고 닫은 다음 MariaDB 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart mariadb

다음으로 다음 명령을 사용하여 mysql_test_data_timezone.sql을 mysql 데이터베이스로 가져옵니다.

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

다음으로 MySQL에 로그인하고 cacti 사용자에게 mysql.time_zone_name 테이블에 액세스할 수 있는 권한을 부여합니다.

mysql

로그인한 후 다음 명령을 실행하여 액세스 권한을 부여합니다.

MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO ;

그런 다음 권한을 플러시하고 다음 명령을 사용하여 MariaDB 셸을 종료합니다.

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

완료되면 다음 단계로 진행할 수 있습니다.

선인장 설치 및 구성

기본적으로 Cacti는 CentOS 8 기본 리포지토리에서 사용할 수 없습니다. 따라서 시스템에 EPEL 저장소를 추가해야 합니다.

다음 명령으로 설치할 수 있습니다.

dnf install epel-release -y

리포지토리가 설치되면 다음 명령을 사용하여 Cacti를 설치합니다.

dnf install cacti -y

Cacti를 설치한 후 다음 명령으로 Cacti 설치를 확인합니다.

rpm -qi cacti

다음과 같은 결과가 표시되어야 합니다.

Name        : cacti
Version     : 1.2.14
Release     : 1.el8
Architecture: noarch
Install Date: Wednesday 07 October 2020 01:04:02 AM EDT
Group       : Unspecified
Size        : 56217780
License     : GPLv2+
Signature   : RSA/SHA256, Thursday 06 August 2020 05:06:22 AM EDT, Key ID 21ea45ab2f86d6a1
Source RPM  : cacti-1.2.14-1.el8.src.rpm
Build Date  : Thursday 06 August 2020 04:54:10 AM EDT
Build Host  : buildvm-a64-27.iad2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : https://www.cacti.net/
Bug URL     : https://bugz.fedoraproject.org/cacti
Summary     : An rrd based graphing tool
Description :
Cacti is a complete frontend to RRDTool. It stores all of the
necessary information to create graphs and populate them with
data in a MySQL database. The frontend is completely PHP
driven.

다음으로 다음 명령을 사용하여 Cacti 데이터를 Cacti 데이터베이스로 가져옵니다.

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

다음으로 Cacti 구성 파일을 편집하고 데이터베이스 설정을 정의합니다.

nano /usr/share/cacti/include/config.php

데이터베이스와 일치하는 다음 줄을 변경합니다.

$database_type     = 'mysql';
$database_default  = 'cactidb';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'password';
$database_port     = '3306';
$database_retries  = 5;
$database_ssl      = false;

완료되면 파일을 저장하고 닫은 다음 Cacti용 Cron 파일을 만듭니다.

nano /etc/cron.d/cacti

다음 줄을 추가합니다.

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

완료되면 파일을 저장하고 닫습니다.

완료되면 다음 단계로 진행할 수 있습니다.

Cacti용 Apache 구성

다음으로 Cacti용 Apache 가상 호스트 구성 파일을 만들어야 합니다. 다음 명령으로 만들 수 있습니다.

nano /etc/httpd/conf.d/cacti.conf

다음 줄을 찾으십시오.

Alias /cacti    /usr/share/cacti

<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
               	# httpd 2.4
                Require host localhost
        </IfModule>
        <IfModule !mod_authz_core.c>
               	# httpd 2.2
                Order deny,allow
                Deny from all
                Allow from localhost
        </IfModule>
</Directory>

그리고 다음 줄로 바꿉니다.

Alias /cacti    /usr/share/cacti

<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
               	# httpd 2.4
                Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
               	# httpd 2.2
                Order deny,allow
                Deny from all
                Allow from all
        </IfModule>
</Directory>

완료되면 파일을 저장하고 닫은 다음 Apache 및 PHP-FPM 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart httpd
systemctl restart php-fpm

다음 명령을 사용하여 Apache의 상태를 확인할 수도 있습니다.

systemctl status httpd

다음과 같은 결과가 표시되어야 합니다.

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2020-10-07 01:10:35 EDT; 58s ago
     Docs: man:httpd.service(8)
 Main PID: 5159 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 213 (limit: 12523)
   Memory: 28.7M
   CGroup: /system.slice/httpd.service
           ??5159 /usr/sbin/httpd -DFOREGROUND
           ??5161 /usr/sbin/httpd -DFOREGROUND
           ??5162 /usr/sbin/httpd -DFOREGROUND
           ??5163 /usr/sbin/httpd -DFOREGROUND
           ??5164 /usr/sbin/httpd -DFOREGROUND

Oct 07 01:10:35 centos8 systemd[1]: Stopped The Apache HTTP Server.
Oct 07 01:10:35 centos8 systemd[1]: Starting The Apache HTTP Server...
Oct 07 01:10:35 centos8 httpd[5159]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:45>
Oct 07 01:10:35 centos8 systemd[1]: Started The Apache HTTP Server.
Oct 07 01:10:35 centos8 httpd[5159]: Server configured, listening on: port 80

이 시점에서 Apache 웹 서버는 Cacti를 제공하도록 구성됩니다. 이제 다음 단계를 진행할 수 있습니다.

방화벽 및 SELinux 구성

다음으로 방화벽을 통해 http 및 https 서비스를 허용해야 합니다. 다음 명령으로 허용할 수 있습니다.

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

다음으로 시스템에서 SELinux를 비활성화해야 합니다.

/etc/selinux/config 파일을 편집하여 SELinux를 비활성화할 수 있습니다.

nano /etc/selinux/config

다음 줄을 찾으십시오.

SELINUX=enforcing

그리고 다음 줄로 바꿉니다.

SELINUX=permissive

파일을 저장하고 닫은 다음 시스템을 재부팅하여 변경 사항을 적용하십시오.

Cacti 웹 인터페이스에 액세스

이제 웹 브라우저를 열고 URL http://your-server-ip/cacti를 사용하여 Cacti 웹 인터페이스에 액세스하십시오. Cacti 로그인 페이지로 리디렉션됩니다.

기본 사용자 이름과 비밀번호를 admin/admin으로 입력한 다음 로그인 버튼을 클릭합니다. Cacti 비밀번호 변경 화면이 표시됩니다.

기본 비밀번호와 새 비밀번호를 입력하고 저장 버튼을 클릭합니다. Cacti 라이선스 계약 페이지가 표시됩니다.

라이선스 계약에 동의하고 시작 버튼을 클릭합니다. 사전 설치 확인 페이지가 표시되어야 합니다.

모든 패키지가 설치되었는지 확인하고 다음 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

설치 유형을 선택하고 다음 버튼을 클릭합니다. 디렉터리 권한 확인 페이지가 표시되어야 합니다.

다음 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

다음 버튼을 클릭합니다. 입력 유효성 검사 페이지가 표시되어야 합니다.

체크박스에 체크하고 다음 버튼을 클릭합니다. 프로필 페이지가 표시됩니다.

네트워크 범위를 제공하고 다음 버튼을 클릭합니다. 템플릿 설정 페이지가 표시됩니다.

필요한 템플릿을 선택하고 다음 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

다음으로 터미널을 열고 MySQL 셸에 로그인한 후 다음 명령을 실행하여 문자 집합을 변경합니다.

MariaDB [(none)]> ALTER DATABASE cactidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

그런 다음 Cacti 설치 마법사로 돌아가서 다음 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

설치를 확인하고 설치 버튼을 클릭합니다. 설치가 완료되면 다음 페이지가 표시됩니다.

시작하기 버튼을 클릭합니다. 다음 페이지에서 Cacti 대시보드를 볼 수 있습니다.

그래프 => 로컬 Linux 머신을 클릭합니다. 다음 페이지에서 로컬 시스템에 대한 정보를 볼 수 있습니다.

결론

축하합니다! Ubuntu 20.04에 Cacti 네트워크 모니터링 도구를 성공적으로 설치하고 구성했습니다. 이제 클라이언트 시스템에 Cacti 에이전트를 설치하고 Cacti 서버에 추가하고 모니터링을 시작할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.