kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

OS

CentOS Cacti 구축_최신

까마기 2015. 1. 21. 23:00
728x90
반응형
Cacti 모니터링 구축


1. 개요


- Cacti란

: RRD Tool, SNMP를 기반으로 한 오픈 소스 모니터링 도구이며 APM과 연동하여 관리 편의를 제공함


- RRD Tool : RRD tool은 시간에 따른 자료를 다룰 수 있는 도구이다. 그림 형식으로 시각화 해주는 기능도 있다. 

MRTG를 모방해 일반화 하여 개발한 도구이며 자료 수집에 관한 일부분이 빠져 완전한 대체물은 아니지만, 네트워크 모니터링 분야에서 매우 인기있는 도구이다. 

펄, 파이썬, 루비, Tcl, PHP를 지원한다. 

기본적으로 유닉스/리눅스에서 작동하지만 윈도용도 일부 버전을 지원한다. 공식적으로는 이진파일 없이 소스코드만 배포한다.


출처 : 위키백과

http://millky.com/@origoni/post/1001?language=ko_kr


이미지 스크랩 : https://m.blog.naver.com/PostView.nhn?blogId=kmk1030&logNo=220741824042&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F



1. 서버환경 


httpd 2.2.15

php 5.6.31

mariaDB 10.0.31

cacti 1.1.10



2. 패키지 설치

* 기존 mysql 삭제 후 MariaDB 10.0.31 yum 설치

save image


yum update -y

yum install -y MariaDB-client MariaDB-server MariaDB-devel



/etc/init.d/mysql restart



# yum install -y pkconfig gcc gd gd-devel libart_lgpl libart_lgpl-devel zlib zlib-devel patch libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel fontconfig fontconfig-devel openssl openssl-devel gmp gmp-devel mhash mhash-devel libmcrypt libmcrypt-develfreetype freetype-devel perl-devel net-snmp-* pango-devel  

 

2-1. RRD Tool 설치


# wget https://oss.oetiker.ch/rrdtool/pub/rrdtool-1.7.0.tar.gz

# tar xvfz rrdtool-1.4.7.tar.gz

# cd rrdtool*

# ./configure --prefix=/usr/local

****compile errorr****

-> rrdtool [error]Please fix the library issues listed above and try again.

# yum install -y libart_lgpl*

# yum install -y libxml*

-> compile 시 어떤 부분 때문에 에러가 났는지 경고메세지 확인 후 그에 해당하는 패키지 설치


# make && make install

 # ln -s /usr/bin/rrdtool /usr/local/bin/rrdtool

 

2-2. Net-Snmp 컴파일 ( yum 으로 설치했을 경우 Pass )



https://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.3/ 

위 주소에서 다운로드


# wget http://jaist.dl.sourceforge.net/sourceforge/net-snmp/net-snmp-5.2.4.tar.gz

# tar xvfz net-snmp-5.2.4.tar.gz

해당 디렉터리 이동 

# ./configure

# make && make install 


3. Cacti 설치


# wget http://www.cacti.net/downloads/cacti-1.1.10.tar.gz

# tar xvfz cacti-1.1.10.tar.gz

 

 cacti 디렉터리 백업

 

default directory 경로는 /usr/local/apache/htdocs로 하고 cacti를 이 경로로 이동

 

# mv cacti-0.8.8a /usr/local/apache/htdocs/cacti 


 

====  apache를 yum으로 설치했을 경우   =====

# mv cacti /var/www/html

Cacti 디렉터리를 apache default directory 경로에 심볼릭 링크 걸기 

# ln -s cacti디렉터리위치 apache default directory 




4. Cacti 설정


 

 mysql 설정 작업


# groupadd cacti

# useradd -g cacti cactiuser

# useradd -G cacti cactiuser 

# mysql -u root -p

> use mysql;

> create database cacti;

> show databases;

> grant all on cacti.* to cactiuser@localhost identified by '패스워드';

> grant all on db명.* to user명@host_ip identified by '패스워드';

> flush privileges;

 

# cd /usr/local/apache/htdocs/cacti/include 

# vi config.php

 

ex)

$database_type = "mysql";
$database_default = "cacti";
//$database_hostname = "localhost";
$database_hostname = "192.168.32.133";
$database_username = "cactiuser";
$database_password = "fmxkwkd";
$database_port = "3306";
$database_ssl = false;

 

 
-> cacti 경로를 어떻게 주는가에 따라 변경

-> 예를 들어 Server의 주소 자체를 cacti로 주고 싶을 경우

-> $url path = "/";  으로 설정, httpd.conf의 DocumentRoot 의 경로를 cacti가 설치된 경로까지 입력 (/usr/local/apache/htdocs/cacti)

-> $url path 설정을 하지 않으면 디폴트로 http://xxx.xxx.xxx.xxx/cacti 가 경로가 된다.

 

ex) /usr/local/apache/htdocs/cacti

 # mysql -u root -p cacti < cacti.sql( cacti.sql의 경로 ) 

password : mysql password 입력​

 

 # mysql -u root -p cacti < /usr/local/apache/htdocs/cacti/cacti.sql

 

** virtualhost 경로에 cacti 까지 지정해주면 global.php 에 url_path = /cacti 로 되있는 부분을 주석처리***


 

 

* cacti 웹 UI 접속 (default login : admin/admin)

http://192.168.32.133/cacti

 save image



error 메세지

Your MySQL TimeZone database is not populated. Please populate this database before proceeding.


bdn@localhost ~]$ mysql -u root -p

mysql> use mysql;
mysql> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;                 (where cactiuser is the user for cacti. You provide yours.)
mysql> flush privileges;


:  

save image


save image

save image


save image


save image



save image


* cacti-spine download 경로

http://www.cacti.net/downloads/spine/

wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8h.tar.gz

tar xvfz cacti-spine*

./configure

make && make install


- 컴파일 시 에러

Cacti Spine: configure: error: MySQL libraries not found

yum install mysql-libs

cacti-spine 재컴파일

 cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf

[root@localhost cacti-spine-0.8.8h]# vi /usr/local/spine/etc/spine.conf

 save image


save image


save image

 

save image

 

save image


참조 : http://igoni.kr/?p=37

 

 * cacti 페이지 default passwd : admin/admin

실패했을 경우 에러 페이지 -> auth_changepassword  -> 잘못된 경로로 인한 에러

-> http://lists.centos.org/pipermail/centos/2012-April/125235.html

-> 이후 웹으로 접속해 admin/admin으로  로그인 후 패스워드 변경


* cacti login 페이지에서 admin/admin 으로 로그인 시 화면이 넘어가질 못하며 에러 메세지 없이 계속 로그인 화면이 반복되는 현상 발견

--> 이에, cacti admin password reset 를 진행하였으나, 바뀐 패스워드로 입력하여도 동일한 증상 발생

=====================================================================

참고1. How to reset cacti admin password.

mysql -u root -p cacti
update user_auth set password=md5('admin') where username='admin';


http://www.ylabs.co.kr/index.php?mid=board_centos&document_srl=6531&sort_index=readed_count&order_type=desc&listStyle=viewer

 

======================================================================

 

-> apache log 확인


# vi /usr/local/apache/log/error.log


[Thu Jan 22 19:52:17 2015] [error] [client 192.168.32.1] PHP Warning:  session_start(): open(/var/lib/php/session/sess_a7ikllmprevhv46de2s0327sr2, O_RDWR) failed: Permission denied (13) in /usr/local/apache/htdocs/cacti/include/global.php on line 154, referer: http://192.168.32.133/cacti/index.php

Thu Jan 22 19:52:17 2015] [error] [client 192.168.32.1] PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0, referer: http://192.168.32.133/cacti/index.php


-> /var/lib/php 아래 session 디렉터리가 존재하지 않음 -> /etc/php.ini 에 session path 는 /var/lib/php/session으로 잡혀잇엇다.


# mkdir /var/lib/php/session

# chmod o+w /var/lib/php/session


-> 다시 테스트 결과 정상적으로 화면 넘어가는 것 확인




==============================================================================

* 선택사항

httpd-vhosts.conf 설정

httpd.conf 설정 

==============================================================================

# vi /etc/crontab

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

 

---> php_소스설치경로 cacti경로/poller.php > /dev/null 2>&1

 

# php -v   //yum 으로 깔려있는 경우에는 소스 설치한 것과 버전이 다르게 나올 수가 있다.

# yum remove -y php*

# cp /usr/local/php/bin/php /usr/bin/php

 

# php /usr/local/apache/htdocs/cacti/poller.php --force

 


# vi /etc/snmp/snmpd.conf

com2sec public  default public

group   public  v1 public

group   public  v2c     public

group   public  usm     public

view    all     included        .1

access  public  ""      any noauth      exact   all     none    none


* 2017-06-16 cacti 플러그인 설치전까지 완료


cacti plugin 설치

# wget http://cactiusers.org/downloads/cacti-plugin-arch.tar.gz 

 

 * realtime plugin 설치

wget http://docs.cacti.net/_media/plugin:realtime-v0.5-2.tgz

mv plugin\:realtime-v0.5-2.tgz realtime-v0.5-2.tgz 

tar xvfz realtime-v0.5-2.tgz 

mv realtime /usr/local/apache/htdocs/cacti/plugins 

cd /usr/local/apache/htdocs/cacti/plugins/realtime

mkdir rcache

chmod -R 777 rcache/


-> cacti page -> plug management -> realtime plugin 추가 된 것 확인 -> enable plugin (초록색 네모 박스 클릭)

-> cacti page -> setting -> misc 메뉴 추가 된 것 확인 및 클릭

-> Cache Directory 에 rcache 디렉터리 경로 입력 -> /usr/local/apache/htdocs/cacti/plugins/realtime/rcache -> save -> DIR FOUND 메세지 확인

-> graph 이동 하여 realtime 볼 수 있는지 확인





<cacti>
http://www.ylabs.co.kr/index.php?document_srl=6531&mid=board_centos

 

<snmp>
yum install net-snmp net-snmp-utils
service snmpd start
chkconfig --level 345 snmpd on

 

# vi /etc/snmp/snmpd.conf 


# service snmpd start

 

 

# netstat -nulp <------------- 서비스 확인
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
....

udp        0      0 0.0.0.0:161                 0.0.0.0:*                               22756/snmpd
...


# snmpwalk -v2c -c public localhost  <---------- 테스트 

 

=======================================================

 

반응형