Collecting output received by executing a script over an SSH connection
To collect output received by executing a script over an SSH connection, you need to create the Monitor script output over SSH data collector.
If you have data stored in a database or another product repository and this data is unavailable via log files, you can collect data by using this data collector.
This data collector cannot be used to collect data that is generated as a result of running the binary files (or executable files). For example, .exe files on the Windows platform.
BMC recommends that you to not use scripts with infinite loops and provide a timeout duration so that you do not face issues with data collection.
To collect output received by executing a script over an SSH connection
- Navigate to Administration > Data Collectors > Add Data Collector .
- In the Name box, provide a unique name to identify this data collector.
- From the Type list, select Monitor script output over SSH.
Provide the following information, as appropriate:
Field Description Target/Collection Host Target Host
(Optional) Select from a list of hosts that you have already configured under Administration > Hosts.
The target host is the computer from which you want to retrieve the data. You can choose to select the target host and inherit the host-level tags and group access permissions already added to the host, or manually enter the host name in the Server Name field.
Note: For this type of data collector, the SSH File Transfer Protocol (sftp) sub system should be enabled on target host.
Collection Host (Agent)
Type or select the collection host depending on whether you want to use the Collection Station or the Collection Agent to perform data collection.
The collection host is the computer on which the Collection Station or the Collection Agent is located.
By default, the Collection Station is already selected. You can either retain the default selection or select the Collection Agent.Note: For this type of data collector, the target host and collection host are expected to have different values.
Collector Inputs Server Name
The host name of the server on which the data is generated as a result of running the script.Note: If you selected a target host earlier, this field is automatically populated.
(Optional) Select one of the following options:
- Apply security credential to automatically populate the user name and password fields.
Then select the appropriate credential (profile) from the Available Credential list that you already configured under Administration > Credentials.
- Provide Credential to manually add user name and password credentials.
Then enter the credentials in the User Name and Password fields.
You can also create a credential that uses the manually entered details by clicking Add Credential next to the Password field.
Provide the user name for connecting with the server from which you want to retrieve the data.
Note: This field is disabled if you applied a security profile earlier.
The product supports only password-based authentication for connecting with the SSH server.
Provide the password for connecting with the server from which you want to retrieve the data.
Click Add Credential Administration > Credentials., provide a credential name, and click OK to create a new credential (profile) from the credentials that you provided in the user name and password fields. Once this credential is created, it is displayed under
Note: This field is disabled if you applied a security credential earlier.
Provide the complete path to the script that you want to execute on the remote computer for retrieving data.
You can also pass parameters dynamically while executing the script.
For example, you can execute the following script that takes the input parameter as your name and prints "Hello."Script example
#!/bin/bash echo "Hello $1"
In this case, you must enter script.sh MyName in this field.
script.sh is the name of the file in which you saved the preceding script.
MyName refers to the name that you want to pass as the input parameter.Note: If there is a space character in one of the directory names in your script path, then you must enclose the directory name with double quotes (").
(Optional) Accept the default Use file time zone option or select a time zone from the list.
With the default option, data is indexed as per the time zone available in the data file. If the data file does not contain a timezone, then the time zone of the Collection Host (Collection Station or Collection Agent server) is used.
Keep in mind that the selected timezone must match the timezone of the server from which you want to collect data. If you manually specify the timezone despite the file containing a timezone, then the manually specified timezone overrides the file timezone.
The field Time Zone takes into account the changes due to Daylight Savings Time (DST) where ever applicable.
Data Pattern Pattern
Assign the data pattern (and optionally date format) for indexing the data file.
The data pattern and date format together decide the way in which the data will be indexed. When you select a data pattern, the matching date format is automatically selected. However, you can override the date format by manually selecting another date format or by selecting the option to create a new date format. By doing this, the date format is used to index the date and time string, while rest of the data is indexed as per the data pattern selected.
Instead of manually browsing through the list of available data patterns, you can click Auto-Detect to automatically find a list of matching data patterns. If no matching data patterns are found, then a list of matching date formats is displayed. By selecting the date format, the date and time string (in the data) is indexed with the selected date format, while rest of the data is indexed as free text.
If you cannot find both matching data patterns and date formats, then you can choose to index the data as free text. Depending on whether the data contains a date and time string, you can choose to assign the data pattern as Free Text with Timestamp or Free Text without Timestamp. All the records processed by using the Free Text without Timestamp option are assumed to be a single line of data with a line terminator at the end of the event. To distinguish records in a custom way, you can specify a custom string or regular expression in the Event Delimiter box, which decides where the new line starts in the data.
If you are collecting JSON data, then depending on whether the data contains a date and time string, you can assign the data pattern as JSON with Timestamp or JSON without Timestamp.
After assigning the data pattern (and optionally date format), you can preview the sample records.
For more information, see Assigning the data pattern and date format to a data collector.
- Before filtering the relevant data patterns by clicking Auto-Detect, ensure that the correct is set.
- If you select both – a pattern and a date format, the product uses the date format to index the timestamp and the pattern to index rest of the event data.
Date Format Date Locale
(Optional) You can use this setting to enable reading the date and time string based on the language selected. Note that this setting only applies to those portions of the date and time string that consist letters (digits are not considered).
By default, this value is set to English.
You can manually select a language to override the default locale. For a list of languages supported, see
If your data file uses a character set encoding other than UTF-8 (default), then do one of the following:
- Filter the relevant character set encodings that match the file.
To do this, click Filter relevant charset encoding next to this field.
- Manually scan through the list available and select an appropriate option.
- Allow TrueSight IT Data Analytics to use a relevant character set encoding for your file by manually select the AUTO option.
Script Time Out (mins) Specify the time duration (in minutes) after which the script must time out. By default, this value is set to 10. Poll Interval (mins)
Specify the interval (in minutes) after which the script must be executed and the script output data must be collected. By default, this value is set to 1.
The value of this field is passed as the last argument to the script.
Start/Stop Collection (Optional) Select this check box if you want to start the data collection immediately.Advanced Options Ignore Data Matching Input
(Optional) If you do not want to index certain lines in your data file, then you can ignore them by providing one of the following inputs:
- Provide a line that consistently occurs in the event data that you want to ignore. This line will be used as the criterion to ignore data during indexing.
- Provide a Java regular expression that will be used as the criterion for ignoring data matching the regular expression.
Example: While using the following sample data, you can provide the following input to ignore particular lines.
- To ignore the line containing the string, "WARN", you can specify WARN in this field.
- To ignore lines containing the words both "WARN" and "INFO", you can specify a regular expression
.*(WARN|INFO).*in this field.
Sep 25, 2014 10:26:47 AM net.sf.ehcache.config. ConfigurationFactory parseConfiguration():134 WARN: No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: Sep 25, 2014 10:26:53 AM com.bmc.ola.metadataserver. MetadataServerHibernateImpl bootstrap():550 INFO: Executing Query to check init property: select * from CONFIGURATIONS where userName = 'admin' and propertyName ='init' Sep 30, 2014 07:03:06 PM org.hibernate.engine.jdbc.spi. SqlExceptionHelper logExceptions():144 ERROR: An SQLException was provoked by the following failure: java.lang.InterruptedException Sep 30, 2014 04:39:27 PM com.bmc.ola.engine.query. ElasticSearchClient indexCleanupOperations():206 INFO: IndexOptimizeTask: index: bw-2014-09-23-18-006 optimized of type: data
Indicates the index block with which you want to associate the data collector. You can associate a data collector to one of the various index blocks, each having a configurable retention period.
By default, this value is set to Small.
The maximum number of index blocks allowed are 5. Besides the three defined index blocks, Small, Medium and Large, you can create two more custom index blocks.
When you select an index block, the properties of that index block are displayed below it. The properties that are displayed are:
- Archive: This indicates whether the data that you index using the selected index block will be archived.
- Retention Days: This indicates the retention days associated with the index block.
Following are the retention days associated with the typical index blocks. The retention days displayed can be as configured by your Administrator.Select the index block as per your needs of retention days and the Archive status. If the Archive status is Off and you need to archive your data, contact your administrator to set the Archive status for the index block to On. For more information on how to set the archive status of the index block, see Changing System Settings.
Index Block Retention Small 7 Medium 14 Large 30 Metrics 7
If you select the ITDA Metrics data pattern while creating a data collector, the Index Block field is unavailable since the Metrics Index Block is automatically associated with the data collector.
Best Effort Collection
(Optional) If you clear this check box, only those lines that match the data pattern are indexed; all other data is ignored. To index the non-matching lines in your data file, keep this check box selected.
Note: Non-matching lines in the data file are indexed on the basis of the Free Text with Timestamp data pattern.
Example: The following lines provide sample data that you can index by using the Hadoop data pattern. In this scenario, if you select this check box, all lines are indexed. But if you clear the check box, only the first two lines are indexed.Sample data
2014-08-08 15:15:43,777 INFO org.apache.hadoop.hdfs.server. datanode.DataNode.clienttrace: src: /10.20.35.35:35983, dest: /10.20.35.30:50010, bytes: 991612, op: HDFS_WRITE, cliID: 2014-08-08 15:15:44,053 INFO org.apache.hadoop.hdfs.server. datanode.DataNode: Receiving block blk_-6260132620401037548_ 683435 src: /10.20.35.35:35983 dest: /10.20.35.30:50010 2014-08-08 15:15:49,992 IDFSClient_-19587029, offset: 0, srvID: DS-731595843-10.20.35.30-50010-1344428145675, blockid: blk_-8867275036873170670_683436, duration: 5972783 2014-08-08 15:15:50,992 IDFSClient_-19587029, offset: 0, srvID: DS-731595843-10.20.35.30-50010-1344428145675, blockid: blk_-8867275036873170670_683436, duration: 5972783
Pass poll interval to script
(Optional) Select this check box if you are using a custom script that requires the poll interval information.
By doing this, the poll interval information is passed as an argument to the script at run time. The following argument is passed to the script:
In the preceding argument,
<Poll-Interval-Value>refers the poll interval (in seconds) used by the data collector.
Execute script as binary (Optional) Select this check box if the the script which you want to execute is a binary file. Host Key Fingerprint
(Optional) Provide the fingerprint of the RSA host key to connect with the server from which you want to retrieve the data.
This is the host key that is configured to be used by the SSH server with which you want to connect.
Example:Tip: To get the RSA host key fingerprint, you might want to contact your SSH server administrator.
For more information, see About the SSH host key fingerprint (BMC contributor page).Tags
Inherit Host Level Tags From Target Host (Optional) Select this check box to inherit your tag selections associated with the target host that you selected earlier. This option is not applicable if you did not select a target host. Note: After selecting this check box, you can further manually select additional user groups. When you manually select additional user groups, both the inherited permissions as well as the manually assigned permissions are applied. To remove the inherited permissions, clear this check box. Select Tag name and corresponding value
(Optional) Select a tag name and specify the corresponding value by which you want to categorize the data collected. Later while searching data, you can use these tags to narrow down your search results.
Example: If your are collecting data from hosts located at Houston, you can select a tag name for "Location" and in the value specify "Houston". While searching the data, you can use the tag, Location="Houston" to filter data and see results associated with the Houston location.
To be able to see tag names, you need to first add them by navigating to Administration > System Settings.To specify tag names and corresponding values, in the left box select a tag name and then type the corresponding tag value in the right box. While you type the value, you might see type-ahead suggestions based on values specified in the past. If you want to use one of the suggestions, click the suggestion. Click Add to add the tag name and corresponding value to the list of added tags that follow. Click Remove Tag to remove a tag.
The tags saved while creating the data collector are displayed on the Search tab, under the Filters panel, and in the Tags section.
Note: At a time, you can specify only one value for a tag name. To specify multiple values for the same tag name, each time you need to select the tag name, specify the corresponding value, and click Add.
For more information about tags, see Understanding tags.Group Access
Inherit Host Level Access Groups From Target Host (Optional) Select this check box to inherit your group access configurations associated with the target host that you selected earlier. This option is not applicable if you did not select a target host.
Note: After selecting this check box, you can further manually select additional user groups. When you manually select additional user groups, both the inherited permissions as well as the manually assigned permissions are applied. To remove the inherited permissions, clear this check box.
Select All Groups
(Optional) Select this option if you want to select all user groups. You can also manually select multiple user groups.
Notes: You can access data retrieved by this data collector based on the following conditions.
- If user groups are not selected and data access control is enabled: Only the creator of the data collector can access data retrieved by this data collector.
- If user groups are not selected and if data access control is not enabled: All users can access data retrieved by this data collector. You can restrict access permissions by selecting the relevant user groups that must be given access permissions. To enable data access control, navigate to Administration > System Settings.
For more information, see Managing user groups in IT Data Analytics.
- Apply security credential to automatically populate the user name and password fields.
Click Create to save your changes.
Ensure the following:
-If you are running the Agent service, you must have the permissions to execute the scripts on the computer where the Collection Agent is installed.
-Commands and files that are not to be exposed to the TrueSight IT Data Analytics Admin user for data collection or script execution, should not be accessible by the user running the Agent service.