Cacti를 사용하면서 최근에 알게 된 기능이었다.

사실 설치 후 별다른 업데이트가 없었는데 누구나 사용하다보면 알 수 있는 정보일 것이다.

Cacti에서 graphs를 보면 필자가 설치한 서버는 임시로 운용되다가

장비와 연결을 해제하여 트래픽이 흐르지 않았다.



사용자 삽입 이미지

위와 같이 해당 장비의 graph에서 붉은색 박스로 체크 된 돋보기를 눌러준다.




사용자 삽입 이미지

이후에 위와 같은 그림으로 변경되며 마우스로 그래프에 대고 내가 필요한 곳만큼만

마우스 좌측버튼을 누른채 끈다. (즉, 드래그 하란 말이다.)





사용자 삽입 이미지

위와 같은 그림에서 붉은색 박스로 체크 된 것처럼 아래를 향하는 화살표를 눌러주게되면

엑셀에서 읽을 수 있는 csv 파일로 저장이 되며, 필자의 경우 poller를 5분마다 돌며주며

그 때마다 input과 output의 데이터를 확인 할 수 있었다.

운용하는 망에 따라 다르겠지만, 상당히 유용하게 사용 할 수 있을것으로 보인다.
블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,






Cacti 서버를 설치하고 시범 운영을 하던 필자는 1G나 10G 트래픽을 그래프로 보려 하였으나

MRTG가 설치된 서버와 그래프의 모양은 비슷하나 1G 이상의 데이터가 나오지 않는 어려움을 겪었다.

물론 1G의 경우 필자가 있는 곳에서 운영되는 MRTG는 1G이상의 트래픽이 잘 나온 것에 비해

Cacti 서버는 이 트래픽이 잘 나오지 않아 애를 먹었다.



결국 외국 포럼을 검색한 결과 간단하게 하나의 옵션만 교체해 주면 이 문제를 해결 할 수 있었다.



Management 에서 Data Sources를 선택 한 후에 Output Type ID라는 옵션이 있는 곳에서

In/Out Bits (64-bit Counters)로 변경 한 후에 1G 이상의 트래픽 역시 제대로 볼 수 있었다.



아래 스샷은 이후 1G 트래픽이 흐르는 인터페이스를 보여준 것이다.





필자의 경우 Cacti 서버를 외부에 보여야 하기 때문에 현재 0.9.6j 버전의 Cacti로 설치하였다.


블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





처음에 외부에서 인증 그래프를 보기 위해서 내심 고민을 하고 있었다.

소스를 처음부터 손대기에는 실력부족과 시간이 너무 많이 걸릴 것 같아서 Cacti 홈페이지를 검색하다가

Cacti-0.8.7 이전 버전은 인증 없이 접근이 가능하지만, Cacti-0.8.7 이상의 버전은 인증 없이 접근이 불가능 하게

패치를 한 문구를 확인 할 수 있었다.




그래서 내가 근무하는 곳에서는 Cacti-0.8.6j로 Cacti만 재설치하여 아래 스샷과 같이 그래프를 볼 수 있었다.



현재 테스트 서버로 웹 방화벽과 snmp 포트를 열어 둔 상태이며, 4대의 장비의 정보를 긁어와서

살아있는 인터페이스 모두를 보이게 설정을 해 놓았다.



외부에서 인증 없이 접근하는 방법으로 고민하지 말고, Cacti-0.8.6 버전을 설치한다.

보안을 생각한다면 Cacti-0.8.7 이후의 버전을 설치하도록 한다.


블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





Cacti에 Cisco 장비가 아닌 Force10 장비를 추가로 등록하고, 등록 된 장비의 인터페이스의 트래픽을

그래프로 그리는 과정에 대해서 설명을 할 예정이다.

필자도 서버를 막 설치하며, 개인적으로 공부를 하는 중간에 설명하는 것이기 때문에 부족한 부분이 많으리라 생각된다.

하지만 일단 그래프까지 설정을 완료하였으니 그것에 만족하며, 등록하는 방법에 대해 정리해 보도록 하겠다.



STEP 1.

우선 좌측 상단에 Concole 버튼을 누른 후 Devices를 클릭하면 아래와 같은 화면을 볼 수 있다.


여기에서 붉은색 상자로 표시 한 부분의 Add를 클릭한다.

그러면 장비를 추가 할 수 있는 화면으로 바뀌게 된다.


Description에 추가할 장비 이름을 입력한다.

Hostname에 hostname이나 IP 주소를 입력한다. (필자의 경우 IP 주소를 입력 하였다.)

Host Template 의 경우 None이 기본으로 되어 있으며, Cisco Router의 경우 Cisco Router를 체크하면 되며
필자의 경우에는 Force10 장비를 추가하기 때문에 Generic SNMP-enabled Host라고 체크하였다.
(Cisco Router로 체크해도 그래프 생성이 되었으며, Generic SNMP-enabled Host로 체크해도 되었다.)

SNMP Options에서 Version2로 체크 한다.

SNMP Community는 Localhost의 경우 public 이었기 때문에 public으로 적었을 뿐 추가 할 장비의 Community와
동일하게 맞춰준다. (필자의 경우 다르게 입력을 하였다.)




마지막으로 하단에 있는 create 버튼을 클릭하면 생성되게 된다.



위와 같이 장비가 등록 된 것을 확인 할 수 있다.



STEP 2.

좌측 상단에 Create에 보면 New Graphs를 클릭하면 Host를 선택하는 칸이 있다.

여기에서 내가 설정하고 싶은 장비를 선택한다.


장비의 인터페이스가 나오게 된다.

그러면 그래프를 추가 할 인터페이스의 우측 체크 박스를 이용하여 체크를 해 준 후 create를 해 주면 장비에서

내가 필요로 하는 인터페이스가 추가 된다.





체크 박스에서 체크 한 후 create를 눌러 추가 한 경우에는 아래 스샷과 같이 체크박스가 사라진 후

회색으로 글씨가 변경 되는 것을 확인 할 수 있다.





STEP 3.

올바르게 설정을 한 것 같은데 graphs를 보면 엑박을 띄우게 될 것이다.

필자도 이것 때문에 고민을 많이 했었다.

내가 알아낸 방법으로는 Data Sources 부분에 Maximum Value 값이 기본적으로 앞에 = 문자열을 포함하였다.

붉은 상자에 표시 된 부분처럼 = 4294967295 와 같이 된 부분에 =를 제거 하고 4294967295 숫자만 입력하면 되었다.

rrd 파일을 생성하는 과정에서 입력 서식이 틀린것으로 예상된다.

자세한 소스코드까지는 필자도 아직 확인하지 못한 상태이다.





STEP 4.

상단 좌측에 있는 graphs 버튼을 클릭하고 데몬이 5분 간격으로 실행되게 설정 해 두었으므로..

시간을두고 확인하면 조금씩 그래프가 그려지는 것을 확인 할 수 있다.






STEP 5.

장비에서 긁어온 정보 그대로 그래프로 표시해 주기 때문에 그래프 이름이 모두 같은 것을 확인 할 수 있다.

그래서 필자가 설정을 확인해보니 Management에 있는 Graph Management를 선택 한다.


모두 같은 이름으로 되어있고, 그래프를 볼 때 어떤 인터페이스인지 확인은 가능하겠지만 보기 불편하다.

이중에 변경할 인터페이스를 클릭한다.


아래 스샷과 같은 페이지를 띄우며 붉은색 상자로 표시 한 부분에 이름을 수정하면 그래프의 이름이 변경되게 된다.

|host_description| 이라고 된 부분은 장비의 이름을 불러오는 것이므로 필자처럼 넣어도 되고,

|host_description| 부분 없이 관리자가 넣고 싶은 이름을 넣어도 된다.



아래 스샷과 같이 붉은 상자부분의 인터페이스를 표시하는 부분이 변경 된 것을 확인 할 수 있다.

블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,





STEP 1.

좌측 상단의 New Graphs를 클릭하고 우측 체크박스를 모두 체크하고 create 버튼을 클릭하여 그래프를 생성한다.


create를 누르면 아래 그림과 같이 변경 된 화면을 볼 수 있다.


아래 스샷처럼 Data Sources를 클릭하면 생성한 내용을 볼 수 있다.






STEP 2.

net-snmp와 RRDTool의 버전을 선택한다.

아래 스샷처럼 Confgiuration 에서 Settings를 클릭하면 아래와 같은 내용을 볼 수 있다.

net-snmp를 5.x 버전으로 RRDTool을 1.2.x 버전으로 체크 해 준후 화면 하단에 있는 save를 클릭하여 저장한다.





STEP 3.

contab을 이용하여 5분마다 그래프를 생성하도록 crontab에 poller.php 스크립트를 추가한다.

[root@Cacti cacti-0.8.7c]# crontab -e
*/5 * * * * /usr/local/server/php/bin/php /download/cacti-0.8.7c/poller.php > /dev/null 2>&1


상단의 graphs 버튼을 클릭하여 아래와 같은 정보를 그래프로 볼 수 있다.

블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,

Cacti 세팅

Cacti/Cacti 설치 2009. 2. 17. 10:35






위 스샷은 Cacti를 설치 한 후 웹서버에서 Cacti를 구동한 첫 페이지 이다.





STEP 1.

next를 클릭하면 RRDTool의 실행파일 과 php 실행 파일을 입력할 것이다.


New Install 상태에서 next를 클릭한다.




위와 같은 화면이 뜨면 RRDTool 경로와 PHP 경로를 올바른 경로로 바꿔준다.

필자의 경우 RRDTool Binary Path를 /usr/local/server/rrdtool/bin/rrdtool로

PHP Binary Path를 /usr/local/server/php/bin/php로 변경 하였다.





STEP 2.

user name과 password를 입력하여 cacti를 실행시켜보도록 하겠다.


위 그림과 같이 로그인 패이지에서 admin 유저와 admin 패스워드를 입력하여 로그인 한 다음에

패스워드를 변경하면 이 후 변경한 패스워드로 접속 할 수 있다.


위 스샷과 같이 패스워드를 변경 하였다.



아래 스샷과 같이 화면이 뜬다면 기본 세팅은 끝이나게 된다.




STEP 3.

Localhost를 등록 해보겠다.

좌측의 Management에 있는 Devices를 클릭 해 본다.


위와 같은 스샷 같이 모니터에 나올 것이다.

이 때 Localhost라고 되어 있는 부분을 클릭한다.





SNMP Options에서 Version 2로 세팅을 한다.

이후 아래와 같은 스샷으로 창이 변경 될 것이다. SNMP Community를 public으로 설정하고 저장한다.





Localhost의 Devices를 클릭하면 웹페이지 상단에 아래와 같은 그림이 뜨면 된다.

블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,

Cacti 설치

Cacti/Cacti 설치 2009. 2. 16. 18:00





cacti는 RRDTool의 데이터베이스를 이용하여 웹에서 시스템 상황을 데이터값으로 저장하고 시간이 흐른 뒤

저장된 데이터를 분석하여 웹상으로 보여주는 모니터링 시스템이다.

cacti는 php를 기반으로 하므로 php가 설치되어 있어야하며, CentOS 설치부터 따라하셨다면 설치가 될 것이다.



STEP 1.

Cacti 다운 받는다.

[root@Cacti download]# pwd
/download
[root@Cacti download]# lftpget http://www.cacti.net/downloads/cacti-0.8.7c.tar.gz


다운 받은 Cacti 파일을 압축을 푼다.

[root@Cacti download]# tar xvfz cacti-0.8.7c.tar.gz                                
..... 생략 ......
cacti-0.8.7c/include/jscalendar/lang/calendar-no.js
cacti-0.8.7c/include/jscalendar/lang/calendar-de.js
cacti-0.8.7c/include/jscalendar/lang/calendar-cs-utf8.js
cacti-0.8.7c/include/jscalendar/lang/calendar-big5-utf8.js
cacti-0.8.7c/include/jscalendar/lang/calendar-zh.js
cacti-0.8.7c/include/jscalendar/lang/calendar-en.js
cacti-0.8.7c/include/jscalendar/lang/calendar-hr-utf8.js
cacti-0.8.7c/include/jscalendar/lang/calendar-sp.js
cacti-0.8.7c/include/jscalendar/lang/calendar-ko-utf8.js
cacti-0.8.7c/include/jscalendar/lang/calendar-hu.js
cacti-0.8.7c/include/jscalendar/lang/calendar-hr.js
cacti-0.8.7c/include/jscalendar/lang/calendar-pl.js
cacti-0.8.7c/include/jscalendar/lang/calendar-jp.js
cacti-0.8.7c/include/jscalendar/lang/calendar-cs-win.js
cacti-0.8.7c/include/jscalendar/lang/calendar-lt-utf8.js
cacti-0.8.7c/include/jscalendar/lang/calendar-el.js
cacti-0.8.7c/include/jscalendar/lang/calendar-sv.js
cacti-0.8.7c/include/jscalendar/lang/calendar-ko.js
cacti-0.8.7c/include/jscalendar/lang/calendar-bg.js
cacti-0.8.7c/include/jscalendar/lang/calendar-he-utf8.js
cacti-0.8.7c/include/jscalendar/lang/calendar-sk.js
cacti-0.8.7c/include/jscalendar/lang/calendar-al.js
cacti-0.8.7c/include/jscalendar/lang/calendar-da.js
cacti-0.8.7c/include/jscalendar/lang/calendar-ro.js
cacti-0.8.7c/include/config.php
cacti-0.8.7c/include/main.css
cacti-0.8.7c/include/global_settings.php
cacti-0.8.7c/include/layout.js
cacti-0.8.7c/include/global_constants.php
cacti-0.8.7c/include/zoom.js
cacti-0.8.7c/include/global_arrays.php
cacti-0.8.7c/include/top_header.php
cacti-0.8.7c/include/bottom_footer.php
cacti-0.8.7c/include/global.php
cacti-0.8.7c/rra/
cacti-0.8.7c/rra/.placeholder
cacti-0.8.7c/graphs_new.php
cacti-0.8.7c/scripts/
cacti-0.8.7c/scripts/ss_sql.php
cacti-0.8.7c/scripts/query_host_cpu.php
cacti-0.8.7c/scripts/ping.pl
cacti-0.8.7c/scripts/loadavg.pl
cacti-0.8.7c/scripts/loadavg_multi.pl
cacti-0.8.7c/scripts/unix_users.pl
cacti-0.8.7c/scripts/unix_processes.pl
cacti-0.8.7c/scripts/weatherbug.pl
cacti-0.8.7c/scripts/query_host_partitions.php
cacti-0.8.7c/scripts/sql.php
cacti-0.8.7c/scripts/diskfree.sh
cacti-0.8.7c/scripts/diskfree.pl
cacti-0.8.7c/scripts/linux_memory.pl
cacti-0.8.7c/scripts/unix_tcp_connections.pl
cacti-0.8.7c/scripts/webhits.pl
cacti-0.8.7c/scripts/ss_host_disk.php
cacti-0.8.7c/scripts/ss_host_cpu.php
cacti-0.8.7c/scripts/query_unix_partitions.pl
cacti-0.8.7c/scripts/3com_cable_modem.pl
cacti-0.8.7c/scripts/ss_fping.php
cacti-0.8.7c/auth_login.php
cacti-0.8.7c/cdef.php
cacti-0.8.7c/poller_export.php
[root@Cacti download]#

[root@Cacti download]# cd cacti-0.8.7c
[root@Cacti cacti-0.8.7c]# ls
about.php                color.php           graph_image.php             graph_templates_items.php  include     poller_commands.php  scripts               user_admin.php
auth_changepassword.php  data_input.php      graph.php                   graph_templates.php        index.php   poller_export.php    script_server.php     utilities.php
auth_login.php           data_queries.php    graph_settings.php          graph_view.php             install     poller.php           script_server.pl
cacti.sql                data_sources.php    graphs_items.php            graph_xport.php            lib         README               settings.php
cdef.php                 data_templates.php  graphs_new.php              host.php                   LICENSE     resource             templates_export.php
cli                      docs                graphs.php                  host_templates.php         log         rra                  templates_import.php
cmd.php                  gprint_presets.php  graph_templates_inputs.php  images                     logout.php  rra.php              tree.php

[root@Cacti cacti-0.8.7c]#




STEP 2.

Cacti 데이터 파일을 저장하기 위해 mysql에 데이터베이스를 생성한다.

[root@Cacti cacti-0.8.7c]# mysqladmin create cacti -u root -p
Enter password:
[root@Cacti cacti-0.8.7c]#


Cacti 데이터베이스에 필요한 테이블과 기본 데이터 생성하기

[root@Cacti cacti-0.8.7c]# mysql cacti < cacti.sql -u root -p
Enter password:
[root@Cacti cacti-0.8.7c]#



Cacti 데이터베이스 접근권한을 설정한다.

[root@Cacti cacti-0.8.7c]# mysql mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.0.75-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY '여기에 패스워드를 입력';
Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>


mysql 권한 설정 후 권한 재설정 사항을 적용하기 위해서 flush privilesges; 명령어를 수행한 것이다.

위의 기본제공되는 cacti.sql 파일을 mysql에 저장하였다. 저장된 mysql 데이터 베이스를 아래와 같이 확인 해 본다.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cacti              |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.01 sec)

mysql>

mysql> use cacti
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_cacti           |
+---------------------------+
| cdef                      |
| cdef_items                |
| colors                    |
| data_input                |
| data_input_data           |
| data_input_fields         |
| data_local                |
| data_template             |
| data_template_data        |
| data_template_data_rra    |
| data_template_rrd         |
| graph_local               |
| graph_template_input      |
| graph_template_input_defs |
| graph_templates           |
| graph_templates_gprint    |
| graph_templates_graph     |
| graph_templates_item      |
| graph_tree                |
| graph_tree_items          |
| host                      |
| host_graph                |
| host_snmp_cache           |
| host_snmp_query           |
| host_template             |
| host_template_graph       |
| host_template_snmp_query  |
| poller                    |
| poller_command            |
| poller_item               |
| poller_output             |
| poller_reindex            |
| poller_time               |
| rra                       |
| rra_cf                    |
| settings                  |
| settings_graphs           |
| settings_tree             |
| snmp_query                |
| snmp_query_graph          |
| snmp_query_graph_rrd      |
| snmp_query_graph_rrd_sv   |
| snmp_query_graph_sv       |
| user_auth                 |
| user_auth_perms           |
| user_auth_realm           |
| user_log                  |
| version                   |
+---------------------------+
48 rows in set (0.00 sec)

mysql> quit
Bye
[root@Cacti cacti-0.8.7c]#




STEP 3.

기본 데이터 베이스를 확인한 다음 Cacti의 접속 환경설정 php 파일을 수정한다.

[root@Cacti cacti-0.8.7c]# vi include/config.php
<?php
/*
 +-------------------------------------------------------------------------+
 | Copyright (C) 2004-2008 The Cacti Group                                 |
 |                                                                         |
 | This program is free software; you can redistribute it and/or           |
 | modify it under the terms of the GNU General Public License             |
 | as published by the Free Software Foundation; either version 2          |
 | of the License, or (at your option) any later version.                  |
 |                                                                         |
 | This program is distributed in the hope that it will be useful,         |
 | but WITHOUT ANY WARRANTY; without even the implied warranty of          |
 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           |
 | GNU General Public License for more details.                            |
 +-------------------------------------------------------------------------+
 | Cacti: The Complete RRDTool-based Graphing Solution                     |
 +-------------------------------------------------------------------------+
 | This code is designed, written, and maintained by the Cacti Group. See  |
 | about.php and/or the AUTHORS file for specific developer information.   |
 +-------------------------------------------------------------------------+
 |
http://www.cacti.net/                                                   |
 +-------------------------------------------------------------------------+
*/

/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";

/* Default session name - Session name must contain alpha characters */
#$cacti_session_name = "Cacti";

?>

아래와 같이 수정했다.

<?php
/*
 +-------------------------------------------------------------------------+
 | Copyright (C) 2004-2008 The Cacti Group                                 |
 |                                                                         |
 | This program is free software; you can redistribute it and/or           |
 | modify it under the terms of the GNU General Public License             |
 | as published by the Free Software Foundation; either version 2          |
 | of the License, or (at your option) any later version.                  |
 |                                                                         |
 | This program is distributed in the hope that it will be useful,         |
 | but WITHOUT ANY WARRANTY; without even the implied warranty of          |
 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           |
 | GNU General Public License for more details.                            |
 +-------------------------------------------------------------------------+
 | Cacti: The Complete RRDTool-based Graphing Solution                     |
 +-------------------------------------------------------------------------+
 | This code is designed, written, and maintained by the Cacti Group. See  |
 | about.php and/or the AUTHORS file for specific developer information.   |
 +-------------------------------------------------------------------------+
 |
http://www.cacti.net/                                                   |
 +-------------------------------------------------------------------------+
*/

/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "여기에 패스워드를 입력";
$database_port = "3306";

/* Default session name - Session name must contain alpha characters */
#$cacti_session_name = "Cacti";

?>




데이터파일과 로그파일이 저장될 디렉토리의 퍼미션을 변경한다.

[root@Cacti cacti-0.8.7c]# chmod 777 rra log
[root@Cacti cacti-0.8.7c]#




웹서버 디렉토리 안에 cacti 디렉토리를 심볼릭링크를 건다.

[root@Cacti cacti-0.8.7c]# ln -s /download/cacti-0.8.7c /usr/local/server/apache/htdocs/cacti
[root@Cacti cacti-0.8.7c]#




STEP 4.

RRDtool을 설치해야 한다. 필자가 써 놓은 RRDtool 설치를 보고 RRDtool을 먼저 설치한다.




STEP 5.

웹브라우저를 이용하여 cacti 링크를 걸어둔 URL로 접속 한다.




블로그 이미지

쭈꾸댕이

아직 어설픈 실력으로 나름 제가 하는 것에 대한 것들을 옮기는 공간입니다. 틀린 부분도 있을 수 있으니 이 점 양해하시고, 도움이 되셨으면 좋겠네요.

,