Page tree
Skip to end of metadata
Go to start of metadata


Discover with BMC Discovery
download

This product can be discovered by any edition of BMC Discovery. Download our free Community Edition to try it out, or [see what else it can discover] !

What is this?
This is a product information page, containing details of the information that BMC Discovery gathers about a product and how it is obtained.
Product Name
Infobright
Publisher Page
[Infobright]
Category
Relational Database Management Systems
Release
TKU 2017-Nov-1
Change History
[Infobright Infobright - Change History]
Reports & Attributes
Infobright Infobright - Reports & Attributes
Publisher Link
Infobright

Product Description

Infobright is a drop-in replacement for MySQL or PostgeSQL.

Infobright Community Edition (ICE) is an open source software solution designed to deliver a scalable data warehouse optimized for analytic queries. Combines a columnar database with our Knowledge Grid architecture to deliver a self-managing, self-tuning database optimized for analytics. ICE eliminates the need to create indexes, partition data, or do any manual tuning to achieve fast response for queries and reports. Built on MySQL, ICE lets you load and query large amounts of data easily and without the effort required with other databases.

Infobright Enterprise Edition (IEE) is a commercial software and requires licensing. Available in PostgreSQL and MySQL.

 On March 31, 2017 Ignite Buys Database Vendor Infobright 

More information is here. and here.

Known Versions

For ICE:

  • 3.4.2
  • 3.5.2
  • 4.0.7

For IEE

  • 4.6.0
  • 5.0.3

Infobright on MySQL

Software Pattern Summary

Product ComponentOS TypeVersioningPattern Depth
DatabaseServerUnixCommand (Active), PackageInstance-based
WindowsCommand (Active), Registry, Package

Platforms Supported by the Pattern

The patterns have been created in a manner that allows each of them to support Windows, Linux and Unix platforms from the same module.

Identification

Software Instance Triggers

OS TypeTrigger NodeAttributeConditionArgument
UnixDiscoveredProcesscmdmatchesregex'\bmysqld(?:-max)?$'
Windows

regex'(?i)\bmysqld\S*\.exe$'

Versioning

Version information for the product is currently collected using one of four possible methods.

The methods are tried in an order of precedence based on likely success and/or accuracy of the information that can be gathered. Once a result is obtained, the methods lower in precedence are not attempted. In order of precedence the methods are:

Active Versioning

We first of all check that the command line contains a full path to the trigger process by applying the command line to one of the following regular expressions (the first for Windows and the second for Unix/Linux):

  • ^(\w:\\.+?)$

  • ^(/.+?)$

If the full path to the process can be established, the following command is executed:

  • %process.cmd% -V

if output contains 'ice' or 'iee' string then it is applied against the following regular expression to extract the version:

  • 'IB_(\d+(?:\.\d+)*)'

Current command output also determines whether si_type = Infobright Enterprise Edition or si_type = Infobright Community Edition

Package Versioning

BMC Discovery executes a search for the installed packages and tries to match them against the following regular expression:

  •  '(?i)^Infobright\s*-?IEE\s*-?MySQL'

When it finds a match, it extracts the version for Infobright Enterprise Edition from the package information. If more than one package matches, only the version information from the first is extracted.

Registry Versioning

Windows only

The Registry Query functionality allows for a value to be pulled from the registry, given a valid registry path.

Also Registry query helps to determine si_type of the product.

The pattern queries the Windows Registry :

  • HKEY_LOCAL_MACHINE\\SOFTWARE\\Infobright\\DisplayVersion

If query is successful pattern assignes si_type = Infobright Community Edition and extracts full_version of the product.

Else it attemps ListRegistry query :

  • HKEY_LOCAL_MACHINE\\SOFTWARE\\Infobright IEE MySQL Edition

If the given query returnes value pattern assignes si_type = Infobright Enterprise Edition and extracts full_version of the product.

Application Model Produced by Software Pattern

The pattern has the MySQL Database Server (mysqld, mysqld-max or mysqld\S*\.exe) as its trigger process.

But then pattern uses active and registry versioning to determine si_type of the product.

If the trigger process is a child process with the same cmd as its parent, the pattern is immediately stopped; its body will be executed later when the parent trigger process is encountered.

Additional Attributes of the Software Instance created

Port information

On all platforms the pattern initially attempts to discover the database listening port information from the trigger process command line arguments by parsing against the following regular expressions in turn:

  • \-\-port=(\d+)

  • \-P\s+(\d+)

On all platforms the pattern then attempts to discover the database listening port information from the configuration (my-ib.ini) file.

The process command's arguments are parsed using one of the following regular expressions to obtain the full path to this file:

UNIX

  • --defaults-file=(\S+)

Windows

  • "--defaults-file=(.+?)"

  • --defaults-file=(\[Oracle MySQL Server^"s\]+)

  • --defaults-file="(\[Oracle MySQL Server^"\]+)"

On WIndows, if the argument, --defaults-file, is not present in the command line's arguments, the process command is parsed using the following regular expression to obtain the directory of configuration file: * (?i)(\w:.+)\\binOnce located and downloaded, the configuration file is parsed using one of the following regular expressions (dependant on whether instance is known or not) to obtain the port information:

  • (?i)\[%instance%\][^\[]*?port\s*=\s*(\d+)

  • \[\w*mysqld\][^\[]*?port\s*=\s*(\d+)

On UNIX platforms, a secondary method to obtain the listening port information may be used if the pattern determines that the Atrium Discovery user is not root (having executed the 'whoami' command to confirm this).
The pattern executes the following command:

Version 4.1.1 or greater

  • <abs. path to the trigger process binary>/mysqld --verbose --help | grep port

Versions older than 4.1.1

  • <abs. path to the trigger process binary>/mysqld --help | grep port

The output is parsed using the following regular expression: \nport\W*(\d+)

Licensing details

If si_type = Infobright Enterprise Edition and product version is known pattern will try to extract install_root using registry query :

  • 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Infobright IEE MySQL Edition\\<product_version>\\Path'

In case installation path is retrieved pattern will look for infobright.lic file and extract the following values:

lic_version - regex 'LicenseVersion=(\d+)'
lic_exp_date - regex 'LicenseExpiryDate=(\S+)'
lic_product_type - regex 'LicenseProductType=(\S+)'

Bind Address

On all platforms the pattern attempts to obtain the bind address from the configuration (my-ib.ini) file.

Once the file is obtained (as described above in the port information section), it is parsed using the following regular expression:

  • [^#]bind-address\s*=\s*((?:\d+\.){3}\d+)

On UNIX platforms, a secondary method to obtain the bind address information may be used if the pattern determines that the Atrium Discovery user is not root (having executed the 'whoami' command to confirm this).
The pattern executes the following command:

  • <abs. path to the trigger process binary>/mysqld --verbose --help | grep bind-address

The output is parsed using the following regular expression:

  • bind-address\s*((?:\d+\.){3}\d+)

Note

bind address is given for information only. The pattern is only able to directly query a database if it has the same IP address as the host

Socket Information

The pattern tries to establish what socket the application is connected to by applying the command line arguments against one of the following regular expressions (the first for Unix and the second for Windows): * socket=(\S+) * socket=(.+)\s

Datadir

The pattern tries to establish the data directory by applying the following regular expression(s) against the command line arguments:

UNIX * datadir=(\S+)If datadir cannot be established by the above methods on the UNIX platform, and the pattern was able to access the configuration file (when obtaining port / bind_address information), the configuration file is parsed using the following regular expression: * ^datadir=(\S+)Windows

  • (?i)datadir="([^"]+)"

  • (?i)datadir=(\S+)

If datadir cannot be established by the above methods on the Windows platform, and the pattern was able to access the configuration file (when obtaining port / bind_address information), the configuration file is parsed using the following regular expression: * (?i)^datadir="?(.+?)["\r]The information obtained is assigned to the db_path attribute on the SI created

Instance

The instance name is extracted from the very end of the trigger process command line arguments using the following regular expressions:

  • ("[^"]+")\s+(\w+)$-> \1###\2

  • ([\-\w]+)\s+(\w+)$-> \1###\2

followed by a third:

  • ###(\w+)$

Bind Address

An attempt is made to extract an ipv4 or ipv6 bind address from the trigger process command line argument by parsing against the following regular expression:

  • \-\-bind-address=((?:\d+\.){3}\d+|[\w\:]+)

or from the config file using one of the following regular expressions dependant upon whether instance is known or not:

  • (?i)\[<instance>\][^\[]*?bind-address\s*=\s*((?:\d+\.){3}\d+|[\w\:]+)

  • \[\w*mysqld\][^\[]*?bind-address\s*=\s*((?:\d+\.){3}\d+|[\w\:]+)

SI Depth

The pattern normally generates an instance-based Software Instance. If the data directory path is known, then the SI key is generated based on the hashed value of this path, combined with the SI type and the host key. If the data directory is not known but the port is known, then the key for the generated Software Instance is based on the port, the SI type and host key. If instance is known but not port and data directory, then the key for the generated Software Instance is based on instance, the SI type and host key. If none of these values have been discovered, then a grouped SI is created with the key_group being based on process cmd and full version.

Licensing Detail

If si_type = Infobright Enterprise Edition and licensing information has been retrieved pattern will model Licensing Detail.

Obtaining detailed Infobright Database and table information - Extended database discovery

A separate pattern has been created to query the MariaDB Database Server in order to obtain database list and (optionally) database table details. For more information about this pattern, please refer to the relevant page

Infobright on PostgreSQL

Identification

Software Instance Triggers


PatternTrigger NodeAttributeConditionArgument
DatabaseServerDiscoveredProcesscmdmatchesregex '\bpostmaster$'
*or*
cmdmatchesregex '\bpostgres$'
*or*
cmdmatchesregex '(?i)\bpg_ctl\.exe$'
or  
cmdmatchesregex '(?i)\bpostgres\.exe'

Versioning

Version information for the product is currently collected using one of three possible methods. We execute the methods in order based on their accuracy, depth and reliability. Once a result is obtained, the method lower in precedence is not attempted. In order of precedence the methods are

Package Versioning

BMC Discovery executes a search for the installed packages (on Uniux) and tries to match them against the following regular expression:

  •  '(?i)^Infobright\s*-?IEE'

Registry Versioning

On Windows pattern executes listRegistry query:

  • HKEY_LOCAL_MACHINE\\SOFTWARE\\Infobright IEE MySQL Edition

If output values contain version of the product pattern assigns it to the full_version and proceeds to install_root extraction using another registry query :

  • HKEY_LOCAL_MACHINE\\SOFTWARE\\Infobright IEE Postgres Edition\\<version>\\Path

Additional attributes extraction

pg_data_path is extracted from process arguments by means of regexes:

  • '(?i)-D\s+(\w:\S+|"\w:[^"]+")'
  • '-D\s+"?(/[^\s"]+)'

if pg_data_path is extracted pattern will procees to install_root extraction by means of regexes:

  • '(/\S+)/pg_data'
  • '(\w:.+)\\pg_data'

port can be retrieved either from process arguments using regexes:

  • '-p\s+(\d+)'
  • '-c\s+port=(\d+)'

or from postgresql.conf configuration file by means of regex:

  • "(?i)port\s*=\s*(\d+)"

or using port information for child processes of pg_ctl

If install_root is obtained pattern will proceed to licensing attributes extraction.

Pattern will look for infobright.lic file and extract the following values:

lic_version - regex 'LicenseVersion=(\d+)'
lic_exp_date - regex 'LicenseExpiryDate=(\S+)'
lic_product_type - regex 'LicenseProductType=(\S+)'

Licensing Detail

If si_type = Infobright Enterprise Edition and licensing information has been retrieved pattern will model Licensing Detail.

Application Model Produced by Software Pattern

Software Pattern Model

The pattern triggers on postmaster or pg_ctl process (or edb-postmaster or edb-postgres in the case of an EnterpriseDB installation) since these processes shows that product is running.

If process arguments matches regex "(?i)Infobright" then pattern determines that si_type is Infobright Enterprise Edition.
The pattern then attempts to determine the port the DB server is listening on and uses this as part of the SI key If the key cannot be obtained, the pattern will create a grouped SI using the trigger process command-line arguments.
Finally, the pattern creates association links with processes related to the trigger process (child processes started by the main process).

Subject Matter Expertise

We welcome any subject matter expert information which will help us improve our discovery of Infobright Server.

Testing

Testing has been performed against a live installation on Windows platform

  • No labels