IT 이야기/Linux

zabbix_agent (solaris 10) 특이사항

클톡(CloudTalk) 2017. 5. 12. 17:36

Centos 및 AIX 서버에는 설치 과정 및 agent 컴파일 과정중에 특이사항은 없었습니다.

컴파일 진행 및 http://www.zabbix.com/download 사이트에서 제공하는 "Zabbix pre-compiled agents" 로 설치를 진행하셔도 됩니다.


 

solaris 10 서버에서 일반적으로 진행한 사항 입니다.


1. 컴파일을 위한 소스다운로드 , 


wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download


압축 해제 -> 컴파일 진행


./configure --enable-agent 


진행중 실패 및 error 내역


checking for actual socklen_t parameter type in socket functions... leaving undefined

checking for integer field name in union sigval of struct siginfo_t... configure: error: Unable to find integer field name in union sigval of struct siginfo_t


configure.log 내역


config.log:/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"

해당 라인: k_siginfo_t     sq_info;


그밖에 zabbix config 한 폴더안에서 찾은 내용입니다.

config.log:/usr/include/sys/signal.h:85: error: parse error before "siginfo_t"

config.log:/usr/include/signal.h:111: error: parse error before "siginfo_t"

config.log:/usr/include/signal.h:113: error: parse error before "siginfo_t"

config.log:/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"

config.log:/usr/include/sys/signal.h:85: error: parse error before "siginfo_t"

config.log:/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"

config.log:/usr/include/sys/signal.h:85: error: parse error before "siginfo_t"

config.log:/usr/include/sys/klwp.h:96: error: parse error before "k_siginfo_t"

config.log:/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"

config.log:/usr/include/sys/signal.h:85: error: parse error before "siginfo_t"

config.log:/usr/include/sys/wait.h:86: error: parse error before "siginfo_t"

config.log:/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"

config.log:/usr/include/sys/signal.h:85: error: parse error before "siginfo_t"

config.log:/usr/include/sys/klwp.h:96: error: parse error before "k_siginfo_t"

config.log:/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"

config.log:/usr/include/sys/signal.h:85: error: parse error before "siginfo_t"

config.log:/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"

config.log:/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"

config.log:/usr/include/sys/signal.h:85: error: parse error before "siginfo_t"

config.log:configure:6154: checking for integer field name in union sigval of struct siginfo_t

config.log:conftest.c:88: error: `siginfo_t' undeclared (first use in this function)

config.log:|     siginfo_t siginfo;

config.log:conftest.c:88: error: `siginfo_t' undeclared (first use in this function)

config.log:|     siginfo_t siginfo;

config.log:configure:6193: error: Unable to find integer field name in union sigval of struct siginfo_t

configure:{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for integer field name in union sigval of struct siginfo_t" >&5

configure:$as_echo_n "checking for integer field name in union sigval of struct siginfo_t... " >&6; }

configure:    siginfo_t siginfo;

configure:  as_fn_error $? "Unable to find integer field name in union sigval of struct siginfo_t" "$LINENO" 5

configure.ac:AC_MSG_CHECKING(for integer field name in union sigval of struct siginfo_t)

configure.ac:    siginfo_t siginfo;

configure.ac:  AC_DEFINE_UNQUOTED(ZBX_SIVAL_INT, $zbx_sival_int, [Define integer field name in union 'sigval' of struct 'siginfo_t'])

configure.ac:  AC_MSG_ERROR(Unable to find integer field name in union sigval of struct siginfo_t)


추가적으로 "Zabbix pre-compiled agents" 파일로 다운로드 받아서 진행을 해보았으나, 정상작동 하지 않았습니다.


원인은 gcc 버전에 있었습니다. 기본적으로 gcc 3.3.2 버전에 대한 이슈인듯 합니다.


이후 gcc 버전을 업그레이드 해보았습니다.


gcc version 3.4.6 버전을 올려서 동일하게 진행시에 완료가 된것을 확인할수 있었습니다.


gcc 파일을 구하는데 다소 시간이 걸려서.. 설치 및 에러를 잡는 과정보다 다소 오래 걸렸습니다.

현재는 solaris gcc 파일을 다운로드 받는 방법은 유료 및 MOS 계약을 하고있는 업체 대상으로 무료라고 합니다.

참조 하시기 바랍니다.


감사합니다.