'Computing/Linux'에 해당되는 글 35건

  1. 2009.03.05 CentOS 에서 cacti 설치
  2. 2008.02.19 리눅스 사용자 계정 생성 팁
  3. 2008.01.30 php 컴파일에 mssql을 포함시키자 2
  4. 2008.01.18 BIND (네임서버 데몬) Zone 화일을 MySQL로 대체 1

CentOS 에서 cacti 설치

|

CentOS 에서 Cacti 를 설치해 보자.
Fedora 에서는 yum 으로 바로 설치 할수 있는데.. CentOS에는 설치를 해줘야 한다.

필요한 패키지는 되도록이면 yum 을 이용해 쉽게 설치한다.

APM(apache+php+mysql) 은 기본으로 있어야 한다.
net-snmp
net-snmp-tools
libart
libart-lgpl-devel
php-gd
php-snmp
php-dbase
snmp
rrdtool (컴파일예정)
를 설치해준다.

먼저 yum 을 이용해 필요한 패키지를 설치한다.
#yum install net-snmp net-snmp-tools libart libart-lgpl-devel gd-php php-snmp php-dbase snmp

rrdtool를 컴파일 하자.
rrdtool 은 http://oss.oetiker.ch/rrdtool/ 에서 다운받을수 있다.

적당한 디렉토리로 이동해
다운받은 rrdtool 풀어놓고 설치한다.

#tar xvfz rrdtool-1.2.30.tar.gz
#cd rrdtool-1.2.30.tar.gz
#./configure --prefix=/usr/local/rrdtool
#make
#make install

이제 cacti 를 http://www.cacti.net 에서 다운받아서 압축을 해제한후 FTP를 통해 웹서비스할 디렉토리에 올려놓는다.

cacti 를 위한 mysql 계정과 사용자를 만든후에
include/config.php 파일을 찾아서 database 정보부분을 수정한다.

/* 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";

cacti 가 설치된 디렉토리에 cacti.sql 파일을 찾아서 mysql의 cacti 계정에 등록한다.
#mysql -ucacti사용자id -p cactiDB명 < cacti.sql

이제 웹에서 접속해 보자.
http://도메인/cocti/

사용자 삽입 이미지


사용자 삽입 이미지

사용자 삽입 이미지

붉은색 표시된 부분은 경로가 맞지 않는 것이므로 고쳐준다.
그대로 따라 했다면 경로는 다음과 같다.
/usr/local/rrdtool/bin/rrdtool
/usr/bin/php
/usr/bin/snmpwalk
/usr/bin/snmpget
/usr/bin/snmpbulkwalk
/usr/bin/snmpgetnext
/var/www/cacti/log/cacti.log

[Finish] 버튼을 누르면 로그인 화면이 나온다.

초기 id/pw 는 admin/admin 이다.

처음에는 엑박 이다.

snmp 서비스를 실행하여 준다.
#service snmpd start

cron 등록을 한다.
#cd /etc/cron.d
#vi sa-update

다음내용을 추가한다.

*/5 * * * * cacti php /cacti경로/poller.php > /dev/null 2>&1

시간이 흐르면 차차 엑박이 하나 둘씩 그래프로 바뀐다.

환경설정은... 다른 문서를 참고한다.
And

리눅스 사용자 계정 생성 팁

|
리눅스에서 사용자 계정을 생성하면 자동으로 홈디렉토리를 만들고 권한도 주게 되어 있다.

근데 이 기본 설정이 마음에 들지 않는다면 바꿔보자.

손봐야 할 파일은 아래와 같다.

/etc/login.defs

내용은 아래와 같다.

# *REQUIRED*
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR      Maildir
MAIL_DIR        /var/spool/mail
#MAIL_FILE      .mail

# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7

#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                   500
UID_MAX                 60000

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                   500
GID_MAX                 60000

#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD    /usr/sbin/userdel_local

#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME     yes

# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK           077 <- 이것은 777 - 077 즉 만들어지는 사용자 계정의 권한이 700 으로 만들어진다.
                                    076 으로 변경하면 777 - 076 = 701로 된다. 웹계정을 많이 만든다면 이게 좋다.

# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes

대충 읽어보면 짐작이 가리라 본다.

홈디렉토리, 쉘, SKEL 등을 변경하고 싶다면 아래 파일을 만져보자.

/etc/default/useradd

내용은 아래와 같다.

# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

대충 읽어보면 짐작이 가리라 본다. ^______________^
 

And

php 컴파일에 mssql을 포함시키자

|

1. 컴파일

php에서 mssql을 사용하기 위해서는 FreeTDS 를 설치해 주어야 한다.

   사이트는 : http://www.freetds.org  이며
   다운은 : http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz 에서 받을수 있다.

   적당한 디렉토리에 풀자.

   #tar xvfz freetds-stable.tgz

   컴파일 해준다.

   #./configure --prefix=/usr --with-tdsver=8.0 --disable-odbc --disable-debug --enable-dbmfix --enable-msdblib
   #make
   #make install

   위 설정은 페도라/CentOS 기준이다. 사용자 별도의 디렉토리에 설치하고 싶다면 --prefix=디렉토리... 를
   변경하자.  --prefix=/usr/local/freeTDS  이정도 해주면 되겠다.

   그후 php 컴파일시 --with-mssql 만을 추가해주면 되겠다.
   사용자 별도의 디렉토리를 지정하였다면 저기 위에 지정해준 디렉토리를 입력한다. --with-mssql=디렉토리
   즉, freeTDS 컴파일시 등록한 prefix 내용을 입력하면 되겠다.

php 컴파일 후, 아파치 재시동하고 phpinfo()에서 mssql 이 나타나는것을 확인한후 사용하면 된다.

2. RPM 설치
마찬가지로 위의 사이트에 가면 찾을수 있다.
http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/redhat/RPMS/  로 접속하면 바로 바로 받을수 있다.

freetds-0.62.1-1.i586.rpm 만 받아도 되고, 필요하다면 freetds-devel-0.62.1-1.i586.rpm 도 받아서

#rpm -ivh freetds-0.62.1-1.i586.rpm
#rpm -ivh freetds-devel-0.62.1-1.i586.rpm

아파치 재시동후 phpinfo()에서 mssql 나타나는것을 확인한후 사용하면 된다.

3. 환경설정
freetds 설치 디렉노리 밑의 freetds.conf 파일을 편집한다. 붉게 표시된 부분을 자신에 맞게 고쳐쓰자.

[global]
 # TDS protocol version
 tds version = 4.2
; initial block size = 512
 # uses some fixes required for some bugged MSSQL 7.0 server that
 # return invalid data to big endian clients
 # NOTE TDS version 7.0 or 8.0 should be used instead
; swap broken dates = no
; swap broken money = no
 # Whether to write a TDSDUMP file for diagnostic purposes
 # (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
 # Command and connection timeouts
; timeout = 10
; connect timeout = 10
 
 # If you get out of memory errors, it may mean that your client
 # is trying to allocate a huge buffer for a TEXT field. 
 # (Microsoft servers sometimes pretend TEXT columns are
 # 4 GB wide!)   If you have this problem, try setting
 # 'text size' to a more reasonable limit
 text size = 64512
 client charset = EUC-KR
# This is a Sybase hosted database server, if you are directly on the
# net you can use it to test.
;[JDBC]
 ;host = 192.138.151.39
 ;port = 4444
 ;tds version = 5.0
# The same server, using TDS 4.2.  Used in configuration examples for the
# pool server, since the pool server supports only TDS 4.2.
;[JDBC_42]
; host = 192.138.151.39
; port = 4444
; tds version = 4.2
# The client connecting to the pool server will use this to find its
# listening socket.  This entry assumes that the client is on the same
# system as the pool server.
;[mypool]
; host = 127.0.0.1
; port = 5000
; tds version = 4.2
# A typical Microsoft SQL Server 7.0 configuration
;[MyServer70]
; host = ntmachine.domain.com
; port = 1433
; tds version = 7.0
# A typical Microsoft SQL Server 2000 configuration
[MyServer2k]
host = 111.222.111.222
port = 1433
tds version = 8.0
 
# A typical Microsoft SQL Server 6.x configuration
;[MyServer65]
; host = ntmachine.domain.com
; port = 1433
; tds version = 4.2

4. 사용예

$MS_host      = "MyServer2k";  //위의 freetds.conf 에서 지정한내용
$MS_dbname = "DB 명";
$MS_user      = "DB 아이디";
$MS_pass     = "DB 비밀번호";

$MS_conn = mssql_connect($MS_host,$MS_user,$MS_pass)) ;
mssql_select($MS_dbname, $MS_conn);
......

- 끝 -


And

BIND (네임서버 데몬) Zone 화일을 MySQL로 대체

|
이것저것 공짜라고 여러명의 도메인을 등록해주다 보니
존(zone) 화일이 많이 늘어났다... 관리하기도 귀찮은데...
찾다보니  Zone 화일을 MySQL에서 관리할수있더라... 왜 몰랐을까...ㅠㅠ

아직 시도해 보지는 않았다.

http://mysql-bind.sourceforge.net/docs.php


위 사이트를 둘러보면 모든 내용이 있다.

일단, 내용은.....

1.
 mysql-bind 를 압축 풀어서
*.c 는 bind9소스/bin/named 디렉토리에 넣고,
*.h 는 bind9소스/bin/named/include 디렉토리에 넣고

2.
Mysql incldue 를 환경변수에 등록한다
#DBDRIVER_INCLUDES = -I'/usr/include/mysql' 
위의 값은 자신의 서버에서 #mysql_config --cflags 명령을 입력했을때 나오는 값이다.

3.
마찬가지로... lib 도 등록한다.
#DBDRIVER_LIBS = -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
위의 값은 자신의 서버에서 #mysql_config --libs 명령을 입력했을때 나오는 값이다.

4.
bind9소스/bin/named/main.c  파일을 열어서
#include "mysqldb.h"  를 한줄 추가한다.

5.
./configure
make
make install

하여 bind를 설치한다. (추가 옵션은 알아서 붙이자.)

이후...

named.conf 에

zone "mydomain.com" {
  type master;
  notify no;
  database "mysqldb db명 table명 host명 아이디 비밀번호";
};

형식으로 추가한다.

mysql 에 위에 등록한 사용자, DB, Table 을 일치시키고...

CREATE TABLE table명 (
  name varchar(255) default NULL,
  ttl int(11) default NULL,
  rdtype varchar(255) default NULL,
  rdata varchar(255) default NULL
) TYPE=MyISAM;

위 형식으로 테이블을 만들어주고..

INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'SOA', 'mydomain.com. www.mydomain.com. 200309181 28800 7200 86400 28800');
INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'NS', 'ns0.mydomain.com.');
INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'NS', 'ns1.mydomain.com.');
INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'MX', '10 mail.mydomain.com.');
INSERT INTO mydomain VALUES ('w0.mydomain.com', 259200, 'A', '192.168.1.1');
INSERT INTO mydomain VALUES ('w1.mydomain.com', 259200, 'A', '192.168.1.2');
INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');
INSERT INTO mydomain VALUES ('mail.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');
INSERT INTO mydomain VALUES ('ns0.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');
INSERT INTO mydomain VALUES ('ns1.mydomain.com', 259200, 'Cname', 'w1.mydomain.com.');
INSERT INTO mydomain VALUES ('www.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');
INSERT INTO mydomain VALUES ('ftp.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');

형태로 등록시킨다.

......

주의 할점은 각 도메인 마다 테이블 1개씩이라는 점이다.... ㅠㅠ;;

mysql-bind 사이트의 링크를 보면  dnsqlpanel 이란게 있다. 이게 관리툴인것 같다.

http://dnsqlpanel.sourceforge.net/


bind 데몬을 동작시킨다.

남은 문제점 : 그래도 named.conf 는 직접 계속 만져서 추가해야 하나.... ㅠㅠ;

-끝-
And
prev | 1 | ··· | 3 | 4 | 5 | 6 | 7 | 8 | 9 | next