Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Page Properties


Platform OwnerDeanna Burns (Unlicensed)
Document status
Status
colourGreen
titleWork in Progress
Technical LeadSN Discovery SMEAllena Kendrick (Unlicensed)
Technical writersBusiness Analyst@Vandana Bansal
CI Owner

Harshal Dixit


CMDB ManagerChristopher Abbott (Unlicensed)
PMDavid Swanson (Unlicensed)
SN CMDB LeadVimalpriya Kothandapani (Unlicensed)


Table of Contents

Report Metrics



 Technical Requirements

Oracle Probes

Oracle Instance

  • Horizontal discovery probe: launches patterns
  • Powershell-Oracle - Instance PFile
    #Requirement
    User Story

    ImportanceChallengeNotes
    1
    Mid ServerUpdate Mid-Server Parameters
    1. set mid.property.ssh.use_snc = true to address the dmidecode issue 
    2.  Changed glide.required.attribute.enabled to false to ignore the mandatory fields 
    3.  Restart Mid-Sever
    2

    Probes

    Image Removed

    security patch Level

     

    To capture the attribute security patch level. We will need to use 'OPatch' and 'lsinventory' commands which lists all the patches applied to the oracle db and then parse the latest patch that has been applied. You will have to add a 'extension section' to the oracle pattern, to add extra steps to run this command, and then parse the output, to extract the value you want to put in the attribute/ field of the CI. 


    Here is the pattern.

     


    Image Added 







    2important

    Image Added

    glide.required.attribute.enabled


    Set to false






    3

    Proposed View modification that we would like to see which includes the latest security patches applied to that Instance as well – that is one of the most important piece of information we would like to see on this form/view.

    Image Added







    4



    Oracle = Listener Details

    Image Added

    ORA_HOME=$1
    LISTENER=$2
    TNS_ADMIN="/ora_admin/tns_admin"
    FAILED=0
    ERR=""

    get_config() {
        CONFIG_PATH="${TNS_ADMIN}/listener.ora"
        FAILED=`sudo cat $CONFIG_PATH 1> /dev/null 2>&1; echo $?`
        [ "$FAILED" != 0 ] && ERR="Could not read listener.ora: $CONFIG_PATH. $ERR" && return
        echo "snc_listener.ora_contents="
        sudo cat $CONFIG_PATH
    }

    get_instances() {
        ORACLE_HOME=$ORA_HOME
        export ORACLE_HOME
        INSTANCES=`${ORA_HOME}/bin/lsnrctl status $LISTENER 2>&1 | sed -ne 's/Instance "\(.*\)", status READY.*/\1/p' | tr -d ' ' | uniq | tr '\n' ' '`
        [ "$INSTANCES" != "" ] && echo "snc_ora_instances=$INSTANCES" && return
        FAILED=1
        ERR="Unable to accurately determine listener<->instance relationships. $ERR"
    }

    get_version() {
        VERSION=`${ORA_HOME}/bin/lsnrctl status 2>&1 | grep Version | sed -ne 's/.*: Version \([0-9.]*\) .*/\1/p'`
        [ "$VERSION" != "" ] && echo "snc_ora_version=$VERSION" && return
        VERSION=`echo $ORA_HOME | sed -ne 's/.*\/\([0-9.]*\)\/.*/\1/p'`
        [ "$VERSION" != "" ] && echo "snc_ora_version=$VERSION" && return
        FAILED=1
        ERR="Could not determine Oracle listener version. $ERR"
    }

    get_version
    get_instances
    get_config
    [ "$FAILED" != 0 ] && echo "snc_error=$ERR"
    exit 0





    5







    6

     set glide.required.attribute.enabled to false




    7
    SIDThe solution for this issue is to make sure the identification section "Identification for Oracle DB entry point type(s) - no instance" . executes before "dentification for Oracle DB entry point type(s) - no instance on Solaris" - So i have changed the order on the pattern for the correct identification section to be executed first. - To confirm the issue has been resolved, i ran a discovery on vm-ktkdevdb-01 (172.18.24.33) . See DIS0010142 Now the SID is updated on the oracle instances https://yalesandbox.service-now.com/cmdb_ci_db_ora_instance.do?sys_id=8973fd411bf1005493463153cd4bcb26&sysparm_view= https://yalesandbox.service-now.com/cmdb_ci_db_ora_instance.do?sys_id=bad41982db7d48107150132968961938&sysparm_view=




    8

    security Patch Level 









    Probes


    Image Added

    Oracle Probes

    Oracle Instance

    • Horizontal discovery probe: launches patterns
    • Powershell-Oracle - Instance PFile (for Windows)*
    • Powershell-Oracle - Instance Version (for Windows)*
    • SSHCommand-Oracle - Instance Details (for Linux)*



    Patterns


    Oracle Patterns
    Application patterns:
    • Oracle DB On Windows Pattern
    • Oracle DB on UNIX Pattern
    This shared library pattern used by the Linux Server pattern:
    • UNIX Cluster - ORACLE Clusterware
    Note: This shared library pattern is triggered if the crsd.bin process is running on the Oracle database server.

    Oracle Discovery Data Collections


    Data collected on UNIX machines

    LabelField nameAdditional information
    SIDsidObtained from the name of the process that starts with ora_pmon_
    Install directoryinstall_directoryObtained from the path of ORA_HOME
    VersionversionObtained in this order:
    • From the output of the ORA_HOME/bin/sqlplus /NOLOG command
    • From the output of the ORA_HOME/bin/lsnrctl status command
    • From the path of ORA_HOME
    Parameter filepfileThe following locations are explored for the location of the System Parameter File. If this file does not exist in one of the explored locations, Discovery does not find the file and reports an error.
    • oracle_home/dbs/spfileSID.ora
    • oracle_home/dbs/spfile.ora
    • oracle_home/dbs/initSID.ora
    Oracle Homeoracle_homeObtained from the ORATAB file.
    Editionedition


    Data collected on Windows machines

    LabelField nameAdditional information
    SIDsidObtained from the process parameter that is passed to the oracle.exe process.
    Install directoryinstall_directory
    VersionversionObtained from the output of the ORA_HOME/bin/sqlplus.exe -V command.
    Parameter filepfileThe following locations are explored for the location of the System Parameter File. If this file does not exist in one of the explored locations, Discovery does not find the file and reports an error.
    • oracle_home\database\spfileSID.ora
    • oracle_home\database\spfile.ora
    • oracle_home\database\initSID.ora
    Oracle Homeoracle_homeParsed from the path of oracle.exe
    Editionedition

    cmdb_ci_db_ora_instance Data attributes


    u_ = added fields

    MandatorySort in ascending orderTypeSort in ascending orderReferenceSort in ascending orderMax lengthSort in ascending orderDefault valueSort in ascending orderDisplaySort in ascending order
    Host Environmentu_host_environmenttrueString(empty)40
    false
    Lifecycle Classificationu_lifecycle_classificationtrueString(empty)40
    false
    University Sponsor Leaderu_univ_sponsor_leadtrueReferenceUser32
    false
    University Areasu_university_areastrueListUniversity Area1,024
    false
    Sys IDsys_idtrueSys ID (GUID)(empty)32
    false
    Used byu_used_bytrueListApplications Used By1,024
    false
    Package Typeu_package_typetrueString(empty)40
    false
    NamenametrueString(empty)255
    true
    Host Typeu_host_typetrueReferenceHost Type32
    false
    Operational statusoperational_statustrueInteger(empty)1001false
    Descriptionshort_descriptiontrueString(empty)1,000
    false
    Can Printcan_printfalseTrue/False(empty)40falsefalse
    Skip syncskip_syncfalseTrue/False(empty)40falsefalse
    Most recent discoverylast_discoveredfalseDate/Time(empty)40
    false
    Lifecycle Dateu_lifecycle_datefalseDate(empty)40
    false
    Configuration directoryconfig_directoryfalseString(empty)255
    false
    ClassifierclassifierfalseReferenceProcess Classification32
    false
    Business Value Scoreu_business_value_scorefalseChoice(empty)40
    false
    Operational Controlsu_operational_controlsfalseString(empty)40
    false
    Clusteredu_clusteredfalseTrue/False(empty)40
    false
    Other High Risku_other_high_riskfalseString(empty)200
    false
    Fault countfault_countfalseInteger(empty)400false
    Functional Contactmanaged_byfalseReferenceUser32
    false
    Decommission Dateu_decommission_datefalseDate(empty)40
    false
    GL accountgl_accountfalseString(empty)40
    false
    PIDpidfalseInteger(empty)40
    false
    Last SDR Approval Dateu_last_sdr_approval_datefalseDate(empty)40
    false
    Future Platform Componentsu_future_platform_componentsfalseListPlatform Component1,024
    false
    CostcostfalseFloating Point Number(empty)40
    false
    PO numberpo_numberfalseString(empty)40
    false
    Cost currencycost_ccfalseString(empty)3USDfalse
    Is a Disaster Recovery Plan Required?u_dr_plan_requiredfalseString(empty)40Nofalse
    Order receiveddelivery_datefalseDate/Time(empty)40
    false
    Domainsys_domainfalseDomain ID(empty)32globalfalse
    Primary Supportu_primary_supportfalseReferenceUser32
    false
    Notesu_notesfalseJournal(empty)4,000
    false
    programming ver expu_programming_ver_expfalseString(empty)40
    false
    Environmentu_environmentfalseString(empty)40
    false
    CategorycategoryfalseString(empty)40javascript:gs.include("CMDBItem");var it...false
    Support Vendoru_support_vendorfalseReferenceCompany32
    false
    Platform Componentsu_platform_componentsfalseListPlatform Component1,024
    false
    TCP port(s)tcp_portfalseString(empty)255
    false
    ManufacturermanufacturerfalseReferenceCompany32
    false
    Classsys_class_namefalseSystem Class Name(empty)80javascript:current.getTableName();false
    Used forused_forfalseString(empty)40Productionfalse
    Installedinstall_datefalseDate/Time(empty)40
    false
    PagerDuty servicex_pd_integration_pagerduty_servicefalseString(empty)40
    false
    Accessibility Support Groupu_accessibility_support_groupfalseReferenceGroup32b0dea7a56f1771007ee2abcf9f3ee477false
    Credentialless Discovery Portcl_portfalseInteger(empty)40
    false
    PagerDuty webhookx_pd_integration_pagerduty_webhookfalseString(empty)40
    false
    Updated bysys_updated_byfalseString(empty)40
    false
    Recovery Tier Justificationu_recovery_tier_justificationfalseListRecovery Tier Justification1,024
    false
    SOXu_soxfalseTrue/False(empty)40
    false
    Requires verificationunverifiedfalseTrue/False(empty)40
    false
    Recovery Tieru_recovery_tierfalseString(empty)40
    false
    Quickbase Application IDu_quickbase_idfalseString(empty)40
    false
    Configuration fileconfig_filefalseString(empty)255
    false
    Statusinstall_statusfalseInteger(empty)40
    false
    Supported bysupported_byfalseReferenceUser32
    false
    Start datestart_datefalseDate/Time(empty)40
    false
    Data Sensitivityu_data_classificationfalseString(empty)40
    false
    Created bysys_created_byfalseString(empty)40
    false
    Maintenance schedulemaintenance_schedulefalseReferenceSchedule32
    false
    Application Scopeu_application_scopefalseString(empty)40
    false
    Owned byowned_byfalseReferenceUser32
    false
    Running process parametersrunning_process_parametersfalseString(empty)65,000
    false
    Secondary Supportu_secondary_supportfalseReferenceUser32
    false
    Accessibility Contactu_accessibility_contactfalseReferenceUser32
    false
    Regulated Informationu_other_contractual_informationfalseString(empty)10
    false
    AssetassetfalseReferenceAsset32
    false
    Checked inchecked_infalseDate/Time(empty)40
    false
    Last TAC Approval Dateu_last_tac_approvalfalseDate(empty)40
    false
    External Obligationsu_regulated_infofalseListRegulated Information4,000
    false
    Support groupsupport_groupfalseReferenceGroup32
    false
    DR Plan ID #u_dr_plan_idfalseString(empty)40
    false
    DNS Domaindns_domainfalseString(empty)255
    false
    Purchasedpurchase_datefalseDate(empty)40
    false
    Listener namelistener_namefalseString(empty)255
    false
    Orderedorder_datefalseDate/Time(empty)40
    false
    Serial numberserial_numberfalseString(empty)255
    false
    Display nameu_display_namefalseString(empty)255
    false
    VendorvendorfalseReferenceCompany32
    false
    CompanycompanyfalseReferenceCompany32
    false
    Running process key parametersrunning_process_key_parametersfalseString(empty)65,000
    false
    Lease contractlease_idfalseString(empty)40
    false
    Third Party Supportu_third_party_supportfalseReferenceCompany32
    false
    Pfile/ Spfileu_pfilespfilefalseString(empty)40
    false
    Latest Risk Assessmentu_risk_assessment_idfalseString(empty)40
    false
    Asset tagasset_tagfalseString(empty)40
    false
    Production Start Dateu_production_datefalseDate(empty)40
    false
    License Countu_license_countfalseString(empty)40
    false
    Target Decommissioning Dateu_target_decommissioning_datefalseDate(empty)40
    false
    Running process commandrunning_process_commandfalseString(empty)65,000
    false
    MonitormonitorfalseTrue/False(empty)40falsefalse
    PfilepfilefalseString(empty)8,000
    false
    Recovery Time Objective (RTO)u_recovery_time_objective_rtofalseString(empty)40
    false
    sys_class_pathsys_class_pathfalseSystem Class path(empty)255javascript:GlideDBObjectManager.get().ge...false
    Technology Fit Scoreu_technology_fit_scorefalseChoice(empty)40
    false
    Correlation IDcorrelation_idfalseString(empty)512
    false
    VersionversionfalseString(empty)255
    false

    ...

    DatediscoverysourcedepartmentDepartmentapplicationismeChoice
    License Typeu_license_typefalseString(empty)40
    false
    SDR #u_last_sdr_numberfalseInteger(empty)40
    false
    JustificationjustificationfalseString(empty)80
    false
    Oracle Homeoracle_homefalseString(empty)255
    false
    Functional Owning Organizationu_functional_owning_orgfalseString(empty)40
    false
    EditioneditionfalseString(empty)100
    false
    Hostingu_hostingfalseString(empty)40
    false
    Assigned toassigned_tofalseReferenceUser32
    false
    Target Cloud Deploymentu_target_cloud_deploymentfalseString(empty)40
    false
    DR Plan Next Testing Dateu_dr_plan_next_testfalseDate(empty)40
    false
    DR Plan Next Approval Dateu_dr_plan_next_approvalfalseDate(empty)40
    false
    SubcategorysubcategoryfalseString(empty)40
    false
    AssignedassignedfalseDate/Time(empty)40
    false
    Invoice numberinvoice_numberfalseString(empty)40
    false
    Data Typesu_data_security_classificationfalseListData Security Classification Type1,024
    false
    SIDsidfalseString(empty)40
    false
    Createdsys_created_onfalseDate/Time(empty)40
    false
    Project Number and Nameu_project_number_and_namefalseString(empty)40
    false
    Checked outchecked_outfalseDate/Time(empty)40
    false
    Running processrunning_processfalseReferenceRunning Process32
    false
    AttributesattributesfalseString(empty)65,000
    false
    Domain Pathsys_domain_pathfalse(empty)(empty)255
    false
    Updatedsys_updated_onfalseDate/Time(empty)40
    false
    Business Criticalityu_business_criticalityfalseString(empty)40
    false
    Model IDmodel_idfalseReferenceProduct Model32
    false
    Other Moderate Risku_other_moderate_riskfalseString(empty)200
    false
    InstanceinstancefalseString(empty)40
    false
    SDR Informationu_sdr_informationfalseString(empty)40
    false
    Recovery Point Objective (RPO)u_recovery_point_objective_rpofalseString(empty)40
    false
    Approval groupchange_controlfalseReferenceGroup32
    false
    Installation directoryinstall_directoryfalseString(empty)255
    false
    Fully qualified domain namefqdnfalseString(empty)255
    false
    Risk Classificationu_risk_levelfalseString(empty)40
    false
    Future Host Environmentu_future_host_environmentfalseString(empty)40
    false
    Monitoringu_monitoringfalseTrue/False(empty)40
    false
    Is clusteredis_clusteredfalseTrue/False(empty)40
    false
    Running process command hashrp_command_hashfalseString(empty)255
    false
    Management IP Addressip_addressfalseString(empty)255
    false
    LocationlocationfalseReferenceLocation32
    false
    Software Installsoftware_installfalseReferenceSoftware Installation32
    false
    First discoveredfirst_discoveredfalseDate/Time(empty)40
    false
    Warranty expirationwarranty_expirationfalseDate(empty)40
    false
    Model numbermodel_numberfalseString(empty)255
    false
    Future Host Typeu_future_host_typfalseReferenceHost Type32
    false
    Platformu_platformfalseReferenceQuickbase Platforms40
    false
    Assignment groupassignment_groupfalseReferenceGroup32
    false
    DR Plan Last Tested Dateu_dr_plan_last_testfalseDate(empty)40
    false
    Due indue_infalseString(empty)40
    false
    CommentscommentsfalseString(empty)4,000
    false
    Cost centercost_centerfalseReferenceCost Center32
    false
    Aliasu_aliasfalseString(empty)100
    false
    DueduefalseDate/Time(empty)40
    false
    Programming Langu_programming_langfalseListProgramming Language1,024
    false
    Updatessys_mod_countfalseInteger(empty)40
    false
    MAC Addressmac_addressfalseString(empty)40
    false
    Data Centeru_reference_1falseReferenceData Center32bac72b5137130200f212cc028e41f1b8false
    Running process key parameters hashrp_key_parameters_hashfalseString(empty)255
    false
    DR Plan Last Approvedu_dr_plan_last_approvallast_approvalfalseDate(empty)40
    false
    Discovery sourcediscovery_sourcefalseString(empty)40
    false
    DepartmentdepartmentfalseReferenceDepartment32
    false
    Application ISMEu_application_ismefalse
    Choice(empty)40
    falseDiscovery source
    Accessibility
    u_
    accessibilityfalseString(empty)40
    falseDepartment
    Schedule
    schedulefalseReference
    Schedule32
    falseApplication ISME
    Service Nameu_
    service_
    namefalse
    String(empty)40
    false

    User Interface

    ...

    User Interface

    Main Form

    ...

    Main Form

    Image Added


    User Interface Requirement

    Currently discovery process is not getting them Security Patch Level. This is really important for them. He just wants to capture the top row (latest security patch) brought back through the command. Please let me know if this is doable. If it is doable we can add the data attribute to the UI. Right now it is maintained manually in spreadsheets (not always up-to-date). 

    Having it is Important because Oracle team have to follow ISO requirement of keeping Oracle Databases with up to date with all the security vulnerabilities out there and only way to do is - by applying the patches that comes out quarterly.

    Relationships

    Tracked Configuration Files


    Dependency View


    Relationships





    Validation Steps


    StepDescriptionVerdict






    Open Questions

    QuestionAnswerDate Answered

    Out of Scope