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라이브러리를 추가해 주면서 뭔가를 빠뜨린 것 같습니다. 현재로서 어디가 잘 못 되었는지를 잘 몰라서 여기에 질문을 올립니다. 부디 아시는 분의 도움을 기다립니다.
댓글 달기