9월, 2009의 게시물 표시

이 엄청 떨어지는 주의 집중력은 몬가요?

이미지

원격관리 (관리회선, 시리얼 콘솔, IPMI)

원격 로그인 네트워크 장애대비 관리회선 : 상용회선이나 라우터의 장애시에도 원격관리를 가능하게 하기 위해서 다른 계통의 경로를 마련하는 회선 스위치 장애 대비 시리얼 콘솔 시리얼 콘솔의 실현 (cu, kermit, minicom) - BIOS 서버 머신에 탑재된 BIOS라면 콘솔 리다이렉션 이라는 기능을 지니고 있다. 이것은 머신 기동시에 BIOS가 출력하는 메시지나 BIOS의 설정화면을 지정된 시리얼 인터페이스로 출력하는 기능이다. - 부트로더 lilo나 SYSLINUX, GRUB 등의 일반적인 부트로더는 시리얼 콘솔에 대응하고 있다. 설정하면 통상의 콘솔과 마찬가지로 시리얼 콘솔을 통해 부트로더 제어화면에 액세스할 수 있다. - OS 대부분의 유닉스 계열 OS는 OS나 부팅시에 실행되는 초기화 스크립트가 출력하는 메시지를 시리얼 콘솔로 출력할 수 있다. 리눅스의 경우라면 커널의 파라미터로, 디폴트 콘솔로서 시리얼 인터페이스를 지정한다. - getty 유닉스 계열 OS에서는 콘솔로부터의 로그인은 getty라고 하는 프로그램이 처리한다. 시리얼 콘솔로부터의 로그인에도 getty를 사용한다. IPMI(Intelligent Platform Management Interface) 소프트웨어를 이용해서 머신의 전원을 제어하거나 상태를 확인하기 위한 규격이다. IPMI에서는 로컬 머신에서는 물론, 네트워크상의 다른 머신으로부터도 이러한 기능에 액세스 할수 있다. 웹 서버 로그관리 웹 서버 로그 집약, 수집 집약과 수집 집약: 웹서버가 출력하는 로그를 항상 전송해서 한곳으로 모으는 것이다. - 목적: 그 순간순간의 상황을 파악하기 위해서이다. 수집: 각 서버상에 출력된 로그를 정기적으로 모아서 저장하는 것을 말한다. - 목적: 집계와 분석, 그리고 보전이다. 로그 집약 (syslog, syslog-ng) syslog를 이용한 로그 집약 syslog-ng 로그수집 1. 로그의 보존과 분석 아파치 로그의 회전 cron과 rotatelogs cron을 사용하여 로그파일을 리네

네트워크 부트의 활용 PXE, initramfs

네트워크 부트란: 머신이 부팅하기 위해 필요한 데이터나 파일을 네트워크로부터 얻어서 부팅하는 것이다. 네트워크 부트의 특징과 이점 네트워크 부트를 사용하면 머신이 기동할 때 로컬의 2차 기억장치가 필요없게 된다. initramfs: 커널이 루트 파일시스템을 마운트하고 init을 실행하기 전에 커널의 외부에서 밖에 수행할 수 없는 초기화를 하기 위한 구조다. 부팅할 머신상에 아무것도 사전에 준비해두지 않아도 파일서버상에 다양한 시스템용 커널과 initramfs를 준비해두면 어떤 머신에서라도 임의의 시스템으로서 기동할 수 있다는 것을 의미한다. Diskless 시스템을 구성하는것도 가능하다. 네트워크 부트의 동작 PXE PXE 부트의 흐름 1. 통상의 BIOS가 초기화 작업을 한다. 이 과정에서 확장 BIOS를 스캔해서 PEX BIOS가 등록된다. 2. 부팅 디바이스로 PXE가 선택되면 PXE BIOS로 제어를 넘긴다. 3. 제어를 넘겨받은 PXE BIOS는 DHCP를 사용해서 IP주소 등의 정보를 얻은 후 IP 통신을 준비한다. 4. 다음으로 PXE BIOS는 파일서버로부터 부트로더를 얻어서 실행한 후 제어를 넘긴다. 파일 서버 주소와 부트로더의 파일명은 3.에서 DHCP서버로 부터 알게 된다. 5. 부트로더는 실행되면 4.와 동일한 파일서버부터 부트로더 자신의 설정파일을 얻는다. 파일서버의 주소는 PXE BIOS로 부터 부트로더로 통지된다. 6. 마찬가지로 부트로더는 실행할 커널과, 설정파일에 지정되어 있다면 initramfs의 파일을 파일서버로부터 얻어서 메모리상에 위치시킨 후 커널에 제어를 넘긴다. - PXE부트를 지원하는 NIC 최신 서버 머신에 탑재되어 있는 NIC라면 대부분 지원하고 있다. - DHCP 서버 PXE 부트에 필요한 정보를 제공하고 있다. - TFTP 서버 PXE BIOS에 필요한 파일을 얻기 위해 사용한다. atftpd등의 TSIZE 옵션을 지원하고 있는 것으로 사용할 필요가 있다. - PXE에 맞는 부트로더 PXE 부트를 지원하는 것을

데몬의 가동관리 daemontools

데몬이 비정상 종료했을 경우 daemontools :데몬 프로세스의 시작, 종료, 재시작, 프로세스가 죽었을 경우의 자동시작과 같은 데몬 프로세스 관리를 수행하기 위한 프로그램군이다. deamontools를 사용하는 이유 1. 프로세스가 죽었을 경우에 자동적으로 재시작해준다. 2. 손쉽게 데몬을 만들 수 있다.  - 제어터미널에서 분리한다.  - Current Workin Directory(cwd)를 루트(/)로 변경한다.  - 표준입출력 /dev/null(혹은 기타 파일)로 리다이렉트 한다. 데몬이 되기 위한 조건 foreground에서 동작하기 데몬의 관리방법 데몬의 신규작성 - /etc/deamon -> 데몬들을 위치시킬 디렉토리 - /etc/daemon/xxxd -> xxxd를 위한 디렉토리 샘플코드 #! /bin/sh exec 2>&1 exec \   setuidgid USERNAME \   env - -PATH="/usr/local/bin:$PATH \   envdir ./env \  /usr/local/bin/xxxd line 2: 표준에러출력을 표준출력으로 리다이렉트한다. line 3: 이 프로세스를 이후에 오는 명령으로 대체한다. line 4: 유효 사용자를 변경한다. line 5: 환경변수를 초기화하고 필요한 환경변수를 설정한다. line 6: env라는 디렉토리에 파일이 있을 경우는 이를 참조해서 환경변수를 설정한다. line 7: 데몬프로그램을 실행한다. 시그널 전송  svc의 옵션  시그널  -p  STOP  -c  CONT  -h  HUP  -a  ALRM  -i  INT  -t  TERM  -k  KILL keepalived 지접제작한 감시 스크립트 daemontools의 팁 의존하는 서비스의 시작순서 제어, 편리한 셸 함수 의존하는 서비스의 시작순서 제어 편리한 셸함수 - daemonup - daemondown - daemonstat

서버 리소스 모니터링(Ganglia)

서버 리소스 모니터링 모니터링의 목정 - CPU 사용률 - 메모리 사용률 - Load Average - 네트워크 트래픽 모니터링 툴 Munin http://munin.projects.linpro.no/ Cacti http://www.cacti.net/ Centreaon http://www.centreon.com/ Monitorix http://www.monitorix.org/ collectd http://collectd.org/ Ganglia 대량의 노드에 적합한 그래프화 툴 아파치 프로세스의 상태 그래프화  기호  의미  _  접속을 기다리고 있음  S  기동중  R  요청을 일고 있음  W  응답  K  Keep-Alive요청을 위해 대기하고 있음  D  DNS질의 중  C  접속 끊는 중  L  로그 쓰는 중  G  종료 처리중  I  idle worker를 정리중  .  프로세스 부재인 빈 슬롯 Ganglia에 그래프를 추가하는 방법 복합적인 그래프 추가 - conf.php, my-conf.php :conf.php에서 my-conf.php라는 이름의 파일을 include하도록 해서, 이번 변경에 관한 설정 항목을 my-conf.php에 작성하도록 하고 있다. - functions.php run_apache라는 함수를 추가하고 있다. 이것은 매개변수로 넘겨진 호스트로 아파치 그래프를 그릴지 여부를 boolean으로 변환하는 것이다. 이번에는 단순히 호스트명을 보고 판별하도록 하고 있다. -graph.php 행수로는 가장 많이 변경해야 하는 것이 graph.php지만 어렵지는 않다. RRDtool의 문법으로 그래프를 그리도록 지시할 뿐으로, 읽어드리는 데이터가 많으므로 행수가 많아진 것 뿐이다. -templates/default/host_view.tpl, host_view.php 호스트 뷰의 화면을 커스터마이징하고 있다. 템플릿에 functional이라는 레이블로 삽입 포인트를 추가해서 host_view.php에서는 run_apache가 참인 경우에 아파치