기본 콘텐츠로 건너뛰기

2015의 게시물 표시

Mac에서 Wireshark 설치

맥 (OS X El Capitan)에서 Wireshark를 사용하고 싶다면 CLI를 통한 간단한 방법은 brew를 통해 설치하는 것이다. 단순히 다음과 같은 명령을 실행해 주면 된다. brew install wireshark  --with-qt --with-qt는  GUI 모드를 포함하여 설치하는 것으로 GUI 모드를 원치않는다면 해당 옵션을 삭제하면 된다. 정상적으로 설치가 완료되면 CLI를 통해 tshark 명령을 실행할 수 있다. --with-qt 옵션을 주지 않았다면 thsark만을 실행할 수 있을 것이다. tshark -i eth0 [thsark 실행화면] GUI로 실행하고 싶다면 프롬프트에서 다음과 같이 실행하면 된다. wireshark-qt [wireshark-qt 실행화면] GUI를 통해 패킷을 수집하고자 한다면 Capture 버튼 옆에 인터페이스를 선택한 후 Capture 버튼을 선택하고 상단의 왼쪽에 있는 Start capturing packets라고 툴팁이 나오는 버튼을 클릭하면 패킷 수집이 시작된다. 수집 옵션을 설정하고자 한다면 Capture Filter에 옵션을 설정하면 된다. [wireshark-qt 패킷 수집화면]

Zabbix 한글 설정

Zabbix는 기본적으로 언어를 선택할 수 있도록 되어 있으며 언어 설정은 Zabbix 메뉴중 우측 상단의 Profie에서 설정가능하다. Zabbix를 설치한 후 언어 설정을 위해 Profie를 클릭해보면 다음과 같은 화면을 볼 수 있다. Language 항목에서보면 English (en_GB)라고 기본적으로 선택되어 있는 것을 볼 수 있으며 "You are not able to choose some of the languages, because locales for them are not installed on the web server"라는 붉은색 글을 볼 수 있다. Locale가 추가 안되어 있다면 추가하도록 하자. ubuntu에서 추가 방법은 다음과 같다. sudo locale-gen ko_KR.UTF-8 위 명령을 실행 후 /etc/default/locale 파을 열어 다음과 같이 수정한다. LANG=ko_KR.UTF-8 LANGUAGE="ko_KR:ko:en_US:en" ... 위와 같이 LANG, LANGUAGE를 변경하고 저장한 후 프롬프트에서  locale를 실행 후 정상적으로 ko가 추가 되었는지 확인한다. 한글이 추가되었다면 다시 Zabbix Profile로 돌아가서 Language에 Korean (ko_KR)이 추가 되었는지 확인한다. 아마도 여러분들은 Korean (ko_KR)이 추가가 됐을 것이라는 희망을 가지고 보겠지만 안타깝게도 Korean (ko_KR)은 보이지 않을 것이다. Zabbix에서 한글을 보기위해서는 아직 수정해 주어야하는 부분이 남아있다. Zabbix는 Locale이 정상적으로 설치되어 있다고 할지라도 php 코드에서 이를 보여지지 않도록 하고 있기 때문에 php 소스코드를 수정해 주어야한다. /usr/share/zabbix/include/locale.inc.php 파일을 열어 Korean이라고 되어 있는 부분을 다음과 같이 수정한다. ...

Am I VM?(imvirt)

Cloud를 운영하다보면 VM에서 특정 애플리케이션을 실행할 때 실행되는 호스트가 VM인지 아닌지에 따라 다른 루틴을 작성해야 한다. 이때 간단히 사용할 수 있는 툴이 perl 스크립트로 작성된 imvirt이다. 이름을 보면 이 글의 제목이 왜 Am I VM인지 알 수 있을 것이다. imvirt는 옵션 지정 없이 사용 가능하며 dmidecode를 통해 가상화 기술을 검출한다. 0.9.6이상의 버전에서 검출되는 가상화 기술은 다음과 같다. 계열 검출된 컨테이너 Physical 일반적인 서버이거나 검출된 컨테이너가 없는 경우 Virtual 검출되지 않은 컨테이너에서 실행되고 있는 가상 머신 HVM: <signature> 알려지지 않은 하이퍼바이저의 시그니처 VirtualBox 버추얼박스 Microsoft 식별할 수 없는 마이크로소프트 기반 가상화 Microsoft Hyper-V 마이크로소프트 Hyper-V/Virtual Server Microsoft VirtualPC 마이크로소프트 Virtual PC VMware VMware Virtual Platform VMware (Express|ESX Server | GSX Server|Workstation) VMware Virtual Platform OpenVZ OpenVZ/Virtuosso QEMU QEMU/KVM  UML 사용자 모드 리눅스 Xen Xen hypervisor Xen (PV|HVM) Xen hypervisor lguest Lguest (x86 하이퍼바이저) ARAnyM Atari Running on Any Machine LXC Linux Containers Parallels Parallels Workstation imvirt는 기본 설치 프로그래임이 아니기 때문에 별도로 설치해주어야한다. 설치방법은 ubuntu인 경우 다음과 같이 명령어를 실행하면 된다. sudo apt-get install imvirt 설치가 되었다면 단순히 imvir...

서버설정시 물리적인 포트 찾기 (ethtool 활용 팁)

네트워크 인터페이스가 10여개 이상인 서버에서 작업을 하다보면 많은 삽질이 인터페이스 찾는데서 발생한다. 모니터를 통해 서버 네트워크 인터페이스를 설정한 후 랙 뒤로 가게되면 10여개나 되는 인터페이스 중 어떤 인터페이스에 설정 했는지 알 수 없어 초보자들이 하는 삽질은 1번 인터페이스 부터 네트워크케이블을 연결한 후 다시 랙 앞으로가 명령어를 통해 해당 인터페이스가 연결 되었는지 확인 하는 것이다. for ( i=0; i<N; i++ )    if(i = 0) 네트워크 설정;    i port에 네트워크 케이블 연결    네트워크 연결 상태 검사    if (설정된 NIC가 살았는가? == alive)       작업 종료 최대 N번까지 실행되는 이 삽질은 서버가 하나라면 운동삼아 하겠지만 많은 서버를 설정해야 하는 경우 여간 귀찮은 작업이 아닐 수 없다. 이러한 삽질은 ethtool을 사용하면 줄일 수 있다. 방법은 간단하다.   네트워크 인터페이스 설정   ethtool -p eth0 time   time 미 설정시 무한 반복됨   랙뒤로 가서 반짝거리는 포트에 네트워크 케이블 연결 ethtool을 지원하지 않는 하드웨어가 있을 수 있지만 대부분 사용하는데 문제는 없을 것으로 본다.

virt-df를 통한 VM 디스크 사용량 조회

가상 머신의 디스크  사용량을 조회하는 방법은 virt-dt를 사용하면 되며 libguestfs를 정상적으로 설치했다면 virt-dt를 사용할 수 있다. 명령어 형식은 다음과 같다.  virt-df [--options]  virt-df [--options] -d domname  virt-df [--options] -a disk.img [-a disk.img ...] virt-dt의 옵션들은 다음과 같다. --help 도움말 출력 -a file --add file 가상 머신의 디스크 이미지인 파일 추가 -a URI --add URI 원격 디스크 추가 -c URI --connect URI libvirt를 이용할 경우 지정된 URI에 연결 --csv 결과를 CSV로 출력 -d guest --domain guest 지정된 libvirt guest오부터 모든 디스크를 추가 --format=raw|qcow2|.. --format 기본 설정은 auto-detect임 -h --human-readable 읽을 수 있는 형식의 크기로 출력, csv 옵션과 동시 사용 불가 -i --inodes 블록 대신  inode 출력 --one-per-guest libguestfs 1.22부터 기본 옵션으로 이전 버전과 호환성을 위해서 남아 있음 -P nr_threads libguestfs 1.22부터 멀티 쓰레드를 통해 게스트를 동시에 시험 가능, -P 0는 자동 감지며 P -1은 단일 쓰레드임 --uuid 도메인 이름 대신 UUID 출력 -v --verbose 디버깅을 위한 verbose 메시지 출력 -V --version 버전 정보 출력 -x libguestfs API호출에 대한 추적 활성화 virt-dt를 통해 가상 머신(instance-00000001a)에 대한 디스크 상태 조회 방법은 다음과 같다. sudo virt-df -d i...

virsh 설치 및 VM 상태 조회

VM을 모니터링하기 위해서는 다양한 방법을 사용할 수 있지만 간편한 방법중 하나는 virsh를 통해 VM을 모니터링하는 것이다. vrish를 사용하기 위해서 관련 패키지를 설치해야하며 설치 방법은 다음과 같다. Redhat 계열 yum install qemu libvirt-client virt-manager \ virt-viewer guestfish libguestfs-tools virt-top Ubuntu sudo apt-get install ubuntu-virt virt-top virt-what virsh가 정상적으로 설치되었다면 virsh를 통해 가상 머신의 상태를 확인해 볼 수 있다. virsh를 사용하기 위해서는 root 권한을 가지거나 관련 권한을 설정해주어야 한다. 권한 설정에 대해서는 다음 posting에서 다룰 것이다. virsh의 기본적인 사용방법은 다음과 같다. virsh [option] ... <command> <domain> [arg] ... 지정 가능한 옵션은 다음과 같다. h, --help 도움말 출력 -v, --version[=short] 버전 정보 출력 -V, --version=long 컴파일된 드라이버와 옵션들을 포함한 버전 정보 출력 -c, --connect URI 지정된 URI에 연결 -d, --debug LEVEL 디버그 (레벨은 0~4까지 지정 가능) -l, --log FILE FILE로 로그 저장 . -q, --quiet 종료(?) -r, --readonly 읽기 전용으로 실행 -t, --timing 각 명령어에 대한 실행 시간 출력 -e, --escape string 콘솔 명령어에 대한 탈출 문자 지정. 기본으로 텔넷과 동일한 ^]로 지정됨 virsh 명령어들에서 대해서는 다음 posting에서 살펴보기로 하고 간단한 사용 예들은 다음과 같다. 로...

가상 자원에 대한 접근을 위한 libguestfs

libguestfs는 가상머신 디스크 이미지에 대한 접근 및 수정하기 위한 다양한 도구를 제공하는 라이브러리이다. 이 라이브러를 통해 여러분들은 게스트 OS 내부의 파일을 수정하거나 VM에 대한 스크립트 작성, 가상 머신의 디스크 / 메모리 사용량 통계 모니터링, 게스트 생성, 백업, VM 복제, 디스크 포멧, 디스크 조정 등 다양한 작업을 할 수 있다. libguestfs는 C 라이브러리로 되어 있어  C/C++ 관리 프로그램들과 연결 가능하다. 현재 최신 버전의 libguestfs는 1.31.16 (2015.10.09 기준)이다. 설치 방법은 다음과 같다. 페도라 또는 레드햇 엔터프라이즈 버전 sudo yum install libguestfs-tools 우분트 sudo apt-get install libguestfs-tools libguestfs-tools이 정상적으로 설치되었다면 다음과 같은 툴들이 설치 될 것이다. guestfish — 대화식 쉘 guestmount — 호스트에서 게스트 파일 시스템 마운트 guestunmount — 게스트 파일 시스템 마운트 해제 virt-alignment-scan — 가상 머신 파티션 alignment 검사 virt-builder — 속성 이미지 빌더 virt-cat — 파일 내용 출력 virt-copy-in — VM으로 파일 또는 디렉토리 복사 virt-copy-out — VM에서 파일 또는 디렉토리 복사 virt-customize — 가상 머신 수정 virt-df — 디스크 사용량 virt-dib —  safe diskimage-builder virt-diff — differences virt-edit — 파일 편집 virt-filesystems — 파일 시스템, 디바이스, LVM에 대한 정보 출력 virt-format — 디스크 삭제 및 빈 디스크 생성 virt-get-kernel — 디스크로 부터 커널 획득 virt-inspector — VM 이...

Libvirt를 통한 가상화 자원 모니터링

Libvirt를 통한 가상화된 자원에 대한 모니터링 툴은 다음과 같다. collectd libvirt-plugin은 collectd의 일부로 시스템의 가상화된 게스트에 대한 통계 데이터를 수집한다. 이를 통해 게스트 시스템에 collectd 설치 없이 CPU 사용량, 네트워크 인터페이스 및 블록 디바이스에 대한 사용량을 측정할 수 있다.  Host sFlow Host sFlow은 KVM 하이퍼바이저에서 실행되는 경량화된 에이전트로 libvirt 라이브러리를 통해 가상 머신에 대한 CPU, Memory, 네트워크, 디스크 사용량을 측정한다. Munin Guido Günther에 제공되는 플러그인은 Munin을 통해 네트워크 및 블록 I/O와 같은 다양한 지표들을 모니터링 할 수 있도록 해준다. Nagios-virt Nagios-virt는 가상화된 도메인에 대한 모니터링을 Nagios에 추가하기 위한 설정 도구이다. 이 툴을 Xen 또는 QEMU/KVM에 대해 새로운 Nagios 설치시 또는 기존 Nagios와 통합하기 위해 사용할 수 있다.  Zenoss Zenoss libvirt Zenpack 는 가상 서버 모니터링을 지원하며 KVM, QEMU, VMware ESX, VMware GSX에서 테스트 되었다. 참고 : https://libvirt.org/apps.html

클라우드 컴퓨팅 정의

클라우드 컴퓨팅은 근래의 컴퓨팅환경에서의 큰 화두중 하나라고 할 수 있다. 서비스 환경을 위한 인프라 뿐아니라 서비스를 제공하기 위한 플랫폼, 네트워크 인프라의 핵심을 모두 클라우드화하고 있으며 기본 배경은 클라우드 인프라를 통해 비용 절감(TCO, CAPAX, OPEX)를 절감하려고 하는 것이라고 할 수 있다.  클라우드 컴퓨팅에 대해 누가 먼저 정의를하고 사용했는가에 대해서는 논란이 될 수 있지만 1960년대  John McCarthy 교수가 처음 기본적인 아이디어 토대를 마련했다고 할 수 있다. 그는 컴퓨터가 미래에는 전기, 수도, 전화와 같은 하나의 공익 사업(Public Utility)으로 전망했다. 또한 Douglas Parkhil은 그의 저서인 "The Challenge of the Computer Utility)를 통해 클라우드 컴퓨팅에 대한 특징을 처음으로 언급하였다. 클라우드 컴퓨팅은 전화망에서 사용되는 가상 사설 네트워크(Virtual Private Network)와 같은 확장이라고 언급하였다. 클라우드는 2007년 IBM에서 "Blue Cloud"를 발표한 후 구글과 IBM이 이 분야에서 협력하기로 하기 전까지 전까지 다소 의미가 불분명한(실체없는) 단어였다고 할 수 있다. 참고로 IBM에서 클라우드를 처음 개발했지만 이를 사업적으로 성공시킨 곳은 공용 클라우드의 대표 사업자인 아마존이다.  그렇기 때문에 클라우드 용어에대해서는 2000년대 후반에 보다 구체적으로 정의되었다. 어떤 용어가 정확하다고 할 수 없겠지만 현재 대표적으로 언급되는 클라우드에 대한 4가지 정의는 다음과 같다. Buyya - "A Cloud is a type of parallel and distributed system consisting of a collection of inter-connected and virtualized computers that are dynamically provisioned and pres...

Zabbix(2.2) 설치하기

Ubuntu에서 Zabbix 2.2 설정에 관한 내용입니다. 먼저 PPA 리스트를 텍스트 편집기를 통해 편집한다. sudo nano /etc/apt/sources.list 다음과 같은 줄을 추가한다. # Zabbix Application PPA deb http://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main deb-src http://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main apt-get이 해당 사이트를 신뢰할 수 있도록 다음과 같이 PPA키를 추가한다. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C407E17D5F76A32B 이제 Zabbix를 설치하기 위해 update를 실행하고 관련 패키지들을 설치한다. sudo apt-get update sudo apt-get install zabbix-server-mysql php5-mysql zabbix-frontend-php mysql 설치시 root의 패스워드를 묻는 창이 나오는데 root 계정의 패스워드를 입력하면 된다. Zabbix 서버 설정 서버와 관련된 설정 파일은 zabbix_server.conf이며 /etc/zabbix 디렉토리 하위에 위치한다. 편집기로 해당 파일을 연후 설정하며 본 예에서는 단순히 DB관련 설정만 수정하였다. sudo vi /etc/zabbix/zabbix_server.con 다음과 같이 수정한다. DBName=zabbix DBUser=zabbix DBPassword=zabbix MySQL 설정 데이터베이스를 연동하기 위해 먼저 해야될 일은 데이터베이스 사용자 계정 및 권한 추가이다. mysql 루트 사용자로 데이터베이스를 접속한다. mysql -u root -p 위 명령을 실행한 후 Enter password: 프롬프트가 보이면 설치시 입력했던 패스워드를 입력...