Saturday, August 8, 2009

ITNM 3.8 Running as SUID root on AIX 6.1 Requires GSKit 7.0.4.14

If you plan to install ITNM 3.8 on AIX 6.1 as a non-root user and have it run as SUID root (as opposed to having the processes actually run as root, which is your other option after you go through the install), you will need to install at least GSKit 7.0.4.11.

The reason I'm posting this is that you may unwittingly encounter these issues:

1. If you've already installed an ITM 6.2.1 agent on your AIX, you've got GSKit installed, but it's the wrong version. The version included with ITM 6.2.1 is 7.0.3.18. This version will cause several of the ITNM processes to fail.

2. ITNM actually ships with the correct GSKit libraries, but it simply copies those libraries to your AIX machine underneath your ITNM install location. So you might think that you can just set your LIBPATH environment variable to use these GSKit libraries. HOWEVER, you would be wrong - when a process is running as SUID root on AIX, the ONLY directories it searches for necessary libraries are those that are HARD-CODED into the binary! You can see this library path for any binary with the command 'dump -Hv executable_file_name'.

3. If you choose to run ITNM as root (rather than SUID root), you won't have this problem because you can just set the LIBPATH environment variable appropriately.

3 comments:

Henrique said...

Hi, thanks for the GSKit tip.

A similar problem that I´m facing.
I am running the ITNM 3.8 with the core processes running as non-root (what means SUID root) so I have no environment variables for ncp_poller, by example. And I created the topology database in another server, where I have a Oracle database. The connection between ITNM and my Oracle is working fine for all the process, except for those running as SUID root. Does someone have any clue how to solve that? I guess I need to configure the Oracle client and the connection without using any environment variables, but I´m not sure if it is enough.

Thanks,
Navarro

Frank Tate said...

I'm not sure. Which environment variables are needed by your Oracle client? Also, what are the exact error messages you're seeing?

Henrique said...

Hi Frank,
The Oracle client here need variables like TNS_ADMIN and ORACLE_HOME. The error messages are:

01/12/10 12:10:11: Warning: [515t] CNcpDbPoller.cc(121) Cannot connect to database : CNcpOracleDbh.cc line 194: Error: OCI_INVALID_HANDLE dbId: NCMONITOR
01/12/10 12:10:11: Warning: [515t] CDbSnmpTargetFactory.cc(79) An unexpected nil pointer reference has been found. Cannot get domain information from databas
e
01/12/10 12:10:11: Warning: [515t] CDbSnmpTargetFactory.cc(195) Cannot connect to database : CNcpOracleDbh.cc line 194: Error: OCI_INVALID_HANDLE dbId: NCMON
ITOR
01/12/10 12:10:11: Warning: [515t] CChangedConfigPoller.cc(74) SNMP target poller unable to connect to the database
01/12/10 12:10:11: Warning: [515t] CNcpPollerApplication.cc(615) No changes to the SNMP configuration will be picked up without restarting the poller
01/12/10 12:10:12: Warning: [772t] CMib.cc(1250) Cannot connect to database : CNcpOracleDbh.cc line 194: Error: OCI_INVALID_HANDLE dbId: MIB
01/12/10 12:10:12: Warning: [772t] CMib.cc(174) An unexpected nil pointer reference has been found. cannot initialise database connection for 'MIB'
01/12/10 12:10:12: Warning: [772t] CNcpDbPoller.cc(121) Cannot connect to database : CNcpOracleDbh.cc line 194: Error: OCI_INVALID_HANDLE dbId: NCIM
01/12/10 12:10:12: Warning: [772t] CEntityAlert.cc(65) Cannot connect to database : CNcpOracleDbh.cc line 194: Error: OCI_INVALID_HANDLE dbId: NCIM
01/12/10 12:10:12: Warning: [772t] CPollDataMgr.cc(122) Cannot connect to database : CNcpOracleDbh.cc line 194: Error: OCI_INVALID_HANDLE dbId: POLLDATA

Thanks,
Navarro