Advanced Reporting Techniques of Dell OpenManage™ IT Assistant Enterprise Systems Group (ESG) Dell OpenManage™ Systems Management Dell White Paper By Haihong Zhuo haihong_zhuo@dell.com Software Engineer OpenManage Development August 2002 Contents Executive Summary ...................................................................................................................... 3 Introduction ................................................................................................................................... 4 IT Assistant Database Introduction .......................................................................................... 5 Inventory Data in IT Assistant Database ............................................................................. 5 IT Assistant Database Engine ................................................................................................ 6 Get Ready for Generating Reports from IT Assistant ........................................................... 8 Discovery Performed .............................................................................................................. 8 Database Attached to Database Engine ............................................................................... 8 ODBC Data Source Created for IT Assistant Database (optional) ................................... 9 Inventory Reporting and Searching in IT Assistant ............................................................ 10 Inventory Reporting ............................................................................................................. 10 Inventory Searching.............................................................................................................. 11 Customizing Reports from IT Assistant ................................................................................ 13 A Simple Report .................................................................................................................... 13 A More Detailed Report ....................................................................................................... 14 System Reports ...................................................................................................................... 15 A Complicated Report.......................................................................................................... 16 Tools/Applications To Use ....................................................................................................... 18 SQL Server Management Tools........................................................................................... 18 Other Tools............................................................................................................................. 19 Conclusion ................................................................................................................................... 20 August 2002 Page 2 Dell Enterprise Systems Group Section 1 Executive Summary Dell OpenManage™ IT Assistant keeps information about managed systems as inventory data in its database. Users can query this data and get inventory reports through IT Assistant’s user interfaces. IT Assistant also has the capability for users to create customized reports outside its web-based user interfaces. For example, a fictitious company, DirectCom, Inc., uses IT Assistant to manage all of its computer systems. At the end of a year, its IT department wants to have several reports about the company’s computer assets in a different format as part of the accounting process output. Desired reports include: 1) a list of the company’s computer systems with name, service tag, type of operating system, and total memory of each system; 2) a report with detailed information on each system for all systems; and 3) a list of systems that have a remote access device and/or array manager installed. With an understanding of the IT Assistant database, as well as general understanding of Microsoft® SQL Server™ queries and tools, these reports can be created. This paper first describes what users need to know about generating reports from IT Assistant, and then describes the built-in inventory report and search functions offered by IT Assistant. Finally, this paper uses the reports mentioned above as examples to instruct users on how to create reports from IT Assistant. The content in this article applies to IT Assistant version 6.0 and later. August 2002 Page 3 Dell Enterprise Systems Group Section 2 Introduction Dell OpenManage IT Assistant (ITA) is a systems management console that allows users to monitor and manage many IT assets from a centralized point. After ITA is configured, its Network Monitoring service discovers managed systems – servers, desktops, and workstations – on the network and stores information it gathers about each system into the ITA database. This data is referred as inventory data. For users to be able to access this inventory data, ITA provides basic inventory report and search functions through its web-based user interfaces. In addition to these built-in functions, the ITA database offers users the ability to customize reports. This paper first describes the inventory reporting and searching functions provided by ITA, then guides users on how to generate custom reports through specific examples. The examples come from a fictitious company – DirectCom Inc. – and are used to show the reports can be created from ITA. This paper also discusses preparation for generating reports and what tools to use. August 2002 Page 4 Dell Enterprise Systems Group Section 3 IT Assistant Database Introduction ITA uses a database as a logical encapsulation of information that needs to be stored persistently. For detailed information about the ITA database, please refer to the Dell OpenManage white paper “Getting to Know the OpenManage IT Assistant Database” by the same author. Information on managed systems gathered from the network during discovery is referred as inventory data, and is stored in the database. Inventory data contains relatively stable information on a managed system, including its host name, IP address(es), service tag, asset tag, system’s model, processor’s type, size of memory, etc. Besides the inventory data, there are other persistent data stored in the ITA database. For a list of ITA database tables and information of each table, please refer to section IT Assistant Database Schema and Appendix B - IT Assistant Database Schema in the ITA Database white paper. For relationships between tables, please refer to section IT Assistant Table Relationships in the same white paper. Inventory Data in IT Assistant Database Among all the tables in the ITA database, two are designated to store the inventory data and desire to be elaborated. They are the Node table and the NIC table. Node Table The Node table serves as the master repository of information for each managed system found during discovery. Some information about a managed system, including its service tag, asset tag, type and model of the system, OS type, and BIOS version will only have single instance data for each system. Such singleinstance data is saved in this table. Some data on a managed system can have multiple instances, like multiple NIC adapters. NIC-related information is stored separately in the NIC table. The name of the system (column Name) serves as the primary key of this table and can be used to join the Node table and the NIC table together. Joining these tables is discussed in the NIC Table section. The Node table is empty after a fresh ITA installation. During the discovery cycle, rows are inserted into, updated, or deleted from this table accordingly. After an upgrade or re-installation of ITA with the database preserved, existing August 2002 Page 5 Dell Enterprise Systems Group rows in this table will be exported and re-imported to make them available to the new ITA installation. NIC Table The NIC table stores NIC-related information, including IP address, MAC address, and the manufacturer’s name for every NIC adapter located on each managed system that is discovered and stored in the Node table. The name of the managed system (column NodeName) and the IP address of a particular NIC adapter (column IPAddress) constitute the composite key of NIC table. The NIC table is also empty after a fresh ITA installation. During the discovery cycle, rows are inserted into, updated, or deleted from this table accordingly. After an upgrade or re-installation of ITA with the database preserved, existing rows in this table will be exported and re-imported to make them available to the new ITA installation. Even though there is no foreign key constraint1 created between Node table and NIC table, these two tables are logically linked by the name of the managed system. The name of the managed system is denoted as Name in the Node table and NodeName in the NIC table. By using Node.Name = NIC.NodeName in the WHERE clause of any SQL (Standard Query Language) statement, these two tables can be joined. Additionally, there is a trigger created in the Node table to implement cascade deletion: when a record is removed from Node table, row(s) in NIC table with same system name will also be deleted. All triggers in ITA database are listed in the Triggers section of the ITA Database white paper. IT Assistant Database Engine Starting from version 6.0, ITA uses an ODBC-compliant database engine from Microsoft -- Microsoft Data Engine (MSDE), Microsoft SQL Server 7.0, or Microsoft SQL Server 2000. This allows third-party applications to connect to ITA database through native SQL Server interface or ODBC. When ITA’s service components are to be installed on a system, ITA’s installation program will check if any of these three database engines exists on that system. If none of these databases is found, ITA’s installation program will install MSDE silently on that system and deploy the ITA database to the database engine. If the MSDE or either version of SQL Server is found on the system, ITA’s installation program will deploy ITA’s database to that database engine and integrate ITA’s service components to use the engine. If MSDE is installed and/or used when Foreign key constraint is a link created between two tables by adding the column or columns that hold one table’s primary key values to the other table. This column becomes a foreign key in the second table. Such a constraint enforces referential integrity between two tables. 1 August 2002 Page 6 Dell Enterprise Systems Group ITA is initially installed, users can still upgrade the database engine to SQL Server 7.0 or 2000, without having to re-install ITA again or losing data. This provides ITA with scalability. August 2002 Page 7 Dell Enterprise Systems Group Section 4 Get Ready for Generating Reports from IT Assistant Users can do inventory reporting and searches through ITA’s web-based user interfaces, or create custom reports by accessing ITA database directly. Either way, the following prerequisites have to be met before reports can be generated. Discovery Performed After a fresh installation of ITA, the Node table and the NIC table are empty. Discovery has to be carried out by ITA’s Network Monitoring service to have managed systems discovered from network and inventory data stored into the Node and NIC tables. The standard procedure for discovery is as follows: 1. After ITA is installed, reboot the system upon request. ITA services, the Connection service and the Network Monitoring service, will be started automatically on system reboot. 2. Start the ITA web-based user interface by double-clicking the IT Assistant icon on the desktop. 3. When prompted for discovery configuration, follow the instruction to enter subnet(s), host name(s), or IP address(es) for ITA’s Network Monitoring service to discover on. 4. Wait for the discovery cycle to be completed. Database Attached to Database Engine The database engine used by ITA is MSDE or SQL Server 7.0/2000 from Microsoft, so the database file has to be attached to the database engine before it can be accessed. During ITA installation, the ITA database is deployed to the appropriate database engine, resulting in the database file being generated and attached to the database engine. So, on a system running ITA services, this requirement should already be met. The database file generated is ITAssist.mdf in ITA’s database directory. The name of the database in the database engine is ITAssist. If SQL Server 7.0 or 2000 is installed, users can start the Enterprise Manager of SQL Server to verify that ITAssist is listed as a database for that database engine, and is therefore accessible. August 2002 Page 8 Dell Enterprise Systems Group ODBC Data Source Created for IT Assistant Database (optional) Third-party applications are allowed to access the ITA database through ODBC. To do so, an ODBC data source has to be created for ITA database ITAssist. After ITA is installed and starts running, an ODBC data source, also named ITAssist, is already created for database ITAssist. Therefore, on a system running ITA services, this requirement should already be met. Users can start the applet ODBC Data Source Administrator, go to the tab System DSN to verify that ODBC data source ITAssist exists for SQL Server database ITAssist, or create that data source. Note: it is a prerequisite for ITA services to run, but not for third-party applications to access the database, unless they want to do it through ODBC. Therefore, it is an optional requirement depending on whether or not the user wants to access the database through ODBC. August 2002 Page 9 Dell Enterprise Systems Group Section 5 Inventory Reporting and Searching in IT Assistant ITA stores inventory data in the Node table as well as the NIC table in its database. ITA also offers built-in inventory reporting and searching functions for users to access this data. Inventory Reporting In ITA’s user interface, click the Inventory button on the top bar to bring up the Inventory page as shown in Figure 1. Figure 1: IT Assistant Inventory Page August 2002 Page 10 Dell Enterprise Systems Group To the right of the Blue Bar, on the tree of discovered systems, select a group of systems or a particular system. On the right panel of the page, under “Select Columns”, check the items to be included in the report. Click the “Get Inventory” button, and a list of system(s) with inventory data for the selected items will be displayed in the bottom half of the right panel. For example, in Figure 1, IP addresses and service tags of all the discovered and then selected systems are being reported. Inventory Searching In ITA’s user interface, click the Search button on the top bar to bring up the Search page as shown in Figure 2. Figure 2: IT Assistant Search Page In this page, a user can specify a search against the inventory data in the Node table and the NIC table. Up to two combined criteria are allowed. Each criteria allows a set of Boolean relationships, such as Is, Is Not, etc. Click the “Search” button, and the generated query will be executed against ITA database, and the search result will be displayed in the bottom half of the screen. As shown in Figure 2, the user wants to find, from all the discovered systems, servers that have Windows 2000 as their operating system. Two systems are August 2002 Page 11 Dell Enterprise Systems Group found to meet those criteria and are listed with their IP Address, Power Status, OS type, BIOS Version, and Asset Tag information. August 2002 Page 12 Dell Enterprise Systems Group Section 6 Customizing Reports from IT Assistant Even though ITA already provides the built-in inventory reporting and searching functions, ITA has the capacity to allow users to customize the reporting and searching. This section offers scenarios to show different types of reports users can generate. and how. (DirectCom, Inc. is a fictitious company name used in these examples.) A Simple Report While doing standard year-end accounting, the IT department at DirectCom, Inc. wants to have a list of the company’s computer assets. They want the list to include the name and service tag of each system, as well as the type of operating system and the total memory installed on the system. Because DirectCom uses Dell Open Management IT Assistant to manage all of their systems, this task can be done either by using ITA’s built-in inventory reporting function, or by running a simple SQL query against the ITA database. Looking at the database tables, the system administrator determined that all the required data could be found from the Node table. The corresponding columns are Name, ServiceTag, OSType and TotalMemory, respectively. A SQL query can now be generated to retrieve data from Node table and output the results: SELECT Name, ServiceTag, OSType, TotalMemory FROM Node Executing query produces the output in Table 1: Name h8vht01 ita-jag1 chlin.us.dell.com 5ga2k w6qhe.aus.amer.dell.com gx110-c68be htgl901.aus.amer.dell.com 5YTP501 fgk5r01.aus.amer.dell.com jianwen-linux71.us.dell.com … Service Tag H8VHT01 12312 Linux 5GA2K Unknown C68BE HTGL901 5YTP501 FGK5R01 5MDH101 … OS Type Windows 2000 Windows 2000 Domain Controller Red Hat Linux Microsoft Windows 2000 Windows 2000 Microsoft Windows NT Microsoft Windows NT Windows 2000 Microsoft Windows 2000 Red Hat Linux … Total Memory 523760 524287 524228 131072 267964416 261120 131072 261672 524288 524284 … Table 1: Simple ITA Database Query Report August 2002 Page 13 Dell Enterprise Systems Group A More Detailed Report While the report generated above may provide all that is needed for accounting, the system administrator wants to know the network configuration/topology of all the systems. For that, the system administrator wants to enhance the report by including the IP address and manufacturer of NIC adapter(s) installed on each system. By looking at the database tables, the system administrator determined that IP address and NIC manufacturer information on each system could be pulled out from the NIC table. Columns in the NIC table that represent the system’s name, IP address and manufacturer of every NIC adapter found on the system are NodeName, IPAddress, and NICManufacturer, respectively. The records in Node table and NIC table are related by name of the system. The following SQL query can now be generated to join these two tables together and output the results: SELECT Node.Name, Node.ServiceTag, Node.OSType, NIC.IPAddress, NIC.NICManufacturer FROM Node, NIC WHERE Node.Name = NIC.NodeName Executing the query produces the output shown in Table 2 Name OS Type IP Address NIC Manufacturer h8vht01 Service Tag H8VHT01 Windows 2000 143.166.154.76 ita-jag1 12312 Windows 2000 Domain Controller 143.166.152.18 2 192.168.1.82 5ga2k 5GA2K 143.166.154.34 w6qhe.aus.amer.dell.com gx110-c68be Unknown C68BE 143.166.154.52 3Com EtherLink PCI htgl901.aus.amer.dell.com HTGL901 5YTP501 143.166.154.14 3 143.166.154.82 3Com 5YTP501 Microsoft Windows 2000 Windows 2000 Microsoft Windows NT Microsoft Windows NT Windows 2000 Intel 8255x-based Integrated Fast Ethernet Broadcom NetXtreme Gigabit Ethernet Driver Intel 8255x-based Integrated Fast Ethernet 3Com EtherLink PCI fgk5r01.aus.amer.dell.com FGK5R01 jianwen-linux71.us.dell.com 5MDH101 Microsoft Windows 2000 Red Hat Linux … … … 143.166.154.12 7 143.166.154.83 143.166.154.11 1 … Intel 8255x-based Integrated Fast Ethernet Intel(R) PRO Adapter 3Com eth0 … Table 2: Detailed ITA Database Query Report August 2002 Page 14 Dell Enterprise Systems Group Note: when the results are presented, duplicate system name, service tag, and OS type for systems that have more than one NIC adapter, like ita-jag1 and 5YTP501, are not displayed. System Reports The system administrator also wants to know the service tag, OS type, and list of IP address and manufacturer name of NIC adapter(s) of a particular system. To do that, the System Administrator executed the following queries against the ITA database: SELECT ServiceTag, OSType FROM Node WHERE Name = “5YTP501” SELECT IPAddress, NICManufacturer FROM NIC WHERE NodeName = “5YTP501” Table 3 shows how the information on a single system could be presented. System Report Name: 5YTP501 NICs IP Address 143.166.154.127 143.166.154.82 Service Tag: 5YTP501 OS: Windows 2000 NIC Manufacturer Intel(R) PRO Adapter Intel 8255x-based Integrated Fast Ethernet Table 3: Single System Sample Report Sometimes the system administrator would like to get information on a system that has a specific IP address. The following SQL queries will fulfill this task: SELECT Node.Name, Node.ServiceTag, Node.OSType FROM Node WHERE Node.Name = NIC.NodeName AND NIC.IPAddress = “143.166.154.127” SELECT IPAddress, NICManufacturer FROM NIC WHERE NodeName = ( SELECT NodeName FROM NIC WHERE IPAddress = "143.166.154.127") Output result of these queries will be same as the system Report generated in Table 3. August 2002 Page 15 Dell Enterprise Systems Group A Complicated Report Using ITA, the system administrator at DirectCom can create a custom group and assign discovered systems into that group. For example, a custom group called Finance can contain all computer systems that belong to the company’s financial department. Information related to custom groups is stored in two tables in ITA database: CustomGroup table and NodeCustomGroup table. The CustomGroup table stores the names of custom groups a user created, while the NodeCustomGroup table stores which system belongs to which custom group. The relationship between CustomGroup table and NodeCustomGroup table is: CustomGroup.GrouName = NodeCustomGroup.GroupName. The relationship between Node table and NodeCustomGroup table is: Node.Name = NodeCustomGroup.NodeName. To illustrate this, for monitoring purposes, the system administrator created a custom group “GRP” in ITA, and assigned a list of discovered systems into that group. Now he wants to generate a report about systems in that group that have a DRAC (Dell Remote Access Card) or Array Manager software. Information for each system he wants to be included in the report includes: name of the system, service tag, IP address(es) of the system, version and IP address of the DRAC, as well as version of the Array Manager on that system, if one is found. Looking at the database tables, the System Administrator determined that three tables – the Node table, NIC table and NodeCustomGroup table – need to be involved in a SQL query to generate the report: SELECT Node.Name, Node.ServiceTag, NIC.IPAddress, Node.DRACVersion, Node.DRACIPAddress, Node.ARYMGRVersion FROM Node, NIC, NodeCustomGroup WHERE Node.Name = NIC.NodeName AND Node.Name = NodeCustomGroup.NodeName AND NodeCustomGroup.GroupName = “GRP” AND (Node.DRACVersion IS NOT NULL OR Node.ARYMGRVersion IS NOT NULL) Executing query products the output in Table 4. Name Service Tag IP Address diagdev.us.dell.com ita-jag1 J3CH501 12312 143.166.154.221 143.166.152.182 autrydev2 h133i.us.dell.com … 1PSC501 H133I … 192.168.1.82 143.166.154.145 143.166.154.234 … DRAC Version DRAC IP Address Firmware Version 1.1 192.168.3.20 3.1.1 3.1.2 144.134.12.12 … 3.1.2 3.0 … … Array Manager Version Table 4: More Complicated Query Report August 2002 Page 16 Dell Enterprise Systems Group Note: when the results are presented, duplicated system name, service tag, and DRAC version, DRAC IP address, and the Array Manager version for systems that have more than one NIC adapter, like ita-jag1, are not displayed. August 2002 Page 17 Dell Enterprise Systems Group Section 7 Tools/Applications To Use This section presents the tools and/or applications used to execute queries such as those presented in Section 6. SQL Server Management Tools Since ITA is designed and implemented to work with Microsoft SQL Servercompatible database engines, SQL Server’s graphical management tools such as Enterprise Manager and Query Analyzer can be used to exam, query and manipulate the ITA database. These graphical management tools come with SQL Server 7.0 and 2000, but not MSDE. Meanwhile, MSDE does not allow access from remote systems. Therefore SQL Server needs to be in place before these tools can be used, either locally or remotely. Following are several scenarios of how this can be achieved: August 2002 If MSDE, SQL Server 7.0 or 2000 are not installed when ITA services (including the database component) are installed, MSDE will be installed silently and will be used by ITA. If MSDE is already installed, ITA will use it as database engine as well. Either way, there will be no SQL Server management tools available locally, and the database cannot be accessed from a remote host. To address this, MSDE can be upgraded to SQL Server 7.0 or 2000: o If both the server and client components of SQL Server are installed during the upgrade, the ITA database can be accessed by SQL Server management tools locally as well as remotely – from a remote host that has the client components of SQL Server installed. o If only the server component of SQL Server is installed during the upgrade, the ITA database can be accessed only by SQL Server management tools from a remote host that has the client components of SQL Server installed. If both the server and client components of SQL Server 7.0 or 2000 are already installed on the system on which ITA services are to be installed, ITA will use it as database engine and the ITA database can be accessed by SQL Server management tools locally as well as remotely. If only the server component of SQL Server 7.0 or 2000 is installed on the system that ITA services are to be installed, ITA will still use it as database Page 18 Dell Enterprise Systems Group engine and the ITA database can be accessed by SQL Server management tools only from a remote host that has the client components of SQL Server installed. After it installs or locates a database engine to use, the ITA installation program creates and populates a database called ITAssist. To use SQL Server’s Query Analyzer locally, select local server (denoted as “.”) and select database ITAssist. To use Query Analyzer remotely, first make sure the SQL Server installed on the system running ITA services is registered, then select the correct server to connect to when Query Analyzer is started, and connect to the ITAssist database. After these steps are carried out, SQL queries can be executed against ITA database within Query Analyzer. Other Tools The ITA database can be accessed through either the native SQL Server interface or ODBC, so there are a lot of different tools/applications available on the market that can be used to generate customized reports from ITA. One example is Microsoft Query that comes with Microsoft Excel. It helps MS Excel retrieve external data through ODBC. About how to ensure the ODBC data source is created, please refer to Section 4 - Get Ready for Generating Reports from IT Assistant, ODBC Data Source Created for IT Assistant Database (optional). August 2002 Page 19 Dell Enterprise Systems Group Section 8 Conclusion IT Assistant is a powerful system management console that is part of the Dell OpenManage system management software family. One of the many tasks ITA performs is to gather and store information of managed systems across the network. After data is collected, users generally want to be able to mine it. This paper shows that is possible by describing both the built-in inventory reporting and search functions that ITA offers, and how to create custom reports with IT Assistant. After understanding how to prepare to create reports and which tools to use, users should be able to generate reports by following the examples of different reports created by the fictitious company DirectCom in Section 6. More customized reports can be created after users gain a deeper understanding of the ITA database by using the Dell OpenManage white paper “Getting to Know the OpenManage IT Assistant Database”. THIS WHITE PAPER IS FOR INFORMATIONAL PURPOSES ONLY, AND MAY CONTAIN TYPOGRAPHICAL ERRORS AND TECHNICAL INACCURACIES. THE CONTENT IS PROVIDED AS IS, WITHOUT EXPRESS OR IMPLIED WARRANTIES OF ANY KIND. Dell and PowerEdge are trademarks of Dell Computer Corporation. Microsoft is a registered trademark and SQL Server is a trademark of Microsoft Corporation. Other trademarks and trade names may be used in this document to refer to either the entities claiming the marks and names or their products. Dell disclaims proprietary interest in the marks and names of others. ©Copyright 2002 Dell Computer Corporation. All rights reserved. Reproduction in any manner whatsoever without the express written permission of Dell Computer Corporation is strictly forbidden. For more information, contact Dell. Dell cannot be responsible for errors in typography or photography. The information in this publication is subject to change without notice. Any reliance by the end user on the information contained herein is at the end user’s risk. Dell will not be liable for information in any way including but not limited to its accuracy or completeness. August 2002 Page 20 Dell Enterprise Systems Group