Introduction

Solaris is a proprietary operating system which is provided by Oracle Corporation. It is an Unix-like operating system and it is written in C and C++ programming languages. It uses a mixed-source model, which includes both open and closed source components. The initial version of Solaris was released in 1992 by Sun Microsystems, and it was later acquired by Oracle Corporation in 2010. This operating system uses a monolithic kernel with dynamically loadable modules.

Pre-requisites

  • Users must have either OpsRamp Classic Gateway 10.0 or OpsRamp Cluster Gateway installed.
  • Ensure that Adapter Integrations add-on is enabled in client configuration. Once enabled, go to Setup > Integrations > Adapter to see Solaris OS Server integration.
  • User should have read permissions access to files /dev/mem, /dev/kmem in order to fetch the below metrics:
    • solaris_os_server_openFileDescriptors_Utilization
    • solaris_os_server_openFileDescriptors_UsedCount
    • solaris_os_server_loggedInUsers_Pct
    • solaris_os_server_runningProcesses_Pct
    • solaris_os_server_Semaphores_Utilization
    • solaris_os_server_messageQueueIDs_Utilization
    • solaris_os_server_sharedMemoryIDs_Utilization
  • Users should have a tmp folder, the app will use it to store cache data while running Log monitoring script for fetching latest logs.
  • Users who want to apply log file monitoring, must have a home directory on the system on which the script will be run.
pwd

[content@centos-node1 ~]$ pwd
/home/content

Install the integration

  1. From All Clients, select a client.
  2. Go to Setup > Integrations > Integrations.
  3. From Available Integrations, select Adapter > Solaris OS Server. You may also search for the app in the Integration List section.
  1. Click on Solaris OS Server app to install it.
  1. The Install Solaris OS Server Integration popup appears. Enter the following information:
    a. Name: Name of the integration
    b. Upload Logo: Optional logo for the integration.
    c. GateWay Profiles: Select a gateway management profile to associate with the client.

  2. Click Install. The Integration page displays the installed integration.

Configure the integration

  1. In CONFIGURATION section, click +Add.
  1. On Create Adapter Configuration, enter:
    • Name: Configuration name.
    • IP Address/Host Name: IP address or host name of the target.
    • Notification Alerts: Select TRUE or FALSE. If you select TRUE, App will handle Critical/Recovery failure alert notifications for Connectivity, Authentication Exceptions.
    • Additional Configurations: Add additional configuration details, such as file system, process, and so on. The Log File Configuration is part of the additional configuration, configure the values for below fields as per your log file monitoring use case:
      • Name
      • File Name
      • Rotated File Name
      • Expression
      • Check Type
      • Threshold
      • Severity
  2. From the Credential section, select Custom and enter the Username and Password.
  3. From the Resource Types & Metrics section, select the metrics and configure for availability and alert conditions, for Cluster & Server.
  4. In the Discovery Schedule section, configure how frequently the discovery action should trigger. Select Recurrence Pattern to add one of the following patterns:
    • Minutes
    • Hourly
    • Daily
    • Weekly
    • Monthly
  5. In the Monitoring Schedule section, configure how frequently the monitoring action should trigger.
  1. Click Save.
  2. After saving the integration, Solaris resources are discovered and monitoring is enabled as specified by the configuration profile.

The configuration is saved and displayed on the page. You can perform the actions manually, like Discovery, Monitoring or even Disable the configuration.

Resource information

  1. To view the resource information, go to Infrastructure > Resources > Server.
  2. Use the search function to find your resource and then click on it.

View resource attributes

The discovered resource(s) are displayed under Attributes. In this page you will get the basic information about the resources such as: Resource Type, Native Resource Type, Resource Name, IP Address etc.

View resource metrics

To confirm Solaris OS Server monitoring, review the following:

  • Metric graphs: A graph is plotted for each metric that is enabled in the configuration.
  • Alerts: Alerts are generated for metrics that are configured as defined for integration.

Supported metrics

Resource Type: Server

Metric NameDisplay NameUnits
solaris_os_server_openFileDescriptors_UtilizationSolaris OS Server open file descriptor utilizationPercent
solaris_os_server_openFileDescriptors_UsedCountSolaris OS Server open file descriptor used countCount
solaris_os_server_loggedInUsers_PctSolaris OS Server logged in users percentagePercent
solaris_os_server_loggedInUsers_CountSolaris OS Server logged in users count
Count
solaris_os_server_runningProcesses_PctSolaris OS Server running processes percentage
Percent
solaris_os_server_runningProcesses_CountSolaris OS Server running processes countCount
solaris_os_server_semaphores_UtilizationSolaris OS Server semaphores utilizationPercent
solaris_os_server_semaphores_UsedCountSolaris OS Server semaphores used countCount
solaris_os_server_messageQueueIDs_UtilizationSolaris OS Server message queue IDs utilizationPercent
solaris_os_server_messageQueueIDs_UsedCountSolaris OS Server message queue IDs used countCount
solaris_os_server_sharedMemoryIDs_UtilizationSolaris OS Server shared memory IDs utilizationPercent
solaris_os_server_sharedMemoryIDs_UsedCountSolaris OS Server shared memory IDs used countCount
solaris_os_server_cpu_total_UtilizationSolaris OS Server CPU utilizationPercent
solaris_os_server_cpu_logicalProcessor_UtilizationSolaris OS Server CPU logical processor utilizationPercent
hsolaris_os_server_cpu_LoadSolaris OS Server CPU load
solaris_os_server_realMemory_ScanRateSolaris OS Server real memory scan ratepsec
solaris_os_server_realMemory_pageOuts_PagesPerSecSolaris OS Server real memory page outs pages per secpsec
solaris_os_server_realMemory_pageOuts_KiloBytesPerSecSolaris OS Server real memory page outs kilobytes per secKBps
solaris_os_server_memory_UsedInMBSolaris OS Server memory usedMB
solaris_os_server_memory_UtilizationSolaris OS Server memory utilizationPercent
solaris_os_server_swapMemory_UsedInKBSolaris OS Server swap memory usedKB
solaris_os_server_swapMemory_UtilizationSolaris OS Server swap memory utilizationPercent
solaris_os_server_individual_swapArea_UtilizationSolaris OS Server individual swap area utilizationPercent
solaris_os_server_fileSystem_space_UtilizationSolaris OS Server file system space utilizationPercent
solaris_os_server_fileSystem_space_UsedInMBSolaris OS Server file system space used in MBMB
solaris_os_server_fileSystem_space_DeltaInKBSolaris OS Server file system space delta in KBKB
solaris_os_server_fileSystem_Inodes_UtilizationSolaris OS Server file system Inodes utilizationPercent
solaris_os_server_fileSystem_Inodes_Usage_NumberSolaris OS Server file system Inodes usage numberCount
solaris_os_server_fileSystem_Inodes_DeltaSolaris OS Server file system Inodes deltaCount
solaris_os_server_fileSystem_mount_ChangeDetectionSolaris OS Server file system mount change detection
solaris_os_server_mountpoint_space_UtilizationSolaris OS Server mount point space utilizationPercent
solaris_os_server_mountpoint_space_UsedInMBSolaris OS Server mount point space used in MBMB
solaris_os_server_mountpoint_space_DeltaInKBSolaris OS Server mount point space delta in KBKB
solaris_os_server_mountpoint_Inodes_UtilizationSolaris OS Server mount point Inodes utilizationPercent
solaris_os_server_mountpoint_Inodes_Usage_NumberSolaris OS Server mount point Inodes usage numberCount
solaris_os_server_mountpoint_Inodes_DeltaSolaris OS Server mount point Inodes deltaCount
solaris_os_server_mountpoint_availability_StatusSolaris OS Server mount point availability status
solaris_os_server_network_interface_OutTrafficSolaris OS Server Network Out TrafficKbps
solaris_os_server_network_interface_OutPacketsSolaris OS Server Network out packetspackets/sec
solaris_os_server_network_interface_OutErrorsSolaris OS Server Network Out ErrorsCount
solaris_os_server_network_interface_InPacketsSolaris OS Server Network In packetspackets/sec
solaris_os_server_network_interface_InErrorsSolaris OS Server Network In ErrorsCount
solaris_os_server_network_interface_CollisionsSolaris OS Server Network Interface collisionsCount
solaris_os_server_network_interface_InTrafficSolaris OS Server Network In TrafficKbps
solaris_os_server_process_RunningStatusSolaris OS Server process running status
solaris_os_server_zfs_zpool_UsedInGBSolaris OS Server ZFS zpool UsedGB
solaris_os_server_zfs_zpool_UtilizationSolaris OS Server ZFS zpool utilizationPercent
solaris_os_server_zfs_zpool_HealthSolaris OS Server ZFS zpool Health
solaris_os_server_zone_StatusSolaris OS Server zone status

Risks, limitations & assumptions

  • We are not supporting below monitorings as of now:
    • Hardware metrics
    • Processes (we provided one metric for each process RunningStatus. i.e, hpux_server_process_RunningStatus).
  • We are using below commands to fetch max limits as per the Oracle Documentation!.
Max Limit Commands

Semaphore ID Limit: echo seminfo_semmni/D | mdb -k

Shared memory ID Limit: echo shminfo_shmmni/D | mdb -k

Message Queue ID Limit: echo msginfo_msgmni/D | mdb -k
  • Need below json payload as input for log monitoring:
    • Name: This can be any string used to identify individual log configuration.
    • File Name: It is a combination of folder path and file name. Folder path should contain the exact path for the file as prefix. File name can be any valid string or regular expression. In case of file not found with specified file name, alert will be generated with the severity specified by the user. Example 1: C:\Program Files (x86)\Vistara\Agent\log\Age.?t.log Matches: Agent.log, Ageat.log ,..
    • Rotated File Name: It is similar to file name field but specifying the rotated file. This is a optional field.
    • Expression: This can be any valid string or regular expression used to specify the search string. It’s a mandatory field.
    • Check Type: This can be either “exists” or “not exists”(case insensitive).
    • Threshold: This can be any valid integer. Alert will be generated in case of specified threshold breach happens.
    • Severity: It is used to specify the alert type to be created in case of expression found. Possible values are CRITICAL, WARNING, INFO, and OK (case insensitive).

Log file configuration:

 [
  {
  "Name":"",
  "File Name":"",
  "Rotated File Name":"",
  "Expression":"",
  "Check Type":"",
  "Threshold":"",
  "Severity":""
  }
]

  • We do not process logs of size greater than 1GB.
  • We do not process logs for the first request because it creates performance issues due to a large amount of data. We will process the second request based on the most recent logs (logs generated between the first and second polls).
  • No recovery alerts are generated for expression related alerts. We will get recovery only for file not found alerts.
  • App can handle Critical/Recovery failure alert notifications for below 2 cases when user enables Notification Alerts in configuration:
    • Connectivity Exception
    • Authentication Exception
  • App will not send any duplicate/repeat failure alert notification until the already existing critical alert is recovered.
  • App can’t control monitoring Pause/Resume actions based on above alerts.
  • Component level threshold configuration is not possible
  • Resource level metric threshold customization and frequency setting are not possible
  • Usability issues in app configuration page while adding/editing
  • Optional configuration parameters cannot be defined
  • App upgrade is manual process without version change