프로그램명 : 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 (사용자 설정) 사용자 관리 - 시 스템 점검

|
본 리뷰에서 설치 부터 기능 설명까지 살펴 보도록 하겠다. 먼저 프로그램을 다운로드 한다. 정식 배포 페이지는 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 --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_vhost --del doly.com 위와같이 입력하면, httpd.conf 파 일을 열어서 관련 도메인이 위치한 곳을 찾아 주며, dd 라는 키로 지우고, ESC ,:wq로 저장하고 나오면 끝난다.(vi 편집기 필수기능은 숙지 하기 바란다.)
사용자 설정 프로그램본 프로그램은 사용자 추가, 메일설정, db 설정까지 한꺼번에 해 주는 프로그램이다. 호스팅서버에서 사용자 추가시에 아주 유용하게 사용할 수 있다.
|