Cacti는 오픈 소스, 산업-표준 데이터 로깅 도구 RRDtool에 대해 프런트-엔드 응용 프로그램으로 설계된 오픈-소스, 웹-기반 네트워크 모니터링과 그래프 도구입니다. Cacti는 사용자에게 미리 결정된 간격으로 서비스를 폴링하고 결과 데이터를 그래프로 표시하는 것을 허용합니다. 그것은 일반적으로 CPU 부하와 네트워크 대역폭 사용률과 같은 메트릭의 시간 급수 데이터를 그래프로 표시하기 위해 사용됩니다. 공통적인 사용법은 Simple Network Management Protocol (SNMP)를 통해 네트워크 스위치 또는 라우터 인터페이스를 폴링함으로써 네트워크 트래픽을 모니터링하는 것입니다.
프런트 엔드는 각각 자체의 그래프 모음과 함께 여러 사용자를 처리할 수 있으므로, 웹 호스팅 제공업체 (특히 전용 서버, 가상 사설 서버와 코로케이션 제공업체)에 의해 고객을 위한 대역폭 통계를 표시하기 위해 때때로 사용합니다. 그것은 데이터 수집 자체를 구성하기 위해 사용할 수 있으며, RRDtool을 임의의 수동 구성없이 특정 설정을 모니터링하는 것을 허용합니다. Cacti는 쉘 스크립트와 실행 파일을 통해 임의의 소스를 모니터링하도록 확장될 수 있습니다.
Cacti는 소규모 설치에 적합한 PHP 스크립트, "cmd.php" 또는 수천 개의 호스트로 확장할 수 있는 C-기반 폴러, "Spine" (이전 Cactid)의 두 가지 백-엔드 중 하나를 사용할 수 있습니다.
Installation
- sudo apt install cacti cacti-spine php5.6-fpm
설치 시에 데이터베이스 접근 오류가 생깁니다.
수동으로 데이터베이스와 테이블을 만들어 줍니다.
- mysql -u root -p
MariaDB [(none)]> create database cacti;
MariaDB [(none)]> exit;
다른 터미널을 열어서 테이블을 만듭니다.
- mysql -u root -p cacti < /usr/share/cacti/conf_templates/cacti.sql
ERROR 1071 (42000) at line 1918: Specified key was too long; max key length is 1000 bytes
기존에 만들었던 데이터베이스를 없애고, 아래와 같이 새롭게 만듭니다.
- mysql -u root -p
MariaDB [(none)]> drop database cacti;
MariaDB [(none)]> create database cacti DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
다른 터미널을 열어서 테이블을 만듭니다.
- mysql -u root -p cacti < /usr/share/cacti/conf_templates/cacti.sql
오류 없이 테이블이 만들어졌다면, cacti에 접근할 사용자와 암호를 지정해 줍니다.
- mysql -u root -p
MariaDB [(none)]> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'cactipassword';
MariaDB [(none)]> flush privileges;
Configuration
Cacti configuration
설치 과정에서 만들어준 데이터베이스와 사용자, 암호를 /usr/share/cacti/site/include/config.php에 씁니다.
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysqli";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cactipassword";
$database_port = "";
$database_ssl = false;
Cron configuration
크론에서 정기적으로 업데이트를 합니다. /etc/crontab에 기록합니다.
*/5 * * * * cacti php /usr/share/cacti/site/poller.php > /dev/null 2>&1
Nginx configuration
/etc/nginx/site-available/cacti에 다음 내용을 적습니다.
server {
listen 4000;
index index.php index.html;
location / {
try_files $uri $uri/ index.php /cacti;
}
location /cacti {
alias /usr/share/cacti/site;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
}
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
}
}
Ufw
Nginx에서 4000 포트를 통해서 접근하도록 설정했기 때문에 방화벽에서 4000포트를 열어줍니다.
- sudo ufw allow 4000
Service restart
- cd /etc/nginx/site-enabled
- sudo ln -sf /etc/nginx/site-available/cacti .
- sudo systemctl restart nginx
Web configuration
이제 모든 준비가 끝났습니다. http://localhost:4000/cacti 로 접근을 합니다.
Welcome
내용을 읽고 Next를 누릅니다.
Installation type
기본값(New install)을 두고 Next를 누릅니다. 여기서 include/config.php의 내용이 보입니다. 의도한 바와 같지 않으면 수정을 해야 합니다.
Program check
Cacti 운영에 필요한 프로그램들이 제대로 설치되었는지 확인을 합니다. 누락된 프로그램이 있으면 설치를 해야 합니다.
시스템에 설치된 SNMP Utility Version, RRDTool Utility Version을 확인하는 과정이 있습니다. 시스템에 확인해 보니 snmp는 5.7.3판이 rrdtool는 1.5.5판이 설치가 되어 있습니다. 파일 /usr/share/cacti/site/utilites.php을 수정해 줍니다.
if (sizeof($out_array) > 0) {
if (preg_match("/^RRDtool 1\.5/", $out_array[0])) {
$rrdtool_version = "rrd-1.5.x";
}else if (preg_match("/^RRDtool 1\.4/./", $out_array[0])) {
$rrdtool_version = "rrd-1.4.x";
}else if (preg_match("/^RRDtool 1\.3\./", $out_array[0])) {
$rrdtool_version = "rrd-1.3.x";
}else if (preg_match("/^RRDtool 1\.2\./", $out_array[0])) {
$rrdtool_version = "rrd-1.2.x";
}else if (preg_match("/^RRDtool 1\.0\./", $out_array[0])) {
$rrdtool_version = "rrd-1.0.x";
}
}
설치 후에 수정할 수 있다고 하니, Finish를 누릅니다.
패치를 해도 웹에서 목록이 보이지 않습니다. |
User Login
미리 정해진 사용자와 암호를 입력해 줍니다.
- User: admin
- Password : admin
Forced Password Change
관리자의 새로운 암호를 설정해 주고, Save를 눌러 줍니다.