본문 바로가기

Technical/Development

Python - pysnmp, pymongo, python-mysql 작업 환경(OpenSuse 11.3)

점검 대상 머신에 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 > 다시 시작