점검 대상 머신에 SNMP를 설정(SNMP agent; server side)하고 python 프로그램(SNMP manager; client side)로 모니터링 데이터를 수집하기 위한 셋업 절차.


OpenSuse 11.3 repository 에는 pysnmp가 포함되어 있지 않으며, pymongo 는 OpenSuse 12.* 에서도 공식 지원하지

않으므로 수작업으로 설치해야 한다(python 2.6.5 기준)


* pysnmp : python 환경에서 NET-SNMP Agent/Manager 개발시에 필요한 API

* pymongo : python 환경에서 mongodb 관련 application 개발시에 필요한 API/driver


[Client - pysnmp 설치]

# zypper in -y python-devel

# zypper in -y python-setuptools

# zypper in -y git

# curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py

# python get-pip.py

# pip install pysnmp-mibs

# wget http://downloads.sourceforge.net/project/pysnmp/pysnmp/4.2.3/pysnmp-4.2.3.tar.gz

# tar xvzf pysnmp-4.2.3.tar.gz

# cd pysnmp-4.2.3

# python setup.py install


[Client - pymongo 설치]

# zypper in -y git

# git clone git://github.com/mongodb/mongo-python-driver.git pymongo

# cd pymongo/

# python setup.py install


[Client - python-mysql 설치]

# zypper in -y python-mysql


[Server - SNMP agent 설치]

# zypper in -y net-snmp

# chkconfig --add snmpd

# vi /etc/snmp/snmpd.conf

# service snmpd start


[snmpd.conf 내용 - snmp v 1, 2 & linux 기준]

###############################################################################

# Access Control

###############################################################################

# com2sec sec.name source community

com2sec mysec     1.1.1.1  mycommunity # Client gateway ip 또는 cidr

com2sec mysec     10.10.1.0/24  mycommunity # Client gateway ip 또는 cidr

com2sec mysec     localhost mycommunity


# group groupname sec.model  sec.name

group mygroup        v1         mysec

group mygroup        v2c       mysec


# view attr incl/excl subtree mask

view all    included  .1                               80


# access groupname sec.model sec.level match  read   write  notif

access mygroup ""      any       noauth    exact  all    none   none

access mygroup ""      any       noauth    exact  all    all    none


rwuser initial priv

createUser initial MD5 auth_pass DES priv_pass


# system info.


# to view with snmpwalk, snmpwalk -v 2c -c mycommunity localhost system

syslocation     My Office

syscontact      administrator (xxx@yyy)

# sysname      aaa # Not mandatory


# cpu load

# to view with snmpwalk, snmpwalk -v 2c -c mycommunity localhost .1.3.6.1.4.1.2021.10

#load 12 14 14 # uncomment if necessary


# disk avvailable space

# to view with snmpwalk, snmpwalk -v 2c -c mycommunity localhost .1.3.6.1.4.1.2021.9

#disk / 100000 # uncomment if necessary


# process check

# to view with snmpwalk, snmpwalk -v 2c -c mycommunity localhost .1.3.6.1.4.1.2021.2

# Daemons or other application process names to check

proc tomcat

proc lighttpd

proc mydaemon_process


# shell exec.

# to view with snmpwalk, snmpwalk -v 2c -c bryan localhost .1.3.6.1.4.1.2021.8

exec myscript1 /root/bin/script1.sh param

exec myscript2 /root/biin/script2.sh param1 param2


[snmp 서비스 설정 - Windows 2008 기준]

1. 서버 관리자 시작

시작 > 제어판 > (모든 제어판 항목) > 프로그램 및 기능 > 윈도우즈 기능 사용/사용 안함 => 서버관리자 실핼

또는

시작 > 관리도구 > 서버관리자 실행


2. 서버관리자 설정

기능 > 기능 추가

기능 성택창에서 SNMP 서비스 / SNMP WMI 공급자 Check, 설치


3. 방화벽 설정

시작 > 관리도구 > 고급보안이 포함된 Windows 방화벽

인바운드 규칙

SNMP 서비스 > 속성 >

- 일반: 사용함, 연결 허용

- 고급: 에지 통과 허용


4. 서비스 설정

시작 > 관리도구 > 서비스

SNMP Service > 속성

- 에이전트: 적절히 설정

- 보안: 받아들인 커뮤니티 이름 => mycommunity 추가, 확인

SNMP Service > 다시 시작








저작자 표시 비영리 변경 금지
신고
블로그 이미지

Barracuda

Bryan의 MemoLog. 쉽게 익혀 보는 IT 실습과 개념원리, 코딩 세계의 얕은 맛보기들, 평범한 삶 주변의 현상 그리고 進上, 眞想, 진상들

Opensuse 11.3, 12.1 각각에 대해 2회에 걸쳐서 정리

* howtoforge.com 내용 참조, 테스트 실행 & 보완


1. Lighttpd & php5 환경 설정


# zypper in -y lighttpd

# chkconfig --add lighttpd

# chkconfig lighttpd on

# service lighttpd start


# zypper in -y php5-fastcgi


* 아래 라인을 찾아서 un-comment

# vi /etc/php5/fastcgi/php.ini 

cgi.fix_pathinfo=1


* 아래 라인을 찾아서 un-comment

# vi /etc/lighttpd/modules.conf

include "conf.d/fastcgi.conf"


server.modules = (

...

  "mod_auth",

...

)


* 아래 라인을 추가

# vi /etc/lighttpd/lighttpd.conf

include "conf.d/auth.conf"


* 아래 라인들을 un-comment 하고 내용을 수정

# vi /etc/lighttpd/conf.d/auth.conf

auth.debug = 2

auth.backend = "plain"

auth.backend.plain.userfile  = "/etc/lighttpd/lighttpd.user"


auth.require = ( "/" =>

                      (

                        "method"  => "basic",

                        "realm"   => "Password protected area",

                        "require" => "user=loginid"

                      ),

                    )


* 아래 로그인 정보를 등록하고 저장

# vi /etc/lighttpd/lighttpd.user

loginid:loginpassword


* 아래 라인이 있는지 확인

# vi /etc/lighttpd/conf.d/fastcgi.conf

server.modules += ( "mod_fastcgi" )


* 아래 부분을 찾아서 un-comment

fastcgi.server = ( ".php" =>

                   ( "php-local" =>

                     (

                       "socket" => socket_dir + "/php-fastcgi-1.socket",

                       "bin-path" => server_root + "/cgi-bin/php5",

                       "max-procs" => 1,

                       "broken-scriptfilename" => "enable",

                     )

                   ),

                   ( "php-tcp" =>

                     (

                       "host" => "127.0.0.1",

                       "port" => 9999,

                       "check-local" => "disable",

                       "broken-scriptfilename" => "enable",

                     )

                   ),


                   ( "php-num-procs" =>

                     (

                       "socket" => socket_dir + "/php-fastcgi-2.socket",

                       "bin-path" => server_root + "/cgi-bin/php5",

                       "bin-environment" => (

                         "PHP_FCGI_CHILDREN" => "8",

                         "PHP_FCGI_MAX_REQUESTS" => "10000",

                       ),

                       "max-procs" => 2,

                       "broken-scriptfilename" => "enable",

                     )

                   ),

                )

* 위의 옵션은 소규모 접속일 경우이고, 일반적인 다중 접속 사이트일 경우 아래와 같이 규모에 맞게 적당히 옵션을 조정한다.

"PHP_FCGI_CHILDREN" => "16"

"max-procs" => 5


# service lighttpd restart


* lighttpd의  default 문서 홈디렉토리는 /srv/www/htdocs 이다


# vi /srv/www/htdocs/info.php

<?php

phpinfo();

?>


* 브라우저로 접속 확인




2. MySQL과 utility 패키지 설치


* Web 을 통하지 않고 직접 DB접속을 위해 접속 클라이언트를 사용할 경우에는 아래와 같이 클라이언트를 설치한다.

# zypper in -y mysql-community-server-client


* MySQL 및 일반적으로 많이 사용하는 드라이버 설치

# yast2 -i php5-mysql php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-pear php5-sysvmsg php5-sysvshm


3. mongodb 드라이버 설치


* pecl.php.net 사이트를 이용하여 최신 버전의 php mongo 드라이버를 찾아서 다운로드 한다.


# zypper in -y php5-devel

# wget http://pecl.php.net/get/mongo-1.3.0beta2.tgz

# tar xvzf mongo-1.3.0beta2.tgz; cd mongo-1.3.0beta2

# phpize

# ./configure

# make

# make install

# ldconfig

# vi /etc/php5/fastcgi/php.ini -> 아래 라인을 추가

extension=mongo.so


# service lighttpd restart


* 1의 과정과 같이 브라우저를 통해 php 환경에 맞게 설치된 드라이버들을 최종 확인한다.





저작자 표시 비영리 변경 금지
신고
블로그 이미지

Barracuda

Bryan의 MemoLog. 쉽게 익혀 보는 IT 실습과 개념원리, 코딩 세계의 얕은 맛보기들, 평범한 삶 주변의 현상 그리고 進上, 眞想, 진상들


* 본 정보는 Opensuse 12.1 에도 그대로 적용 가능하다.

Opensuse 에 기본으로 제공되는 scim(xim)은 terminal 에서 한글 입력이 거의 안된다. 무슨 말인지 모르겠다면 직접 설치해서 gedit 이나 chrome 에서 한글을 입력해 보면 된다. 아마도 '우리는' 이라고 치면 '우루는' 이라고 입력되는 꼬락서니를 볼 수 있을 것이다.

* 선행 패키지 설치(su - 로 root 로 변신)

  # zypper in -y gcc make autoconf libhangul libhangul-devel

  -> http://code.google.com/p/libhangul/downloads/list 에서 libhangul 최신 버전 확인

  -> wget http://libhangul.googlecode.com/files/libhangul-0.1.0.tar.gz

  -> configure --prefix=/usr; make; make install



* Nabi source download & build

  # wget http://kldp.net/projects/nabi/download/5926?filename=nabi-0.99.9.tar.gz

  -> http://code.google.com/p/nabi/downloads/list 에서 최신 버전 확인 

  -> wget http://nabi.googlecode.com/files/nabi-0.99.11.tar.gz


  # tar xvzf nabi-0.99.11.tar.gz

  # ./configure --prefix=/usr
  # make && make install


* nabi 설정

  # vi /etc/X11/xim.d/nabi

  OLD_PATH=$PATH
  PATH=/usr/bin:/usr/X11R6/bin:$PATH

  if ! type -p nabi > /dev/null 2>&1 ; then
    echo "nabi is not available."
    return 1
  fi

  export XMODIFIERS="@im=nabi"
  export GTK_IM_MODULE=xim
  export QT_IM_SWITCHER=imsw-multi
  export QT_IM_MODULE=xim

  case $WINDOWMANAGER in
    *kde|*windowmaker|*wmaker)
    nabi -wm -wait &
    ;;
  *)
    nabi &
    ;;
  esac

  PATH=$OLD_PATH

  # success:
  return 0


# vi /etc/sysconfig/language, 아래 내용으로 편집/수정

  INPUT_METHOD="nabi"



* Logout하고 다시 Login 하면 우측하단 Tray에서 nabi icon 을 확인할 수 있다 


저작자 표시 비영리 변경 금지
신고
블로그 이미지

Barracuda

Bryan의 MemoLog. 쉽게 익혀 보는 IT 실습과 개념원리, 코딩 세계의 얕은 맛보기들, 평범한 삶 주변의 현상 그리고 進上, 眞想, 진상들


앞 선 포스팅(Fedora 14 Dom0 Kernel (Xen 4.0.1-6) 설치 - Virtual Machine 사용을 위한 준비)의 후속으로 동일 환경에서 Opensuse 11.3 vm(pv)를 설치해 보자.

Network install은 ftp, http, nfs 등의 몇 가지 방법이 있다. 몇 개월 전의 포스팅에서 Local web server를 이용한 network install을 다루어 본 적이 있었던 것 같다. 이번에는 CDRom이나 DVD  또는 ISO 이미지가 없을 경우에 인터넷만 연결되어 있다면 어디서나 간편하게(사실 시간은 좀 걸릴 것이다. remote 공개된 repository server를 통해 부팅 및 설치를 해야 하므로...) 설치해 보는 방법을 테스트 해 본다.

* 주의 : 
virt-manager는 libvirt의 기능을 통해 domU를 생성하게 되는데, 이때 vm image file은 /var/lib/libvirt/images 에 생성된다. 따라서 root volume의 공간이 충분하지 않을 경우 vm image 파일의 크기에 제약이 따른다. 이 때는
# service libvirtd stop
# vi /etc/libvirt/storage/default.xml
...
  <path>/home/vmimages</path> => vm image를 생성할 디렉토리 지정
...
# service libvirtd start
의 과정을 거친 후 아래 단계를 진행한다

# virt-manager &
또는 Applications > System Tools > Virtual Machine Manager 실행

Step 1 of 5

Toolbar의 Create a new virtual machine 선택
-> New virtual machine name 입력, Connection은 localhost(Xen)
Choose how ...
-> Network Install(HTTP, FTP or NFS) 선택

'Forward' click
Step 2 of 5

Provide ... operating system install URL
-> URL Options 는 바꾸지 말고 비워 놓는다
Automatically detect operating system ... 을 Check한다.
-> 자동으로 Repository를 읽어 OS type: Linux, Version: Unknown 을 detect할 것이다

'Forward' click
- ftp 가 아닌 http 로 URL을 등록해야 함에 주의
- 북미에서 가까운 경우 URL을 http://download.opensuse.org/distribution/11.3/repo/oss/ 로 등록하면 더 빠를 것 같다.
Step 3 of 5

Memory(Ram), CPU 갯수를 입력, 선택

'Forward' click
Step 4 of 5

Enable storage for this virtual machine을 Check
-> Create a disk image on the computer's hardware 선택, 가상 disk size 입력
-> Allocate entire disk now 를 unCheck
(Check하면 서버의 파티션(정확히는 위에서 설정한 vmimage 생성 영역)의 남아 있는 전체 공간 크기 만큼 할당하게 되므로 주의 !!)

'Forward' click
Step 5 of 5

Ready to begin installation of xxxxxx...
...
Customize configuration before install을 Check

Advanced option 선택
-> Virtual network 'default' NAT 또는 specify shared device name 선택(이 경우  Bridge name 을 입력: br0 또는 xenbr0 등...)

Virt Type: paravirt 또는 fullvirt 중 선택
Architecture: x86_64(intel), i686(AMD) 선택

'Finish' click

Begin installation 버튼이 맨 위에 배치된 Virtual Machine spec customize 창이 뜬다

- 각 설정을 리뷰하면서 확인
- Audio는 일반적으로 사용하지 않을 것이므로, 아래쪽의 Remove 버튼으로 삭제
(기본적으로 Audio 항목이 뜨지 않게 하려면 Virtual Machine Manager에서 Edit>Preference 에서 설정할 수 있다)
- 여기서 부터는 창을 닫더라도 설치 과정이 진행되어 버리므로(버그 인듯하다) 잘 못 설정된 항목이 있을 경우 중간에 처음부터 다시 시작해야 한다

맨 위의 'Begin installation' Click
Creating Virtual Machine 윈도우가 뜨면서

The virtual machine is now being created. Allocation .... 메시지와 함께
Progress bar가 오락 가락하는 모습이 나타난다
>>> Linuxrc v3.4.14 (Kernel 2.6.34-12-xen) <<<

Make sure that number 1 is in your drive
-> Back 선택, Enter
Select the language
-> English 선택, Enter
Choose a keyboard map
-> English (US) 선택, Enter
Main Menu
-> Start Installation 선택, Enter
Start Installation
-> Start Installation or Update 선택, Enter
Choose the source medium
-> Network 선택, Enter
Choose the network protocol
-> HTTP 선택, Enter
Automatic configuration via DHCP?
-> Yes 선택, Enter (또는 No 선택, network 정보 입력: 192.168.100.55/24 형식)
Enter the IP address of the HTTP server
-> ftp.novell.co.jp
Enter the directory on the server
-> /pub/opensuse/distribution/11.3/repo/oss/
Do you need a username ...
-> No 선택, Enter
Use a HTTP proxy?
-> No 선택, Enter

여기서부터 Loading installation System (1/6)...(6/6)까지 자동 진행

No new Driver Updates found -> Enter

Text booting 화면으로 전환되고 Found a linux console terminal... 메시지를 끝으로
 시간이 조금(또는 많이) 흐른 후, Graphical open suse 설치화면이 나타난다.

여기서 부터는 대화형으로 설치를 진행할 수 있으므로 이후는 생략
(Firewall 설정에서 ssh 접속을 허용해 놓으면 ssh로 접속하여 사용할 수 있다
"ssh포트를 열고 ssh서비스 활성화" 선택)
설치 완료 후

# virt-viewer domain-name
# virt-viewer id
등으로 vm에 접속하여 사용 가능하다(또는 virt-manager 에서 vm선택 후 Open을 해도 되겠다)

# xm info
# xm list
등의 기본적인 xen command line을 통해 사용할 수도 있으니 이후는 취향에 맞게 알아서 사용하면 된다.

- Barracuda -


저작자 표시 비영리 변경 금지
신고
블로그 이미지

Barracuda

Bryan의 MemoLog. 쉽게 익혀 보는 IT 실습과 개념원리, 코딩 세계의 얕은 맛보기들, 평범한 삶 주변의 현상 그리고 進上, 眞想, 진상들


Host(Dom0)
 - Lenovo thinkpad T60, Ram1.5g
 - OpenSUSE 11.3, Kernel 2.6.34.7-0.5 x86_64
 - Xen 4.0.1_01-84.1 x86_64
Guest
 - Windows XP SP2

1. Xen & libvirt upgrade

openSUSE 11.3에서 virtualization package를 설치하면 Xen 4.0.0이 설치된다.
우선 이를 4.0.1 최신 버전으로 upgrade를 진행한다.
Xen & Kernel rebuild로 진행하는 방법도 있겠으나 여기서는 rpm 설치를 통해서 진행하는 방법을 택한다.

* Reboot후 xen kernel이 아닌 일반 kernel로 시스템을 시작한다.
* wget으로 아래의 url내의 file들을 내려 받는다

http://download.opensuse.org/repositories/Virtualization/openSUSE_11.3/x86_64/

xen-libs-4.0.1_01-84.1.x86_64.rpm
xen-tools-4.0.1_01-84.1.x86_64.rpm
vm-install-0.4.27-49.1.x86_64.rpm
virt-manager-0.8.5-43.1.x86_64.rpm
qemu-0.12.4-8.1.x86_64.rpm
libvirt-0.8.5-74.4.x86_64.rpm
libvirt-client-0.8.5-74.4.x86_64.rpm
libvirt-devel-0.8.5-74.4.x86_64.rpm
libvirt-python-0.8.5-74.4.x86_64.rpm

zypper remove 로 xen, xen-tools, xen-libs, vm-install, virt-manager, qemu, libvirt-client, libvirt-devel, libvirt-python을 삭제

* 다운로드 받은 rpm들을 설치한다
* 패키지들의 Dependency를 잘 체크해서 설치하고 reboot, Xen kernel로 시스템 시작

2. VM 설치 준비

* Window XP SP2 iso image file 준비 (/home/vmimages/windows_iso/winxp.iso)
* 가상 Disk image와 config를 저장할 디렉토리 생성(/home/vmimages/windows_disk)

* 가상 Disk image를 위한 sparse file 생성(16GB)
dd if=/dev/zero of=/home/vmimages/windows_disk/winxp_disk0 bs=4k seek=4096k count=1

* HVM 용 config 작성

cd /home/vmimages/windows_disk/
vi winxp_hvm.cfg
----------------------------------------------------------------------
name = 'winxp'
kernel = '/usr/lib/xen/boot/hvmloader'
builder = 'hvm'
vcpus = 1
cpus = "1"
memory = 256
device_model = '/usr/lib/xen/bin/qemu-dm'
disk = [ 'tap:aio:/home/vmimages/windows_disk/winxp_disk0,ioemu:hda,w',
           'file:/home/vmimages/windows_iso/winxp.iso,hdc:cdrom,r' ]
vif = [ 'type=ioemu, bridge=br0' ]
boot = "dc"
vnc = 1
vncviewer = 1
sdl = 0
pae = 0
acpi = 1
apic = 1
----------------------------------------------------------------------

3. VM create

xm create winxp_hvm.cfg
TightVNC를 통해 VM에 접속하고 Window xp 설치를 진행(가상머신 관리자>가상머신 콘솔 접속)

* 메모리 여유가 작아서 tail -100f /var/log/xen/xend.log 에서 메모리 할당 오류가 날 경우에는
/boot/grub/menu.lst 의 xen kernel line에 "dom0_mem=1024" 를 추가하여 dom0를 위한  minimum 메모리를 확보해야 한다


저작자 표시 비영리 변경 금지
신고
블로그 이미지

Barracuda

Bryan의 MemoLog. 쉽게 익혀 보는 IT 실습과 개념원리, 코딩 세계의 얕은 맛보기들, 평범한 삶 주변의 현상 그리고 進上, 眞想, 진상들