SNMP 소스에 mysql관련 라이브러리를 추가하여 설치하였는데..
안녕하세요. 저는 레드햇 7.1을 사용하는데 SNMP 5.1.2의 소스를 다운받아서 mysql관련 부분을 추가해 주었습니다.
추가한 부분은 아래와 같습니다.
1../agent/snmpd.c
=======================================
/* Insery by Let */
#include <mysql.h>
#include "getprofile.h"
#define SERV_PORT   2005
#define INADDR_NONE_   0xffffffff
extern int RecvResult();
extern struct sockaddr_in servaddr;
////////////////
extern MYSQL db_conn;
extern MYSQL_RES *db_res ;
extern MYSQL_ROW db_row ;
extern int disconnect_count ;
/* End */
=======================================
2. ./agent/Makefile
=======================================
LIBS  = ../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) -ldl -lcrypto -lelf -lm  -lmysqlclient -lz
OUR_AGENT_LIBS = $(INSTALLLIBS) $(HELPERLIB) $(LIBS) -L/usr/lib/mysql
CPPFLAGS= -I../include -I$(top_srcdir)/include \		  -I.. -I$(srcdir)/.. -I$(srcdir)/../snmplib \
		  -I$(srcdir) -I. -I$(srcdir)/mibgroup - Imibgroup -I/usr/include/mysql
========================================
3. ./apps/Makefile
=======================================
LIBS	= $(USELIBS) -lcrypto -lelf -lm 
TRAPLIBS	= $(USETRAPLIBS) -ldl -lcrypto -lelf -lm -lmysqlclient -lz
======================================
이렇게 SNMP의 소스를 수정하고 make 하고 make install하면 설치는 에러없이 정상적으로 됩니다.
그러나 snmpd를 실행시켜보면 
snmpd error while loading shared librariessnmpdundefined symbol db_conn
이런 에러가 납니다. 
snmpd를 실행시킬 수 없고 SNMP가 로컬에서 동작하지 않아서 소스에 Mysql관련 라이브러리를 추가하지 않은 깨끗한 SNMP를 다운받아서 깔아봤습니다.
그랬더니 로컬과 원격지 모두 잘 동작하였습니다.
아마 mysql라이브러리를 추가해 주면서 뭔가를 빠뜨린 것 같습니다. 현재로서 어디가 잘 못 되었는지를 잘 몰라서 여기에 질문을 올립니다. 부디 아시는 분의 도움을 기다립니다.


댓글 달기