FreeBSD + APM + cacti 설치
#vi .cshrc 수정
setenv LANG ko_KR.UTF-8
setenv LC_ALL ko_KR.UTF-8
(로케이션 한글 설정)
set prompt = "%B`whoami`%b@`hostname`[%~]#"
#source .cshrc
port 업데이트
cvsup -g -L 2 -h cvsup.jp.freebsd.org /usr/share/examples/cvsup/ports-supfile
1.apache22 설치
whereis apache22
cd /usr/ports/www/apache22
make WITH_MPM=worker install clean (2코어 활성)
선택 옵션에서 mysql 선택하고 탭ok 누르면 된다.
apache22 셋팅은 mysql55-server 와.. php5 를 설치 하고나서 한번에 셋팅 한다..
2. mysql55-server 설치
cd /usr/ports/databases/mysql55-server
#make WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci install clean
* EUC-KR을 사용하기 위한 옵션 설치
# > make WITH_CHARSET=euckr WITH_COLLATION=euckr_korean_ci install clean
utf8로 설치 한다..
#make WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci install clean
특별히 설정할껀 없다.
* mysql 설정파일 복사
# > cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
3. php5 설치
apache22 와 연동하기 위하여..
cd /usr/ports/lang/php5 && make config
설정 화면에서 Build Apache module 선택후.. ok 버튼으로 넘김
cd /usr/ports/lang/php5-extensions
make config install 로 설치
설치 옵션에서 FTP GD MYSQL SOCKETS SNMP 선택후 OK 눌러 설치
설치중 나오는 옵션은 전부 탭눌러서 넘긴다.
설정
1. apache22 설정
cd /usr/local/etc/apache22
vi httpd.conf
AddType 로 검색하여 적당한 곳에..
AddType application/x-httpd-php .php .inc .html
AddType application/x-httpd-php-source .phps
추가한다.
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php .inc .html
AddType application/x-httpd-source .phps
이런식으로 적어 주면 된다.
DirectoryIndex 를 검색하여.
DirectoryIndex index.html index.php 추가해준다.
# Virtual hosts
Include etc/apache22/extra/httpd-vhosts.conf
Include 앞에 주석 해제 위와 같이 변경
vi /etc/rc.conf
apache22_enable="YES"
2. mysql 설정
cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
vi /etc/rc.conf
mysql_enable="YES" 추가후 리붓
3.php 설정
cd /usr/local/etc
cp php.ini-production php.ini 로 카피 한다.
리붓후
sockstat -4 로 mysql 과 httpd 작동을 확인 한다..
root sshd 1174 4 tcp4 *:22 *:*
root httpd 1147 3 tcp4 6 *:80 *:*
root httpd 1147 4 tcp4 *:* *:*
mysql mysqld 1081 11 tcp4 6 *:3306 *:*
4. mysql 나머지 설정..
* 기본 사용자가 mysql로 사용하는 기본 관리 DB 설치
/usr/local/bin/mysql_install_db --user=mysql
---------------------------------------------------------------------------------------
FATAL ERROR: Could not find ./bin/my_print_defaults
If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.
If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
---------------------------------------------------------------------------------------
위와 같은 오류때문에.. mysql_install_db 가 설치가 안된다고 하면 아래 방법으로 설치
/usr/local/bin/mysql_install_db --user=mysql --basedir=/usr/local
* 관리자 비밀번호 지정 하기
/usr/local/bin/mysqladmin -u root password '패스워드' (패스워드 앞에 '은 엔터옆에 '임)
* 캐릭터셋 점검
# > mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9 to server version: 5.1.34-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use test;
Database changed
mysql> show variables like 'c%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| concurrent_insert | ON |
| connect_timeout | 5 |
+--------------------------+----------------------------------+
12 rows in set (0.00 sec)
mysql >
mysql > quit
- 서버설정에 타라 위의 내용이 다를 수 있습니다.
quit 로 빠져 나온다..
mysql utf8 적용
vi /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
[mysql]
dafault-character-set=utf8
mysql> use test;
Database changed
mysql> show variables like 'c%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
+--------------------------+----------------------------------+
14 rows in set (0.01 sec)
mysql>
apm 설치및 셋팅이 끝났다..
mysql> status
--------------
mysql Ver 14.14 Distrib 5.1.60, for portbld-freebsd8.2 (amd64) using 5.2
Connection id: 1048
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: more
Using outfile: ''
Using delimiter: ;
Server version: 5.1.60-log FreeBSD port: mysql-server-5.1.60
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 1 day 16 hours 37 min 20 sec
Threads: 1 Questions: 109705 Slow queries: 0 Opens: 1107 Flush tables: 1 Open tables: 54 Queries per second avg: 0.750
--------------
기본적으로 apm 이 설치 되어 있어야 한다. php 설치 옵션중 snmp
test# whereis cacti
cacti: /usr/ports/net-mgmt/cacti
cacti: /usr/ports/net-mgmt/cacti
test# cd /usr/ports/net-mgmt/cacti && make install clean
mysql 의 db와 계정을 셋팅한다.
# mysql -u root -p
Enter password: **********
---------------------------------------------------
mysql> create database cacti;
mysql> use mysql;
mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'password';
mysql> FLUSH privileges;
mysql> quit
mysql -u root -p cacti < /usr/local/share/cacti/cacti.sql
php.ini timezone 수정
vi /usr/local/etc/php.ini
date.timezone = Asia/Seoul
로 수정
# vi /usr/local/share/cacti/include/config.php
--------------->modify<------------------
#database_type = "mysql";
#database_default = "cacti";
$database_hostname = "127.0.0.1";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "password";
$database_port = "3306";
------------------------------------------
vi /etc/rc.conf
snmpd_enable="YES"
snmptrapd_enable="YES"
linux_enable="YES"
cd /usr/local/share/snmp/
cp snmpd.conf.example snmpd.conf
vi snmpd.conf
#trap2sink localhost public
#rocommunity public localhost
주석 제거 해 준다.
vi /etc/crontab
*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
추가 해 준다.
리눅스 에뮬레이터 설치
메모리 부분 스크립트가 linux 전용으로 되어 있기 때문에 linux에뮬레이터를 설치 해야 정상적으로 작동한다.
위에 rc.conf 수정에서 linux_enable="YES" 로 한후 리붓을 해야 정상적으로 설치가 가능하다.
rc.conf 를 수정 하지 않고 설치 했을경우
root@cacti.test.com[/usr/ports/emulators/linux_base-f10]#make install clean
===> linux_base-f10-10_4 linuxulator is not (kld)loaded.
*** Error code 1
Stop in /usr/ports/emulators/linux_base-f10.
와 같은 오류 메시지를 볼수 있다
리눅스 에뮬레이터 사용시 시작스크립트인 rc.conf 에서 리눅스 모듈? 을 불러와야 정상적으로 설치가 된다.
리붓후 다시 설치 하도록 한다.
root@test.crois.net[~]#cd /usr/ports/emulators/linux_base-f10/
root@test.crois.net[~]#make install clean
cacti 메모리 부분 스크립트 변경
리눅스 용으로 작성이 되어 있기때문에 freebsd 에서 구동시키면 정상 작동이 되질 않습니다.
test# cd /usr/local/share/cacti/scripts/
test# vi linux_memory.pl
#!/usr/bin/perl
$mem = `cat /compat/linux/proc/meminfo | grep -w "$ARGV[0]"`;
$mem =~ s/($ARGV[0].*\s)(.*[0-9])( kB)//;
print $2;
-------------------------------------------------
linux 에뮬레이터 사용을 위해.
fstab 부분에 설정을 합니다.
vi /etc/fstab
linproc /compat/linux/proc linprocfs rw 0 0
vi /etc/crontab
*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
---------------------------------------
root@cacti.test.com[/usr/local/share/cacti/scripts]#cd /usr/local/etc/apache22/
vi httpd.conf
apache 설정
Alias /cacti /usr/local/share/cacti
<Directory "/usr/local/share/cacti">
AllowOverride None
Order Allow,deny
Allow from all
</Directory>
root@cacti.test.com[~]#/etc/rc.d/cron restart
--------------------------------------------------------
01/09/2012 10:35:02 AM - PCOMMAND: Poller[0] Host[1] WARNING: Recache Event Detected for Host
오류가 뜨면
php -q /usr/local/share/cacti/cli/poller_reindex_hosts.php -id=2 -d
php -q /usr/local/share/cacti/cli/poller_reindex_hosts.php -id=All
삭제 해 줘야 한다.
오류 관련 설정 페이지
http://docs.cacti.net/manual:087:6_reference.4_cli_script.2_reindex_hosts
정상적으로 snmpd 가 작동 하는걸 보기 위해.. 아래 명령어를 실행해 본다.
snmpwalk -v 2c -c public localhost
-----------------------------------------------------------
cacti 설정
admin:admin 으로 로그인 하고 로그인 후에 비번을 만들어 주면 된다.
Devices 부분
Host Template 부분을 ucd/net SNMP Host 로 바꿔 준다.
SNMP Version 을 Version 2 로 바꿔준다.
Associated Graph Templates 에서
2) ucd/net - CPU Usage Not Being Graphed
3) ucd/net - Load Average Not Being Graphed
4) ucd/net - Memory Usage Not Being Graphed
Downed Device Detection -> Ping and SNMP Uptime
Ping Method -> ICMP Ping
위와 같이 추가를 해준다.
Associated Data Queries 부분에서
1) SNMP - Interface Statistics 추가
그리고 저장.
Management 부분에서
Graph Management
기본으로 되어 있던 설정을 전부 삭제 한다.
다시
Create
New Graphs 부분에서 그래프를 만들어 준다.
(nic device 모니터링및 파티션 부분은 New Graphs 메뉴에서 생성한다.)
Collection Methods
Data Queries
부분에서 SNMP - Interface Statistics 를 추가
전부 설치 하고 나면 5분 후 아래와 같은 그래프를 볼수 있다.
----------------------------------------------
설명이 너무 부실하여 도움이 될지는 모르겠지만..
차후좀더 수정 보완하겠습니다.
어설픈글 읽어 주셔서 감사합니다 _(__)_