Discovery Method-specific Prerequisites
These are discovery method-specific prerequisites that must be completed based on the selected discovery approach prior to discovery and monitoring.
Prerequisites for Discovery Using EMCLI
The EMCLI based database machine discovery is performed through a deployment procedure which consumes an input file that contains all the required information like monitoring agents, configuration, components, and credentials. OMS and the monitoring agents should be Enterprise Manager 13.4 Release Update 4 or above.
Complete the prerequisites tasks given in the following sub-sections before you can discover the Exadata Database Machine targets using EMCLI.
Create Named Credentials for All the Target Types
The value for the credential parameter in the input file must be a named credential available in Enterprise Manager. The named credentials can be created using either EMCLI or by using the Enterprise Manager UI.
To create a named credential from the UI, navigate to Setup > Security > Named Credential.
To create a named credential using EMCLI, issue the command
specified in the table in Named Credentials and Commands to Create Them. Named credential in the input file should follow the notation
<CREDENTIAL_OWNER>:<NAMED_CREDENTIAL>.
For example,
credMap.schematicFileHostCred=SYSMAN:SCHEMATIC_HOST_CRED.
Named Credentials and Commands to Create Them
The following table lists the named credentials, and provides the sample command that you can run to create it:
| Property Name and Description | Sample Command |
|---|---|
| credMap.schematicFileHostCred Credential of host where schematic file is present. This will be used to read schematic file and credential user should have read permission for schematic file. It’s mandatory to place the schematic file in the discovery agent host. Target Type: host |
Credential Type: HostCreds (username, password)
Credential Type: HostSSHCreds (public, private key)
The private and public key file path is on the host where EMCLI is executed. |
| credMap.agentCred These were the credential used to install the agents. These credentials are required to set up passwordless SSH between the agent and Exadata Storage Server. Target Type: host / oracle_emd |
Credential Type: HostCreds (username, password)
Credential Type: HostSSHCreds (public, private key)
The private and public key file path is on the host where EMCLI is executed. |
| credMap.computenodeIlomCred Compute node ILOM credential is required to promote ILOM access point. Target Type: oracle_si_server_map |
Credential Type: ilom_creds (username, password)
Credential Type: ilom_key_auth_creds (private key file, passphrase)
The private key file path is on the agent box. |
| credMap.computenodeAdminCred Compute node admin credential is required to setup SNMP subscription on compute node. Target Type: host |
Credential Type: HostCreds (username, password)
Credential Type: HostSSHCreds (public, private key)
The private and public key file path is on the host where EMCLI is executed. |
| credMap.computenodeSnmpCred Compute node SNMP credential is required for alerts. Target Type: oracle_si_server_map |
Credential Type: SNMPV3Creds
Credential Type: SNMPV1Creds (SNMP V1/V2)
|
| credMap.computenodeIlomRestCred Compute node REST credential to promote ILOM REST access point. Target Type: oracle_si_server_map |
Credential Type: AliasCredential (Alias, password)
|
| credMap.ibIlomCred IB Switch ILOM admin credential is required to promote ILOM access point. Target Type: oracle_si_netswitch |
Credential Type: ilom_creds (username, password)
Credential Type: ilom_key_auth_creds (private key file, passphrase)
The private key file path is on the agent box. |
| credMap.ibSnmpCred IB Switch SNMP credential is required to promote SNMP access point. Target Type: oracle_si_netswitch |
Credential Type: SNMPV1Creds
Credential Type: SNMPV3Creds
|
| credMap.cellMonitorCred Storage Server monitored using CellCLI – root user credential required to setup password less SSH between agent and Storage Server to monitor Storage Server. Or Storage Server monitored using ExaCLI/RESTAPI - monitoring credential required to monitor Storage Server. Target Type: oracle_exadata |
Credential Type: ExaCreds (CellCLI based monitoring)
Credential Type: ExaSSHCreds (CellCLI based monitoring)
The private and public key file path is on the host where EMCLI is executed. Credential Type: ExaCLICred (ExaCLI/RESTAPI based monitoring)
|
| credMap.cellSnmpCred Storage Server SNMP credential is required to receive alert. Target Type: oracle_exadata |
Credential Type: SNMPV1Creds
Credential Type: SNMPV3Creds
To specify the privacy protocol name, use
|
| credMap.cellSnmpSetupCred Storage Server admin credential is required to setup SNMP subscription. Target Type: oracle_exadata |
Credential Type: ExaCreds (CellCLI based monitoring)
Credential Type: ExaSSHCreds (CellCLI based monitoring)
Credential Type: ExaCLICred (ExaCLI/RESTAPI based monitoring)
|
| credMap.ciscoIosCred Cisco Switch IOS credential is required to promote Cisco IOS access point Target Type: oracle_si_netswitch |
Credential Type: cisco_creds (username, password, privilege password)
Credential Type: cisco_key_auth_creds (username, private key file, passphrase, privilege password)
The private key file path is on the agent host. |
| credMap.ciscoSnmpCred Cisco Switch SNMP credential is required to promote Cisco SNMP access point. Target Type: oracle_si_netswitch |
Credential Type: SNMPV1Creds
Credential Type: SNMPV3Creds
|
| credMap.roceSwCred RoCE Switch credential is required to promote RoCE IOS access point Target Type: oracle_si_netswitch |
Credential Type: cisco_creds (username, password, privilege password)
Credential Type: cisco_key_auth_creds (username, private key file, passphrase, privilege password)
The private key file path is on the agent box. |
| credMap.roceSnmpCred This credential is required to promote ROCE SNMP access point. Target Type: oracle_si_netswitch |
Credential Type: SNMPV1Creds
Credential Type: SNMPV3Creds
|
| credMap.pduHttpCred PDU HTTP credential is required to promote PDU. Target Type: oracle_si_pdu |
Credential Type: http (username, password)
|
| credMap.pduSnmpCred PDU SNMP credential is required setup SNMP subscription. Target Type: oracle_si_pdu |
Credential Type: SNMPV1Creds
Credential Type: SNMPV3Creds
|
Set Up SSH Key Authentication
To use SSH Keys for authentication during discovery, generate and install the public key on each target that must be discovered.
Starting with Oracle Enterprise Manager 24ai Release 1 Update 6 (24.1.0.6), support is available to generate SSH key pair using Ed25519 algorithm. This algorithm based key pair is currently supported for use only with Exadata Storage Server.
Generate the SSH Key
Use ssh-keygen tool to generate the new authentication key pairs for SSH.
Command to generate key pair (Public key and Private Key) based on RSA authentication algorithm:
ssh-keygen -f <FILE_NAME> -t rsa -N ""In the above command:
-foption to indicate file name-toption to indicate algorithm (rsa/ed25519)-Noption to indicate passphrase
The same key pair can be used on all the monitoring agent hosts by copying them. Alternatively, you can generate different key pair on each monitoring agent host.
Command to generate key pair (Public key and Private Key) based on Ed25519 authentication algorithm that you can use only with Exadata Storage Server:
ssh-keygen -t ed25519The key pair is generated in the ~/.ssh directory.
In case of the Ed25519 algorithm, id_ed25519 is the private key and id_ed25519.pub is the public key.
Add SSH Public Key to Each Target
Follow these steps to install the SSH public key on the various targets that you want to discover:
Add SSH Public Key to Exadata Storage Server and Exadata Compute Node
Copy the public key to the Exadata Storage Server, Compute Node, and the monitoring Agent host using the following command:
ssh-copy-id -i <PUBLIC_KEY_LOCATION> oracle@hostNote:
You can use Ed25519 algorithm based SSH key only with Exadata Storage Server.
Add SSH Public Key to ILOM
You can use the following steps for InfiniBand ILOM as well as Compute Node ILOM:
-
Log in to the ILOM as a user that has administration capabilities that will be used as part of Database Machine discovery.
-
Navigate to the directory location of the user's SSH key.
-
Add SSH public key to the user's account:
set load_uri=<transfer_method>://<username>:<password>@<fully_qualified_hostname>/<path_to_public_key_filename>For example:
set load_uri=scp://adminuser:userpswd@192.0.2.1/keys/sshkey_1.pub
Add SSH Public Key to Cisco Ethernet / RoCE Switch
-
Log in to the switch.
-
Enter the global configuration mode on the switch using the command:
configure terminal -
Specify the public key for the user by pasting the entire content of the key in the specified location in the command:
<username> admin sshkey <paste_entire_public_key_content> -
Save the configuration:
copy running-config startup-config
Create the Input File
Create the input file with the details of the configuration parameters, and
named credentials. You can optionally add or remove components from the configuration by
using the skipComponentList or addComponentList
parameters.
Similarly, for virtual Exadata Database Machine discovery, you can provide the component details in the input file.
The following tables provide the information about all the parameters that can be used in the input file:
Following is an example input file created by using the configuration parameters, named credentials, and additional components:
############################################################
# Discovery and Monitoring Agent
############################################################
configMap.discoveryAgentUrl=https://cn01vm01.example.com:3442/emd/main/
configMap.monitorAgentUrl.0=https://cn01vm01.example.com:3442/emd/main/
configMap.monitorAgentUrl.1=https://cn02vm01.example.com:3442/emd/main/
############################################################
# Database Machine Configuration and required configuration
############################################################
# 0 For No, 1 for Yes
configMap.isRemoteAgent=0
configMap.isIPV6=0
# Identify if the network is roce or ib
configMap.networkType=roce
# Uncomment/update either the configMap.ibSwitchName or configMap.roceSwitchName parameter depending on what type of switch you have
#configMap.ibSwitchName=sw-iba0.example.com
configMap.roceSwitchName=sw-rocea0.example.com
#directory must exist for file creation
configMap.outputFileLoc=/home/oracle/exadata_discovery/output.txt
# Either CellCLI or ExaCLI or RESTAPI
configMap.cellMetricSrc=CellCLI
#These properties would be considered if Storage Server is monitored using RESTAPI
configMap.HttpsProtocol=TLSv1.2
configMap.TrustSelfSignedCert=1
# 0 (no) or 1 (yes) to configure SNMP
configMap.computenodeSnmpSub=1
configMap.cellSnmpSub=1
#Location of the schematic file on discovery agent
configMap.schematicFileHost=cn01vm01.example.com
configMap.schematicFilePath=/opt/oracle.SupportTools/onecommand/databasemachine.xml
############################################################
# TARGET CREDENTIALS
############################################################
#Please provide named credentials for all target types of Database Machine.
# Remote Agent or Compute Node Host Credential
credMap.agentCred=SYSMAN:AGENT_HOST_CRED
credMap.schematicFileHostCred=SYSMAN:AGENT_HOST_CRED
# CELL (Storage Server) Credentials
credMap.cellMonitorCred=SYSMAN:CELL_ROOT_CRED
credMap.cellSnmpCred=SYSMAN:CELL_SNMP_CRED
credMap.cellSnmpSetupCred=SYSMAN:CELL_ROOT_CRED
# Compute Node Credentials
credMap.computenodeIlomCred=SYSMAN:CN_ILOM_CRED
credMap.computenodeAdminCred=SYSMAN:CN_ADMIN_CRED
credMap.computenodeSnmpCred=SYSMAN:CN_SNMP_CRED
# PDU Credentials
credMap.pduSnmpCred=SYSMAN:PDU_SNMP_CRED
credMap.pduHttpCred=SYSMAN:PDU_HTTP_CRED
# CISCO Switch (Admin) Credentials
credMap.ciscoIosCred=SYSMAN:CISCO_IOS_CRED
credMap.ciscoSnmpCred=SYSMAN:CISCO_SNMP_CRED
# CISCO Switch (RoCE) Credentials
#credMap.roceSwCred=SYSMAN:ROCE_SWITCH_CRED
#credMap.roceSnmpCred=SYSMAN:ROCE_SNMP_CRED
# Infiniband Switch Credentials
credMap.ibIlomCred=SYSMAN:IBILOM_ADMIN_CRED
credMap.ibSnmpCred=SYSMAN:SI_SWITCH_SNMP_CRED
######################################################################
# Virtual Platform Config Data
######################################################################
#Virtual Platform Credentials
#Uncomment/complete if this is a Virtual Database Machine (Virtual targets are not yet discovered in EM)
vpTargetMap.vpCred=SYSMAN:VP_CRED
#Please provide virtual platform targets information
vpTargetMap.name.0=vp01.example.com
vpTargetMap.name.1=vp02.example.com
############################################################
# SKIP Components
############################################################
#Specify any components you wish to skip
componentMap.skipComponentList.0=pdu0.example.comConfiguration Parameters
The following table lists the mandatory configuration parameters and their details that must be specified in the input file for EMCLI based discovery:
| Parameter Name and Description | Allowed Value / Sample Value |
|---|---|
| configMap.discoveryAgentUrl Discovery agent URL on which schematic file is available. |
Allowed Value:
Sample Value:
|
|
configMap.monitorAgentUrl.0 configMap.monitorAgentUrl.1 Monitoring agent URL, one for primary and one for backup. |
Allowed Value:
Sample Value:
|
| configMap.isRemoteAgent This property indicates monitoring agent(s) is a remote one, that is installed outside of the Database Machine. The purpose of a remote monitoring agent is to avoid consuming Database Machine resources for monitoring. |
Allowed Value:
Sample Value:
|
| configMap.isIPV6 This property is to indicate IP Protocol used for communication. |
Allowed Value:
Sample Value:
|
| configMap.schematicFileHost This property is to specify the host name on which schematic file available. On the same host, the discovery agent should also be present. |
Allowed Value: Host name Sample Value:
|
| configMap.schematicFilePath This property is to specify the schematic file full path on the host (host name specified for property configMap.schematicFileHost). |
Allowed Value: Full path of schematic file. Sample Value:
|
| configMap.ibSwitchName This property
is to indicate the InfiniBand Switch name if
configMap.networkType parameter is set to
This property is mandatory based on the network type. |
Allowed Value: Fully qualified InfiniBand Switch host name Sample Value:
|
| configMap.roceSwitchName This
property is to indicate the RoCE Switch name if
configMap.networkType parameter is set to
This property is mandatory based on the network type. |
Allowed Value: Fully qualified ROCE Switch host name Sample Value:
|
| configMap.cellMetricSrc This property is to indicate Exadata Storage Server monitoring mechanism. |
Allowed Value:
Sample Value:
|
| configMap.outputFileLoc This property is to indicate the full path of the file on OMS host to log Deployment Procedure (DBMachineSystemCheck’s) output. |
Allowed Value: Full path to file on OMS host Sample Value:
|
The following table lists the optional configuration parameters and their details that you can specify in the input file for EMCLI based discovery:
| Parameter Name and Description | Allowed Value / Sample Value |
|---|---|
| configMap.isStatic Database Machine discovery by default performs dynamic discovery by invoking IB commands and other commands. But, in some cases discovery may not be able to proceed with dynamic approach like IB Switch is not accessible, Failure in detecting rack type, etc., In this case static discovery would be useful. Static discovery depends on schematic file for identifying components. |
Allowed Value:
Sample Value:
|
|
configMap.DBMachineName This property allows to define a custom name for Database Machine. |
Allowed Value: Any string can be specified as value for this property. If not specified discovery will automatically prepare a name for Exadata Database Machine as default. Sample Value:
|
| configMap.ExadataGridName This property allows to define a custom name for Exadata Grid. |
Allowed Value: Any string can be specified as value for this property. If not specified discovery will automatically prepare a name for Exadata Grid as default. Sample Value:
|
| configMap.networkType This property is to indicate which network type is part of discovering Exadata Database Machine. |
Allowed Value:
Sample Value:
|
| configMap.HttpsProtocol This property is to indicate communication protocol used for Exadata Storage Server communication. This property needs to specify when Storage Server is monitored using RESTAPI. Otherwise, this property is not required. |
Allowed Value:
Sample Value:
|
| configMap.TrustSelfSignedCert This property is to indicate whether a self-signed certificate is used for communication with Storage Server. |
Allowed Value:
Sample Value:
|
| configMap.computenodeSnmpSub This property is to indicate whether SNMP Subscription for Compute Nodes is required. |
Allowed Value:
Sample Value:
|
| configMap.ilomVersionSupportRest This property is to indicate whether to promote ILOM REST Access Point using the computenodeIlomRestCred credential. |
Allowed Value:
Sample Value:
|
| configMap.cellSnmpSub This property is to indicate whether SNMP Subscription for Storage Servers is required. |
Allowed Value:
Sample Value:
|
Parameters for Adding or Skipping Components
The following optional properties can be used to skip or add the components as part of EMCLI based discovery of Exadata Database Machine:
| Property Name | Description | Example |
|---|---|---|
|
componentMap.skipComponentList |
Use this property to list the components that must be excluded from Exadata Database Machine discovery. |
|
|
componentMap.addComponentList |
Use this property to add new components to an existing database machine as part of Exadata Database Machine discovery. |
|
Parameters for Adding or Skipping Virtual Platform Components
For virtual Exadata Database Machine, the Virtual Platform targets can also be discovered as part of the EMCLI based Database Machine Discovery if not yet discovered in Enterprise Manager. The following input parameters can be used to specify the components:
| Parameter Name and Description | Sample Value |
|---|---|
| vpTargetMap.name List of virtual platform targets to be discovered. |
|
|
vpTargetMap.vpCred Target Type:
|
Credential Type:
Credential Type:
The private and public key file path is on the host where EMCLI is executed. |
Optional Verification of the Prerequisites
To ensure that all the required parameters are provided in the input file, run a prerequisite-check deployment procedure before submitting the Exadata Database Machine discovery deployment procedure. Use the input file that you created earlier in the prerequisite-check deployment procedure.
This prerequisite-check deployment procedure is optional because it is also executed as part of the discovery deployment procedure.
Run this EMCLI command to perform the prerequisite-check and collect the information about the targets related to the Exadata Database Machine:
emcli submit_procedure -name=DBMachineSystemCheck -input_file="data://<input_file_absolute_path>" For more information on the deployment procedure for EMCLI based discovery of Exadata Database Machine, see Deployment Procedure for EMCLI.
Prerequisites for Discovery and Monitoring Using Non-root User
You can optionally perform discovery and monitoring operations using a non-root user.
Non-root User for Systems Infrastructure Remote Host Targets
/etc/sudoers.
Place the following commands in the sudoers file:
<non-root-username> ALL=(ALL) /usr/sbin/sminfo,/usr/bin/ipmitool,/bin/cat
/etc/iscsi/iscsid.conf,/sbin/fdisk,/sbin/vgs,/sbin/pvs,/sbin/lvs,/sbin/dmsetup,/usr/sbin/dbmcli,/sbin/service,/sbin/initctl,/opt/oracle.cellos/compmon/exadata_mon_hw_asr.pl,/usr/local/bin/imageinfo,/usr/sbin/exadata.img.hw,/usr/sbin/ibnetdiscover,/usr/sbin/smartctlUse EMCLI to discover the remote host using a non-root user. Specify the dispatch URL as
'sudo-ssh://<IP/hostname>:22 by running the following EMCLI
command:
emcli add_target -name=<REMOTE_HOST_NAME> -type=oracle_si_host_remote -host=<AGENT_HOST_NAME>
-monitoring_cred='ssh_creds_set;oracle_si_host_remote_ssh;ssh_creds;username:<user>;userpass:<password>;'
-subseparator=properties='=' -properties='dispatch.url=sudo-ssh://<target ip/hostname>:22'
-access_point_name="<AP_NAME>" -access_point_type="oracle_si_host_remote_ssh"Non-root User for Virtual Platform Targets
/etc/sudoers file with the
list of commands used by the targets which require sudo privileges. Next, update
the non-root user monitoring credentials with the sudo attributes.
Xen Virtual Platform
Content for the /etc/sudoers file for Xen virtual platform
target:
Cmnd_Alias OEM_MON_CMNDS = /usr/sbin/xl list*,/usr/sbin/xl info*,/usr/sbin/xl
network-list*,/usr/sbin/xl uptime*,/usr/sbin/xl
vcpu-list*,/usr/sbin/dmidecode,/usr/sbin/xentop,/usr/bin/xenstore-read,/usr/bi n/xenstore-list,/usr/bin/xenstore-ls,/sbin/ethtool
<non-root-user> ALL=(ALL) NOPASSWD:OEM_MON_CMNDS
KVM Virtual Platform
Content for the /etc/sudoers file for KVM virtual platform
target:
non-root-user ALL=(ALL) NOPASSWD: /usr/bin/virsh list*, /usr/bin/virsh dominfo*,
/usr/bin/virsh nodememstats*, /usr/bin/virsh domstats*, /usr/bin/virsh capabilities,
/usr/bin/virsh domblklist*, /usr/bin/virsh domiflist*, /usr/bin/virsh vcpupin*,
/usr/bin/virsh domifstat*, /bin/virsh domblkstat*, /bin/virsh dommemstat*,
/bin/virsh nodeinfo, /bin/virsh domblkinfo*, /usr/sbin/dmidecode, /sbin/ethtool,
/usr/bin/ipmitool, /usr/sbin/imageinfo, /usr/local/bin/imageinfo,
/opt/oracle/bda/bin/imageinfo, /opt/exadata_ovm/vm_maker, /usr/sbin/brctl
Update and save the monitoring credentials of the Virtual Platform target
Set the following sudo attributes:
-
Set Privilege Type to
sudo. -
Set Run as to
root. -
Set the Privilege Command to
/usr/bin/sudo -S -u %RUN_AS% %COMMAND%. Verify the path of sudo. -
Set Is Privileged User to
Yes. -
Unless the requiretty flag is explicitly un-set for the non-root user in the
/etc/sudoersfile, set Enable Pseudo Terminal toYes.
Now, you can use the non-root user instead of the sudo username for target discovery.