Cannot launch NetXMS Agent on AIX. Load library error

Started by zetomatoz, June 21, 2013, 01:17:18 PM

Previous topic - Next topic

zetomatoz

Hello,

After looking on the forum, I am still struggling to launch my NetXMS agent on an AIX 6.1.8 platform.
My goal is to parse some log files via the Logwatch subagent.
I got my NetXMS complete system running under Windows 2008 Server. Really smoothly. Good job! 
Now, I would appreciate your help to extend NetXMS on AIX systems.

I installed the NetXMS agent on AIX from the precompiled binaries include in the package: nxagent-1.2.7-aix5.3-ppc64.tar.gz
I had to use this precomiled binaries because I cannot use any C/C++ compiler on the current system.

I extracted the content of this package under my specific directory: /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/

Then I tried to launch the nxagentd executable and got the following:

$ /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/bin/nxagentd
exec(): 0509-036 Cannot load program /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/bin/nxagentd because of the following errors:
        0509-150   Dependent module libnxdb.a(libnxdb.so.1) could not be loaded.
        0509-022 Cannot load module libnxdb.a(libnxdb.so.1).
        0509-026 System error: A file or directory in the path name does not exist.


Either with or without any configuration file parameter ( -c ) defined, I obtain the same error.
I can see the module libnxdb.a under my specific directory: /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/lib/

Any ideas? How could I solve this problem?

THANKS!!!

Victor Kirhenshtein

Hi!

Agent is built with prefix /opt/netxms, so path to internal libraries embedded in binary is /opt/netxms/lib. Try to set environment variable LIBPATH before running agent as following:

$ LIBPATH=/apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/lib:$LIBPATH
$ export LIBPATH
$ /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/bin/nxagentd

or just run agent as following:

$ LIBPATH=/apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/lib /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/bin/nxagentd

Because of different path, you may also need to load platform subagent manually. Add the following lines to nxagentd.conf:

EnableSubAgentAutoload = no
SubAgent = /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/lib/netxms/aix.nsm


Best regards,
Victor

zetomatoz

Hello Victor,

Thanks a lot for your quick reply. It solved the problem.

Right now, however, I have the following error:

$ LIBPATH=/apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/lib /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/bin/nxagentd -D9
exec(): 0509-036 Cannot load program /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/bin/nxagentd because of the following errors:
        0509-022 Cannot load module /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/lib/libnetxms.a(libnetxms.so.1).
        0509-150   Dependent module libcrypto.a( libcrypto64.so.0.9.8 ) could not be loaded.
        0509-022 Cannot load module libcrypto.a( libcrypto64.so.0.9.8 ).
        0509-026 System error: A file or directory in the path name does not exist.
        0509-022 Cannot load module nxagentd.
        0509-150   Dependent module /apps/TRUE/netxms/nxagent-1.2.7-aix5.3-ppc64/opt/netxms/lib/libnetxms.a(libnetxms.so.1) could not be loaded.
        0509-022 Cannot load module .


It looks like the libcrypto64.so.0.9.8 is missing from the package nxagent-1.2.7-aix5.3-ppc64. I cannot see it under my ...../opt/netxms/lib directory.

Could you send this libcrypto64.so.0.9.8 shared object to me? Or any other ideas?

Thanks.

Regards,
Thomas

zetomatoz

Hello,

Any information on this libcrypto api? Thanks.

Regards,
Thomas

Victor Kirhenshtein

Hi!

On my system, it looks like system library, located in /usr/lib:


tower:/# ldd /opt/netxms/bin/nxagentd
/opt/netxms/bin/nxagentd needs:
         /opt/netxms/lib/libnxdb.a(libnxdb.so.1)
         /opt/netxms/lib/libnetxms.a(libnetxms.so.1)
         /usr/lib/libxnet.a(shr_64.o)
         /usr/lib/libpthread.a(shr_xpg5_64.o)
         /usr/vacpp/lib/libC.a(shr_64.o)
         /usr/vacpp/lib/libC.a(ansi_64.o)
         /usr/lib/libc.a(shr_64.o)
         /opt/netxms/lib/libnxexpat.a(libnxexpat.so.1)
         /opt/netxms/lib/libnxtre.a(libnxtre.so.5)
         /usr/lib/libdl.a(shr_64.o)
         /usr/lib/libcrypto.a(libcrypto64.so.0.9.8)
         /usr/lib/libiconv.a(shr4_64.o)
         /usr/lib/libc.a(pse_64.o)
         /unix
         /usr/vacpp/lib/libC.a(shrcore_64.o)
         /usr/vacpp/lib/libC.a(ansicore_64.o)
         /usr/lib/libcrypt.a(shr_64.o)
         /usr/lib/libpthreads.a(shr_xpg5_64.o)


But it's AIX 5.3. Most likely your system has newer libcrypto.

Here is link to download /usr/lib/libcrypto.a from my system: https://www.dropbox.com/s/gxqodx91t0099oz/libcrypto.a.

Best regards,
Victor

zetomatoz

Hi Victor,

GREAT!!!  ;D Problem solved! Thanks for the lib and your help.

Indeed some updates have been done between our two different AIX platforms.
I have only a libcrypt.a (no libcrypto.a) under the default directory /usr/lib/
I guess it will be something to track during an update.

So I copied your given libcrypto.a into my specific directory.
Everything looks to run properly on AIX 6.1.8 now.

Good job again!

Regards,
Thomas


Victor Kirhenshtein

Hi!

I found out that libcrypto is shipped with AIX, in openssl.base fileset, but probably it is not installed by default. This is how it looks on my machine:


tower:/# lslpp -w /usr/lib/libcrypto.a
  File                                        Fileset               Type
  ----------------------------------------------------------------------------
  /usr/lib/libcrypto.a                        openssl.base          File
tower:/# lslpp -L openssl.base
  Fileset                      Level  State  Type  Description (Uninstaller)
  ----------------------------------------------------------------------------
  openssl.base            0.9.8.1800    C     F    Open Secure Socket Layer


I found this on IBM web site:

The OpenSSL package is available as installp in the AIX Version 6.1 Expansion Pack. The package name is Openssl-0.9.8.8, and it can be installed using SMIT. (http://pic.dhe.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.ntl%2FRELNOTES%2FSC23663002.htm).

Best regards,
Victor