Oracle Intelligent Agent User's Guide Release 9.2.0.2 Part Number A96676-02 |
|
|
View PDF |
This chapter covers generic setup and configuration procedures for the Intelligent Agent. The following topics are discussed:
The Intelligent Agent is shipped with the database and can be installed on remote, managed machines under an ORACLE_HOME environment. Using the Oracle Universal Installer, the Agent can be selected for installation from one of two locations: the Enterprise Manager tree list or the database server tree list (this option installs the database and the Agent). To install the Intelligent Agent as a standalone service, select the Agent from the Enterprise Manager tree list.
The following procedures are used to control the operation of the Intelligent Agent on Microsoft Windows NT system.
To start the Agent on Windows NT, perform the following steps:
The Startup Type is set to Manual, which allows the Agent to be started by a user. If you want the Agent to start automatically whenever you start the system, set the Startup Type to Automatic.
When the Agent is started, the batch file dbsnmpwd.bat is executed automatically. dbsnmpwd is a Windows watchdog process that is responsible for automatically restarting the Intelligent Agent if the Agent goes down. This assures that the Agent is up an running at all times unless explicitly shut down. You can configure dbsnmpwd by editing the batch file directly. For more information regarding configuration, see "DBSNMPWD".
To stop the Agent on Windows NT, perform the following steps:
To verify that the Agent is running, look for its status in the control panel services or type net start
at a command prompt. OracleAgent should appear in the list of running services.
You may also view the NT Task Manager to see the dbsnmp process information.
In order for the Agent to execute jobs on a managed node
ORACLE_HOME\network
directory as well as write permissions to the TEMP
directory or the ORACLE_HOME
directory.
Please follow one of the procedures listed below.
To create a new Windows NT user account on the local NT machine and grant the "log in as batch jobs" privilege to this user, perform the procedure below.
To assign privileges to an existing local user account, perform the following steps.
To create a new user account on the local Windows 2000 machine and grant the "log in as batch jobs" privilege to this user, perform the procedure below.
To configure a domain user as your Agent user, perform the following steps.
The following procedure explains how to configure the SNMP master agent to support the sub agents on Windows NT and Windows 2000:
x:\winnt\system32\drivers\etc\services.
Change the snmp entries to:
snmp 1161/udp snmp-trap 1162/udp
ORACLE_HOME\network\admin
directory and edit the config file to add the following:
TRANSPORT ordinary SNMP OVER UDP SOCKET AT PORT 1161
COMMUNITY public ALLOW ALL OPERATIONS USE NO ENCRYPTION MANAGER trap_machine.acme.com SEND ALL TRAPS WITH COMMUNITY PUBLIC
Please note that the encapsulator is only needed when multiple sub-agents are installed and configured on the machine. The Peer SNMP Master Agent executable is ORACLE_HOME\bin\agent.exe and the encapsulator executable is ORACLE_HOME\bin\encaps.exe.
The way to test Oracle's SNMP is by using a third party application which uses snmp to communicate with the Oracle SNMP master agent and query Oracle specific data.
Third party applications that support SNMP are listed in the Oracle SNMP Support Reference Guide
The following procedures are used to control the operation of the Intelligent Agent on UNIX systems.
After you have successfully installed the Agent, the Oracle Universal Installer prompts you to run root.sh.
root.sh, which is a shell script, updates/creates an oratab file. The oratab file is the file where the user will place references to all databases to be discovered by the Agent and controlled by the Oracle Enterprise Manager. For each database created, the entry is of the form: <SID>:<$ORACLE_HOME>:[Y/N]
The Agent is normally configured by root.sh as a setuid program. If root.sh was successful, the Agent will have been installed as setuid root so that the Agent can run jobs as the users whose name and password are given in the Preferred Credentials for that host.
The user who submits node jobs to the UNIX Agent should have read/write access to the Agent's ORACLE_HOME. If the root.sh
does not have setuid
set, then any job submitted to the Agent will run with the privileges of the user who owns the Agent executable (dbsnmp.exe). root.sh
will force the user to set the preferred credentials at the Oracle Enterprise Manager Console for any job on the Agent.
To verify that root.sh had been run successfully, check the file permissions on dbsnmp.
This changes the directory to the $ORACLE_HOME/bin directory where the Agent executable resides.
This lists all relevant details about dbsnmp.
The output of the ls -al command for dbsnmp should be in the form
-rwsr-s--- 1 root g651 1497980 Jun 12 21:04 dbsnmp
root is the owner. dbsnmp is the Agent executable. In this example, the name of the group is g651. If root is the owner and -rwsr-s--- are the permissions, then root.sh
had been run successfully.
On UNIX, the agentctl utility is used to start and stop the Agent. In addition, dbsnmpwd is run. dbsnmpwd is a UNIX watchdog script that is responsible for automatically restarting the Intelligent Agent if the Agent goes down. This assures that the Agent is up an running at all times unless explicitly shut down.
The relevant agentctl commands are listed in the table below.
Dbsnmpwd is UNIX watchdog script that ensures the dbsnmp (Intelligent Agent) process is always present on monitored targets. It restarts the agent when it exits abnormally i.e. exits with an unexpected return code.
The behavior of the watchdog script can be configured using the following environmental variables. These variable are contained within the script itself.
DBSNMP_WDLOGFILE - Logfile where startup messages are written. It defaults to $ORACLE_HOME/network/log/dbsnmp.nohup
DBSNMP_RESTART - To disable the automatic restart mechanism set this environmental variable to 0. Default is set to 1.
DBSNMP_MAX_ABNORMALEXIT / DBSNMP_TIME_DELTA - These two variables help the watchdog script to determine when it would be safe to assume that the agent is thrashing (the process of starting and immediately exiting because initial conditions to start the agent successfully are not met). The default values are 3 and 60 respectively. It means if the agent exits more than 3 times within 60 seconds then it would be safe to assume that the agent is thrashing and the watchdog would not restart it.
By default, the agent files are encrypted using the hostname (of the host on which the agent resides) as a key or password for encryption. To specify a different password to be used for encryption, start the agent as follows:
agentctl start agent password=<new password>
% agentctl start agent password=mynewpassword
To prevent people from doing a "ps -efo" and looking at the command-line arguments to get the password, there is an option of putting the password in a file and passing the file as an argument to agentctl. This file can then be permission protected to prevent viewing by unauthorized users. Only the first 8 characters of the file are used as the password. The usage is as follows:
% agentctl start agent password_file=<location of password file>
% agentctl start agent password_file=/u1/myhome/newpassword.txt
Blackouts allow Enterprise Manager users to suspend any or all management and/or data collection activity on one or more managed targets. This capability permits maintenance or emergency operations to be performed
Specifically, blackouts can suspend:
Blackouts must be created at the target-level, i.e., they must be defined on the node where the Intelligent Agent resides. Blackouts are controlled with a command line interface. The blackout subsytem associates any command line request with a special type of Agent user called the CLI user. Only one immediate blackout can be set at a time. Multiple target blackouts can exists simultaneously.
Once in effect, blackouts cannot be modified. To change the status of a particular blackout, you must first delete the existing blackout and then re-create a new blackout with the desired changes.
The blackout command line tool exists on the node where the Agent resides and can be used by administrators to set/cancel blackouts. The Intelligent Agent must be running in order to set a blackout. User commands are as follows:
The following examples illustrate how to use the blackout command line utility under different situations and the output generated.
Situation 1: You want to start a blackout on the target vnukal-pc.world for 10 minutes.
$ agentctl start blackout -d 0:10 vnukal-pc.world Blackout registered on vnukal-pc.world database
Situation 2: You want to stop any blackout set by (the CLI user) effective on target vnukal-pc.world. Note: Blackouts set by other Agent users are not cancelled.
$ agentctl stop blackout vnukal-pc.world Blackout canceled on vnukal-pc.world database
Situation 3: You want to start blackouts on all managed targets for an indefinite length of time. This is equivalent to blacking out the entire Agent.
$ agentctl start blackout Do you wish to blackout the entire agent (Y/N) ? [N] y All targets on the agent are blacked out.
Situation 4: You want to stop blackouts on all registered targets.
$ agentctl stop blackout Do you wish to cancel blackout on all targets (Y/N) ? [N] y Blackout canceled on all targets.
Situation 5: You want to know the status of blackouts on a target.
$ agentctl status blackout vnukal-pc.world is blacked out. Blackout will end in 2 hours.
Situation 6: You want to set a blackout on a target whose name matches another target of a different type. In this case, the command line interface allows you to interactively select the desired target.
$ agentctl start blackout payroll Following targets matching "payroll" have been found. 1. payRoll ( Database ) 2. payRoll ( Listener ) Choose the target to blackout [1] : 2 Blackout registered on "payroll" listener
Situation 7: You want to blackout events on target 'mytarget' for 30 minutes.
$ agentctl start blackout mytarget -d 0:30 -s events
On UNIX systems, when you install the Oracle Intelligent Agent (IA), the SNMP files are also installed. SNMP is not required if you are running an Enterprise Manager-only environment. However, if you are running a third-party SNMP monitoring system, you will need to configure the Intelligent Agent to communicate with the SNMP Master Agent or the Peer Encapsulator, depending on your platform. To configure SNMP:
Make sure there is no SNMP master agent already running (snmpd) on the
ps -ef | grep snmp
If there is an snmpd (snmpd.cfddi on Solaris) process running, stop it.
Third-party systems management applications use the SNMP Master Agent to communicate with the Intelligent Agent. The SNMP Master Agent and the Oracle Intelligent Agent must be configured correctly before the Oracle Intelligent Agent can communicate over SNMP to the Master Agent.
For the general procedures for configuring SNMP for Oracle databases and the Management Server, refer to the Oracle SNMP Support Reference Guide.
For more comprehensive configuration information, see the installation or configuration guide specific to your platform. SNMP configuration may differ depending on the platform.
As with version 8.1.7 of the Intelligent Agent, 9i Intelligent Agent users have three options to configure the Agent on a machine with multiple network cards. By default the Agent will bind to the primary NIC on its machine ('le0' on UNIX platforms and 'network0' on Windows NT platforms). The other two options are:
The Agent will also have the capability of discovering services (listeners etc.) that are listening on an ip address/NIC that's different from the ip address/NIC being used by the Agent.
When no explicit listening address directives are in snmp_rw.ora, the Agent listens for connections via the Agent machine's primary network interface card.
When an explicit listening address is specified in snmp_rw.ora, the Agent listens for connections on only that address.
To bind the 9i Intelligent Agent to a specific network interface card, other than the primary network card:
dbsnmp.hostname=<IPaddress of the network card>
>agentctl start agent
If the hostname is specified in snmp_rw.ora, the Agent listens for connections on all the machine's network interface cards.
For pre-8.1.7 versions of the Agent (8.1.5 or higher) this is the default behavior of the Agent (since it is the default behavior of the network layer code used by the Agent) .
To bind the 9i Intelligent Agent to all network interface cards on a host:
In the Windows NT FailSafe configuration, the Agent listens for connections on the IP address stored in the NT registry for the FailSafe Agent
The Agent discovers each target on a machine, regardless of which of the machine names or IP addresses is used in the target's configuration files.
If you are running Oracle Names on a machine managed by an Oracle Intelligent Agent, it is assumed that the databases have already been registered with a Names Server and their aliases are defined by the GLOBAL_DBNAME parameters in the listener.ora files.
The Intelligent Agent does not use Oracle Names to discover services it manages. It uses GLOBAL_DBNAME parameters in listener.ora files to determine which databases that listener services. This name appears in the Enterprise Manager Console Navigator as the database name to be managed.
The GLOBAL_DBNAME parameter typically describes the name of the database as it is registered with the Names Server, for example, the name and domain of the database as given in the database initialization parameter file. Values of the GLOBAL_DBNAME parameters must be unique.
When running jobs or monitoring events in this environment, the Intelligent Agent does not resolve database aliases via Oracle Names, the Agent will generate its own TNS connect string using the Bequeath Protocol.
Note: If you are planning to manage two or more Oracle databases on the same node, make sure the GLOBAL_DBNAME parameter in your listener.ora file is different for each database. |
The default database username/password for the Agent is dbsnmp/dbsnmp. The catsnmp.sql script is installed with the database. The database roles and privileges assigned to the Agent user using the catsnmp.sql script. When an Oracle database is installed, the catsnmp.sql script is automatically run by catalog.sql
The customer may need to change the user/password for the Intelligent Agent's database logon. To change the user name and password to something other than dbsnmp/dbsnmp, you need to edit snmp_rw.ora, adding the following parameters:
snmp.connect.<svcname>.name = <username> snmp.connect.<svcname>.password = <password>
Note: <svcname> is the database service name as it appears in the Enterprise Manager Console or in the snmp_ro.ora file. |
To grant the requisite roles and users privileges to the new Agent user, run the individual SQL commands specified in catsnmp.sql referring to the new Agent user. You can use Server Manager or SQL Plus. Do not edit the catsnmp.sql script for the sole purpose of performing this task.
To determine whether the SNMPAGENT role exists in a database, enter the following SQL command:
SELECT * FROM dba_roles;
If the SNMPAGENT role does not appear, run the catsnmp.sql script on the database.
If you already have several versions of the database running, you must run the catsnmp.sql script on each of these database in order to have the correct setup for all the grants and views the Agent needs to contact.
To run the script, you must log in as SYS.
The Intelligent Agent has a built-in auto-discovery feature that automatically generates the needed configuration files containing information about services to be managed, each time the process is started. The following three files are created/appended during the discovery process:
The snmp_ro.ora file is a read-only file created by the Agent and contains information on services monitored by the Agent.
The snmp_rw.ora file contains index information of the managed services used internally by the Agent and it also allows users to specify variables, such as tracing.
The services.ora file contains aliases for all services the Agent has to monitor. Only services listed in this file are monitored by the Agent. The content of this file are then sent to the console during discovery. With version 9.0, this file also contains information about the type of operating system and the operating system version of the environment in which the Agent is running.
Note: Please refer to Appendix A, "Agent Configuration Files" for more information on parameters used in these files. |
When the Agent is started, the auto-discovery process reads configuration parameters from the following sources:
The discovery process extracts the services installed on that node and compiles the configuration files listed previously.
The Agent compiles SID information for each ORACLE_HOME, either from the ORATAB file (UNIX) or the NT registry. The Agent then parses the listener.ora files for related SID and listener information. If the listener.ora contains a GLOBAL_DBNAME section, the Agent sets the database service name to the GLOBAL_DBNAME variable. If the variable does not exist, the Agent looks for a tnsnames.ora that contains a valid service name for the SIDs on that machine. If the Agent cannot find one, a service name called <SID>_<HOSTNAME> is created for each SID.
(UNIX) All versions of the Unix discovery script allow the use of the TNS_ADMIN variable to locate input configuration files (listener.ora and tnsnames.ora). Only post-8.0.3/7.3.4 versions correctly write the output files (snmp_ro.ora and snmp_rw.ora) into TNS_ADMIN, if this environment variable is set. If the TNS_ADMIN variable is not set, then the Agent will write the output files to its $ORACLE_HOME/network/admin directory.
(NT) In addition to the above, beginning with 8.0.5, the discovery script also reads the TNS_ADMIN value from the NT Registry. This variable is located as follows:
When you start the Agent, the first operation it must perform is to discover what services exist on the node that it monitors. The following "discovery" algorithms document the service discovery process for the two most common platforms on which the Agent runs.
At Intelligent Agent startup, a script is executed which reads configuration parameters from the Windows NT registry, the listener.ora file, and the tnsnames.ora file (if it exists).
The Agent discovers new services on the machine where it is installed and creates/rewrites/appends to its configuration files: snmp_ro.ora, snmp_rw.ora, and services.ora.
To determine what services are available on its machine (services that the Agent will manage), the Agent uses the following discovery algorithm:
GLOBAL_DBNAME
parameters are not found in listener.ora, the Agent searches for a tnsnames.ora file using the same search methodology used to find the listener.ora file.tnsnames.ora
file is not found, the database alias, <SID>_<hostnames>
, is assigned to a database service. The service will be known to the Agent by this alias, and it will be visible as such at the Oracle Enterprise Manager Console.
Along with database and listener services, the Intelligent Agent also discovers other services (concurrent managers, forms servers, application servers, etc.). These services are discovered through individual discovery scripts that are defined in the nmiconf.lst file. The nmiconf.tcl parses the nmiconf.lst to see if any non-basic services have been installed on the server and then runs all discovery scripts that it finds listed in this file.
At startup, the Agent discovers new services on the machine where it is installed and creates its configuration files: snmp_ro.ora, snmp_rw.ora, and services.ora.
To determine what services are available on its machine (services that the Agent will manage), the Agent uses the following discovery algorithm
GLOBAL_DBNAME
parameters are not found in listener.ora, the Agent searches for a tnsnames.ora file using the same search methodology used to find the listener.ora file.tnsnames.ora
file is not found, the database alias, <SID>_<hostnames>
, is assigned to a database service. The service will be known to the Agent by this alias, and it will be visible as such at the Oracle Enterprise Manager Console.In Real Application Cluster environments, multiple instances of the Intelligent Agent (one per node) must share a single ORACLE_HOME. In order to support this configuration, files created by the Agent (queue files, logs and traces, CS recovery files, configuration files) must be stored in an alternate directory outside the ORACLE_HOME.
To override the default ORACLE_HOME location, set the ORA_OEMAGENT_DIR environment variable to a new directory outside of the ORACLE_HOME.
Example (UNIX environment):
setenv ORA_OEMAGENT_DIR /private/agentstate
Each release of the Intelligent Agent improves Agent performance, functionality, and reliability. We therefore recommend upgrading your Intelligent Agent to the latest version available for your platform. To make sure the transition to a newer Agent preserves your existing Enterprise Manager jobs, events, and data collections, you can use the NMUMIGR8 utility found in $ORACLE_HOME/bin. This utility allows you to migrate existing jobs, events, and data collections to a format recognized by 9.x version of the Intelligent Agent.
Source Oracle Home that contains an existing Intelligent Agent queue and data collection files. If source_home is not supplied then the value defaults to the destination Oracle Home that is the value of the ORACLE_HOME environment variable.
This flag indicates that detailed migration information should be written to the trace file nmumigr8.trc located under the Agent's ORACLE_HOME/network/trace directory. If this flag is not set, only summary information is written to the trace file.
Users upgrading from earlier versions of the Intelligent Agent to the version 9.0 Intelligent Agent should follow the guidelines described in the next section.
Several database products can be installed on a single machine, all of different core versions, and any of which can be upgraded or patched independently. Because the Intelligent Agent can manage multiple products, adhering to Agent implementation, upgrade and mainentance best practices will optimize Agent performance and ensure trouble-free operation.
Although it is possible to have several versions of the Intelligent Agent installed on a single machine, only one of these versions can be active at any time. It is recommended that you only install one version of the Intelligent Agent per machine. When several versions of the Agent are present on one machine, there is a danger that the wrong Agent will be started, causing all job and event registrations and notifications to be cross-sent to different versions of the Agent. This situation will lead to synchronization problems between the Management Server and the Intelligent Agent. The only solution at this point is to drop the node from the navigator, and clean-start the Intelligent Agent to re-synchronize the information. See "Clean Starting the Intelligent Agent" for more information
Create a user at the Operating System level that will own the Agent installation and will control (start and stop) the Agent. The username (not necessarily its password) should be the same on all managed nodes (for example, oramon). The Agent owner needs to be a member of the `dba' group for all monitored databases on its node, although none of them has to be its primary group.
The profile of the Agent Owner should set the following environment variables. The example of Listing 1 assumes that csh is the default shell of the Agent owner and lists the contents of the .cshrc file. A similar-looking structure should be used in the .profile file if the Bourne Shell or Korn Shell are used as the default shell of the Agent Owner.
umask 002 # provide the appropriate value for ORACLE_HOME setenv ORACLE_HOME /oracle setenv PATH ${ORACLE_HOME}/bin:/usr/ccs/bin:${PATH} setenv TCL_LIBRARY ${ORACLE_HOME}/network/agent/tcl # unset ORACLE_HOME, LD_LIBRARY_PATH and NLS_LANG unsetenv ORACLE_SID unsetenv LD_LIBRARY_PATH unsetenv NLS_LANG # if a central location for net8 config files exist, # set it here otherwise, make sure TNS_ADMIN is not set # setenv TNS_ADMIN /usr/local/oracle/admin unsetenv TNS_ADMIN # point ORATAB to an OEM-specific oratab file if such exists if ( -e ${ORACLE_HOME}/network/agent/oratab.oem ) then setenv ORATAB ${ORACLE_HOME}/network/agent/oratab.oem endif
The TNS_ADMIN environment variable should point to the central location of all Oracle Net configuration files, if such a location exists. If not, make sure that the TNS_ADMIN variable is not set.
In order to avoid conflicts during maintenance upgrades of the various pieces of software, and to be able to upgrade an individual product independently, it is recommended that you install the Intelligent Agent in its own ORACLE_HOME.
It is also recommended that the standard operating system user, "oramon" be used to install the Agent on all machines in your environment. You need to change both the owner of the directory and the group to which the directory belongs. To do this:
> mkdir oemagent_9.2.0
> chown oramon oemagent_9.2.0
> chgrp oramon oemagent_9.2.0
Starting from Oracle 8.1.5, the Universal Installer is used to install the Oracle software. To install the Intelligent Agent using the Universal Installer, perform the following steps:
Oracle Enterprise Manager Products --> Oracle Intelligent Agent
A standard Agent ORACLE_HOME should be used on all machines, such that the ORACLE_HOME is a symbolic link to the location of the current Agent. Thus, when an Agent is upgraded to another version, the link will then point to the location of the latest Agent. This will help maintain a consistent ORACLE_HOME for the Agent on every machine at all times.
For example, if using version 9.2.0 of the Agent, set ORACLE_HOME to point to the directory /u01/app/oracle/product/oemagent which is a symbolic link to the directory /u01/app/oracle/product/oemagent_9.2.0.
ln -s /u01/app/oracle/product/oemagent /u01/app/oracle/product/oemagent_9.2.0
To prevent accidental starting of an older Agent, rename the DBSNMP executable of all older versions of the Agent. This will prevent someone from accidentally starting the wrong Intelligent Agent.
Your Agent should be configured to start automatically upon machine startup/reboot. Include a script like the one listed below in your boot up procedures so that the Intelligent Agent is started automatically at machine bootup time.
#!/bin/sh PATH=/usr/bin:/usr/sbin:/sbin; export PATH # modify the next line to point to the agent's ORACLE_HOME ORACLE_HOME="/u01/app/oracle/product/oemagent" # find the agent owner by looking at file ownership USERID=`ls -ld $ORACLE_HOME/bin | awk '{print $3}'` case $1 in 'start'| '') su - $USERID -c "$ORACLE_HOME/scripts/oemagent start" "Starting OEM agent" ;; 'stop') su - $USERID -c "$ORACLE_HOME/scripts/oemagent stop" "Stopping OEM agent" ;; *) echo "usage: $0 {start|stop}" ;; esac
To ensure Agent-Enterprise Manager-RDBMS compatibility, and to access all features available for a given version of the Enterprise Manager framework, we recommended using the Intelligent Agent that matches the version of the framework. The following table lists Agent version compatibility.
After Agent installation is completed, the SQL*Net/Oracle Net files for the Intelligent Agent (SQLNET.ORA and TNSNAMES.ORA) have to be created/updated, to be able to contact all the databases the Agent needs to manage. Also, by default the Agent will use the ORATAB file (unless the TNS_ADMIN environment variable is set) on its machine to find the ORACLE_HOMES and discover services. If you want the Agent to find a subset of ORACLE_HOMES and discover corresponding services, we recommend creating another file that contains this subset. The ORATAB environment variable should be set in the Agent's environment and should point to this file prior to starting the Agent.