강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

SSU (서버관리,점검유틸리티)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

ssu_1.0.2_html_me043ab0.png프로그램명 : SSU (서버관리,점검유틸리티)
파일이름 : ssu-1.02.tar.gz
운영체제
: 리눅스(redhat기반)
라이센스 : GPL
홈페이지 : http://superuser.co.kr/home/project


지 금부터 소개할 프로그램은 리눅스 서버를 관리한다면 꼭 필요한 프로그램이다. 서버를 여러대 관리하면, 매일 점검하며, 반복되는 작업을 하게 된다. 이런 수고를 덜어주기 위해 만든 SSU(Superuser Server Utility)을 소개한다. 여러 버그가 존재하여 많이 패치되었고, 앞으로 유용한 기능을 더욱 추가될 전망이다.SSU의 장점은 bash및 리눅스의 기본 명령어만을 필요로 하기 때문에 별도의 다른 패키지를 설치할 필요가 없으며, bash awk으로 대부분 구성되어 있기 때문에 필요하다면, 기능을 추가하여 만들 수 있다. SSU는 다음과 같은 기능들을 제공한다.

  • - su_backup (백업) 자동화
    - su_traffic (
    트래픽)
    커맨드창에서 분석
    - su_domain (
    도메인) dns
    관리
    - su_dbuser (DB
    사용자) db
    사용자 관리 및 db 관리
    - su_mailuser (Mail
    사용자) mail
    사용자 관리
    - su_vhost (
    가상호스트)
    아파치 가상 호스트 관리
    - su_usersetup (
    사용자 설정)
    사용자 관리
    -
    시 스템 점검

ssu_1.0.2_html_1ad1c1e7.png


본 리뷰에서 설치 부터 기능 설명까지 살펴 보도록 하겠다. 먼저 프로그램을 다운로드 한다. 정식 배포 페이지는 http://www.superuser.co.kr/home/project 에 있으며, 예전에는 http://util.superuser.co.kr 페이지에서 배포했으며, 이미지 등 샘플 페이지는 후자의 사이트에 아직 존재한다. 다운로드를 웹브라우저로 할 수 있지만, 웹브라우저로 받아서 ftp, sftp등으로 올리면 여러대의 서버에 설치하기에는 너무 힘들다. 그래서 난 wget을 사용할 것이다./root 디렉토리로 이동한다. 본 프로그램의 모든 것은 /root/bin/* 에 설치된다. 그리고 사용자가 지정한 웹 접근 가능한곳에 결과 데이터를 생성하기에 아주 심플하다. 단순히 압축파일을 가져와 풀어주는것만으로 모든 설치가 끝난다.wget http://util.superuser.co.kr/util_v1.0/util_v1.02.tar.gz
tar xvfpz util_v1.0_bin.tar.gz -C /
rm -rf util_v1.0_bin.tar.gz

간 단하게 설치를 하였다면, 본 프로그램은 서버의 전반적인 것을 관리하기 때문에 설정을 꼼꼼히 해 주어야 한다. 설정파일의 위치는 /root/bin/conf/su_util.cfg이다. 다음과 같은 항목들이 있으며 자세한 옵션은 www.superuser.co.kr/home/project 에서 확인하기 바란다. 본 리뷰에서는 중요한 몇가지 옵션만 살펴보도록 하겠다.

admin_mail=메일주소
관리 자의 메일주소를 넣어준다. 이 주소는 가상쿼타 체크에서 문제가 있을시 위 주소의 관리자에게 메일을 보내기 위해 필요한 주소다. 대부분 이 기능은 사용하지 않는다. 사용하면 아주 유용하지만, 생각만큼 사용빈도가 높지 않다.
mysql_bin_dir = /usr/local/mysql/bin
mysql_data_dir = /usr/local/mysql/data
위 설정들은 mysql 관련 설정이다.. 컴파일 설치했다면, 거의 위 설정을 변경할 필요는 없다. 하지만, 다른 위치나 rpm 설치했다면, 실행파일과 데이터경로를 위와 같이 명시해야 하며, su_util.cfg.rpm이라는 파일이 예제로 있으니 참고하면 된다.
apache_bin_ctl = /usr/local/apache/bin/apachectl
apache_conf_dir = /usr/local/apache/conf
htpasswd_path = /usr/local/apache/bin/htpasswd
web_root = allow_httpd.conf
위 설정들은 apache 관련 설정이다. 컴파일 설치 했다면 위와같이 기본 설정을 유지하기를 바란다. 여기서 web_root는 사용자들의 web_root 이며, 대부분 www 또는 public_html을 많이 사용하지만 위와같이 설정해 두면, 아파치 설정파일에 설정된 것에 따라가기 때문에 편하게 사용할 수 있다. 보안에 신경이 많이 쓰인다면, web_root를 임의로(random)으로 하는 것도 좋은 방법이다. 이렇게 설정하면, web_root가 생성한날짜의 초단위 까지 셋팅되기 대문에 일반적인 경로로 들어오지 못한 다. 같은 서버의 다른 사용자가 DB설정파일등을 훔쳐보지 못하게 하기위한 최소한의 보안 조치이다.

dns_domain = ns.superuser.co.kr
dns_admin_mail = root.superuser.co.kr

DNS
서버를 사용한다면, 위 설정을 꼭 바꾸어 주어야한다. ZONE 파일에 들어가는 설정으로
dns
도메인과, dns 관리자 메일주소이다. 위에서
root.superuser.co.kr root@superuser.co.kr과 같은 의미이다.

backup_dir = /backup
home_dirs = /home
backup_count = 2

백업과 관련된 설정이다. /backup이란 디렉토리에 2일 누적하여 백업하는 설정이다. 홈디렉토리를 /home 아닌 다른 것을 사용한다면 다른 홈디렉토리를 입력하면, 하위 디렉토리별로 백업한다. 예를 든다면, /home/a , /home/b, /home2/cc , /home2/dd
가 있다면 백업할 때, home.a.tar.gz , home.b.tar.gz, home2.cc.tar.gz, home2.dd.tar.gz 이렇게 나눠 백업한다.

system_mailto = d@supeer.co.kr
proclist = system_check sh run_parts updatedb tar gzip slocate.sh mail ncftp ls awk sort system_check_ma system_check_pr system_test mrtg vi rateup clock backup.sh rm agent.sh agent.sh_day DelOldDir du system_check_di run-parts slocate.cron
system_file = /bin/grep /bin/awk
web_dir = /home/mons/www/system_check
log_count = 60
min_bigfilesize = 51200
htaccess = no
htuser = admin
htpass = 12345
traffic_dev = eth0
시스템 점검시 필요한 설정이다.
**
메일주소외에 위 설정대로 두면 되고, 필요에 의해 추가하면 된다. 설명 페이지가 자세히 나와 있으니 참고하면 도움이 된다. 처음 나오는 메일주소(system_mailto)는 시스템 점검하고 문제점 보고를 받을 메일주소이다. 꼭 관리자의 메일 주소로 수정해야 한다. proclist는 시스템 점검하는 시점에 추가되는 프로세스 명들이다. 15자까지만 기술해 주시고 꼭 한줄로 적어야 한다.
system_file
은 중요하다고 생각하는 파일들을 절대경로로 기술해주면 그 파일을 매일 매일 채크한다. web_dir 은 점검 결과가 생성될 절대 경로를 나타내면, 결과는
html형식으로 생성된다.
log_count
는 시스템 점검 결과를 보관할 일 수 이다. min_bigfilesize
는 시스템 점검 항목중 큰 파일 찾는 것이 있는데, 거기서 참조하게 되는 용량이다. htaccess 는 점검결과를 web으로 보기 때문에 비밀 번호 설정하는 항목이며, htuser 아이디 / htpass 비밀번 호를 넣어 주어야 한다. traffic_dev 시스템 점검 항목중에 트래픽 점검이 있는데 모니터링할 장치명을 의미하며 eth0 는 첫번째 랜카드, eth1는 두번재 랜카드 이렇게 된다.

주기적으로 실행 해 주어야 하므로 크론에 등록한다.
[root@test]# crontab -e
위와같은 명령어를 내리면, vi 편집기 모드로 나오며 여기에 다음 항목을 추가 한다.
00 03 * * * su - root -c '/root/bin/su_backup --local' >& /dev/null
00 07 * * * su - root -c '/root/bin/system_check' >& /dev/null
*/5 * * * * su - root -c '/root/bin/system_test >& /dev/null'
위 설정은 3시에 백업을 하며, 7시에 시스템 점검을 하며, 5분마다 시스템 로그를 기록한다.
3
시 및
7시는 변경가능하지만, 5분마다 실행하는 것은 변경하면 이상한 결과가 나온다.

프로 그램을 실행시키기 위해 정보들을 모은다. (시간이 오래 걸릴 수 있으며, 에러는 대부분 무시해도 무방하다.)
[root@test]# /root/bin/system_check_init --all
[root@test]# /root/bin/system_check
이렇게 설치를 마쳤다면, 설정한 절대경로에 웹으로 접근하면, 점검결과를 볼 수 있다.
트래픽 및
cpu 정보들은 5분마다 갱신되며, 다른 정보는 하루 한번 갱신된다.


다 음으로 SSU에 포함된 유틸리티들을 소개한다.
트래픽 측정 유틸리티 (su_traffic)
MRTG
등으로 그래프를 그려 볼 수 있지만, 서버관리자들에게는 갑자기 트래픽을 봐야 할 때가 있다. 이럴때 간단하게 사용할 수 있는 트래픽 분석 프로그램이다. 사용법은 아주 간단하다.
[root@test root]#
su_traffic eth0 text 1
 날짜                입력                 출력
04-09-09  0:13     : 169 KBit/Sec       6628 KBit/Sec
04-09-09  0:13     : 162 KBit/Sec       5713 KBit/Sec
04-09-09  0:13     : 142 KBit/Sec       6027 KBit/Sec
04-09-09  0:13     : 135 KBit/Sec       5549 KBit/Sec
04-09-09  0:13     : 123 KBit/Sec       5503 KBit/Sec

위와같이 간단하게 트래픽 측정이 가능하다.


 
네임서버(bind)설정 프로그램
(su_domain)dns 에 도메인을 추가하려면, named.conf 파 일에서 형식에 맞게 만들어 주어야 하며, zone 파일 또한 만들어 주어야 한다. 도메인이 많고 적고 이일은 귀찮은 일이다. 아래 프로그램을 이용하면 간단하게 해결할 수 있다.

 

 사용방법

도메인 추가


[root@ns root]#
su_domain --add test.com 123.123.123.123
name
서버
RELOAD ....

이렇 게 간단하게 셋팅이완료된다.
[root@ns root]#
cat /etc/named.conf
zone "test.com" IN {type master; file "test.com.zone"; allow-update { none; }; };
[root@ns root]#
cat /var/named/test.com.zone
$TTL 86400
@       IN      SOA     ns.superuser.co.kr. root.superuser.co.kr. (
                        20040909 0      ; 시리얼값 (년월일시간)으로 대부분 셋팅
                        3H              ; 2
차 네임서버가 1차 네임서버에 접속하는 시간
                        15M             ;
접속 실패시 다시 시도할 시간 간격
                        1W              ; 1
차 네임서버에서 데이터가 없다면
1주 이후에 지워진다.
                        1D )            ;
위에서 설정한 TTL 값과 같은 의미
;
        IN      NS      ns.superuser.co.kr.     ;
도메인을 소유한 DNS의 도메인
        IN      MX      10 mail.test.com.       ;
메일을 보낼 도메인 또는 주소
        IN      A       123.123.123.123         ;
도메인이 찾아갈 IP 주소
www     IN      A       123.123.123.123         ; www.
도메인이 찾아갈 IP주소
mail    IN      A       123.123.123.123         ;
메일서버 아이피
*       IN      A       123.123.123.123         ;
모든 서브 도메인이 찾아갈 서버 ip 주소
[root@ns root]#
위와같이 필요한 파일이 만들어지며, 원하는것과 같이 셋팅된다.

 

- 도메인 삭제


[root@ns root]#
su_domain --del test.com     
위와같이 입력하면 zone 파일은 지우고, named.conf 파 일에서 도메인과 관련된 위치로 커스를 위치시킨다. vi 이므로 간단하게 dd 라고 입력해주면 삭제되고, ESC 누른다음 :wq 라고 입력하면 삭제 작업은 끝나고 네임서버가 재시작된다. 물론 편집도 가능하니 -–help 옵션을 주어 확인하길 바란다.

mysql 사용자 및 데이터베이스 생성 프로그램mysql의 사용자 설정은 서버에서 다른 사용자 설정하는 것 보다 까다롭다. 입력해야 할 것들이 많고 많은 시간을 필요로 한다. 이 번거러운 사용자 설정을 명령어 한줄로 처리하였다. 물론 중간에 mysql root 의 패스워드를 물어본다.
(mysql 3.23.* , mysql 4.0.*, mysql 4.1.*, mysql 5.0.*
모두 사용가능)

 

- 사용자 추가


[root@test root]#
su_dbuser --add tes tes tes

 

- 사용자 삭제


[root@test root]#
su_dbuser --del tes tes    
사용자 비밀번호 변경하는 것도 있다. 매뉴얼을 참고하길 바란다.

mail 사용자 관리 프로그램전 문적인 메일서버가 아니더라도, sendmail으로 간단하게 메일서버를 운영하는 경우가 많다. 이럴 경우 메일 사용자들을 관리하는 일은 특별한 정책없이는 힘든 일이다. 메일만을 사용할 사용자는 쉘 계정을 주지 않는 것이 대부분이며, 가상 사용자로 셋팅해야 할 경우도 많다. 이런 번거러운 작업들을 간단하게 처리해 주는 프로그램이다.

 

- 메일 사용자 추가


[root@test root]#
su_mailuser --add test.com tes tes
메일을 받을 수 있게 local-host-names access파일을 자동 갱신하며, db파일만들고, sendmail 재 시작한다.

 

-사용자 삭제


[root@test root]#
su_mailuser --del tes             
위와같이 간단하게 삭제 가능하다. 그 밖에도, 포워딩 및 메일 사용자 비밀번호 변경, 메일 사용자를 보여주는 기능이 있다.



 
아파치 가상 도메인 셋팅 프로그램요 즘은 서버 한 대에 하나의 도메인만을 셋팅해서 사용하는 분들은 거의 없다고 생각한다. 아파치의 가상호스트 기능을 사용해서 많은 도메인을 하나의 서버에서 사용할 것이며, 도메인이 추가 삭제 될 때마다 httpd.conf 파일을 건드려야 하고, 실수가 있을 수도 있다. 간단하게 이 기능을 해주는 프로그램이 있다.

 

- 도메인 추가


[root@test root]#
su_vhost --add /home/doly/www doly.com
이렇게 하면 /hom/doly/www를 웹root로 하고, doly.com
www.doly.com 에 대한 것 까지 셋팅완료된다.

 

- 도메인 포워딩


[root@test root]#
su_vhost --redirect www.doly.com www.doly.net doly.net doly.co.kr
위와같은 명령을 내리면, doly.co.kr , dol.net 모두
www.doly.com으로 포워딩 된다.

 

- 도메인 삭제


[root@test root]#
 su_vhost --del doly.com
위와같이 입력하면, httpd.conf 파 일을 열어서 관련 도메인이 위치한 곳을 찾아 주며, dd 라는 키로 지우고, ESC ,:wq로 저장하고 나오면 끝난다.(vi 편집기 필수기능은 숙지 하기 바란다.)

 사용자 설정 프로그램
본 프로그램은 사용자 추가, 메일설정, db 설정까지 한꺼번에 해 주는 프로그램이다. 호스팅서버에서 사용자 추가시에 아주 유용하게 사용할 수 있다.

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,039 명
  • 현재 강좌수 :  35,845 개
  • 현재 접속자 :  90 명