Book Image

IT Inventory and Resource Management with OCS Inventory NG 1.02

Book Image

IT Inventory and Resource Management with OCS Inventory NG 1.02

Overview of this book

OCS Inventory NG is a cross-platform, open-source inventory and asset management solution. It brings more than plentiful features to the table to satisfy the business needs of small-to-large organizations with up to tens of thousands of computers. However, to put this inventory solution to optimum use requires a lot of skill.This book will lead you through the steps of implementing OCS-NG until you master working with it. This book aims at reducing efforts involved in resource management. The solution gives a robust foundation on top of which we can implement other third party applications, plugins, and much more.This book begins with the basics—it explains what IT inventorying needs are to be met in the real-world. Then, it covers a step-by-step approach to everything you need to know to set up and implement OCS-NG as a centralized inventory solution to meet all these requirements. It delves deeper into carrying out inventory tasks with every chapter.You will learn how to choose the best agent type and deployment method. We discuss the process of gathering inventory data and cover techniques for creating and deploying packages. You will also learn how to acquire added benefits with the use of plugins. We discuss best practices on inventorying and troubleshooting agent-related problems. The book presents real-world inventorying scenarios along with their solutions. You will basically learn how to use OCS-NG to get the most out of it.As a conclusion, if you want to learn about a free solution that fulfils inventorying necessities of the real-world, this is the book for you.
Table of Contents (16 chapters)
IT Inventory and Resource Management with OCS Inventory NG 1.02
Credits
About the Author
Acknowledgement
About the Reviewer
Preface
Keeping Pace with Version Updates—Glancing over the changelog of the Latest Release

How does OCS Inventory NG meet our needs?


OCS Inventory NG stands for Open Computer and Software Inventory Next Generation, and it is the name of an open source project that was started back in late 2005. The project matured into the first final release in the beginning of the year 2007. It's an undertaking that is still actively maintained, fully documented, and has support forums. It has all of the requirements that an open source application should have in order to be competitive.

There is a tricky part when it comes to open source solutions. Proposing them and getting them accepted by the management requires quite a bit of research. One side of the coin is that it is always favorable as everyone appreciates cutting down licensing costs. The problem with such a solution is that you cannot always take for granted their future support.

In order to make an educated guess as to whether an open source solution could be beneficial for the company, we need to look at the following criteria: how frequently is the project updated, check the download count, what is the feedback of the community, how thorough is the documentation, and how active is the support community?.

OCS-NG occupies a dominant position when it comes to open source projects in the area of inventorying computers and software.

Brief overview on OCS Inventory NG's architecture

The architecture of OCS-NG is based on the client-server model. The client program is called a network agent. These agents need to be deployed on the client computers that we want to include in our inventory.

The management server is composed of four individual server roles: the database server, communication server, deployment server, and the administration console server. More often than not, these can be run from the same machine.

OCS Inventory NG is cross-platform and supports most Unices, BSD derivates (including Mac OS X), and all kinds of Windows-based operating systems. The server can also be run on either platform. As it is an open source project, it's based on the popular LAMP or WAMP solution stack. This means that the main server-side prerequisites are Apache web server, MySQL database server, and PHP server. These are also the viable components of a fully functional web server.

The network agents communicate with the management server under standardized HTTP protocols. The data that is exchanged is then formatted under XML conventions. The following screenshot gives a general overview of the way clients communicate with the management server's sub-server components:

Rough performance evaluation of OCS-NG

The data that is collected in the case of a fully-inventoried computer adds up to something around 5KB. That is a small amount, and it will neither overload the server nor create network congestion. It is often said that around one million systems can be inventoried daily on a 3GHz bi-Xeon processor based server with 4 GB of RAM without any issues.

Any modest old-generation server should suffice for the inventory of few thousand systems. When scalability is necessary such as over 10,000-20,000 inventoried systems, it is recommended to split those 4 server-role components on two individual servers.

Should this be the case, the database server needs to be installed on the same machine with the communication server and on another system with the administration server and the deployment server with a database replica. Any other combination is also possible.

Although distributing the server components is possible, very rarely do we really need to do that. In this day and age, we can seamlessly virtualize up to four or more servers on any dual or quad-core new generation computer. OCS-NG's management server can be one of those virtual machines. If necessary, distributing server components in the future is possible.

Meeting our inventory demands

First and foremost, OCS Inventory NG network agents are able to collect all of the must-have attributes of a client computer and many more. Let's do a quick checkup on these:

  • BIOS:

    • System serial number, manufacturer, and model

    • Bios manufacturer, version, and date

  • Processors:

    • Type, count (how many of them), manufacturer, speed, and cache

  • Memory:

    • Physical memory type, manufacturer, capacity, and slot number

    • Total physical memory

    • Total swap/paging memory

  • Video:

    • Video adapter: Chipset/model, manufacturer, memory size, speed, and screen resolution

    • Display monitor: Manufacturer, description, refresh rate, type, serial number, and caption

  • Storage/removable devices:

    • Manufacturer, model, size, type, speed—all when applicable

    • Drive letter, filesystem type, partition/volume size, free space

  • Network adapters/telephony:

    • Manufacturer, model, type, speed, and description

    • MAC and IP address, mask and IP gateway, DHCP server used

  • Miscellaneous hardware:

    • Input devices: Keyboard, mouse, and pointing device

    • Sound devices: Manufacturer name, type, and description

    • System slots: Name, type, and designation

    • System ports: Type, name, caption, and description

  • Software information:

    • Operating system: Name, version, comments, and registration info

    • Installed software: Name, publisher, version (from Add / Remove software or Programs and Features menu)

    • Custom-specified registry queries (applicable to Windows OS)

Not only computers, but also networking components can be used for inventorying. OCS Inventory NG detects and collects network-specific information about these (such as MAC address and IP address, subnet mask, and so on.). Later on, we can set labels and organize them appropriately.

The place where OCS-NG comes as a surprise is its unique capability to make an inventory of hosts that are not on the network. The network agent can be run manually on these offline hosts and are then imported into the centralized management server.

One of its features includes intelligent auto-discovering functionalities and its ability to detect hosts that have not been inventoried. It is based on popular network diagnosing and auditing tools such as nmap. The algorithm can decide whether it's an actual workstation computer or rather just a printer. If it's the former, then the agent needs to be deployed. The network scanning is not done by the management server. It is delegated to network agents.

In this way, the network is never overcrowded or congested. If the management server itself scans for populated networks spanning throughout different subnets, the process would be disastrous. In this way, the process is seamless and simply practical. Another interesting part is the election mechanism based on which the server is able to decide the most suited client to carry out the discovery. A rough sketch of this in action can be seen in the next figure:

Set of functions and what it brings to the table

At this moment, we're fully aware that the kind information that the network agents are getting into the database are relevant and more than enough for our inventorying needs. Nevertheless, we won't stop here. It's time to analyze and present its web interface. We will also shed a bit of light on the set of features it supports out of the box without any plugins or other mods yet. There will be a time for those too.

Taking a glance at the OCS-NG web interface

The web interface of OCS Inventory NG is slightly old-fashioned. One direct advantage of this is that the interface is really snappy. Queries are displayed quickly, and the UI won't lag.

The other side of the coin is that intuitiveness is not the interface's strongest point. Getting used to it might take a while. At least it does not make you feel that the interface is overcrowded. However, the location and naming of buttons leaves plenty of room for improvement. Some people might prefer to see captions below the shortcuts as the meaning of the icons is not always obvious. After the first few minutes, we will easily get used to them.

A picture is worth thousands of words, so let's exemplify our claims.

The buttons that appear in the previous screenshot from left to right are the following:

  • All computers

  • Tag/Number of PC repartition

  • Groups

  • All softwares

  • Search with various criteria

In the same fashion, in this case, the buttons in the previous screenshot stand for the following features:

  • Deployment

  • Security

  • Dictionary

  • Agent

  • Configuration (this one is intuitive!)

  • Registry (self-explanatory)

  • Admin Info

  • Duplicates

  • Label File configuration

  • Users

  • Local Import

  • Help

When you click on the name of the specific icon, the drop-down menu appears right below on the cursor.

All in all, the web interface is not that bad after all. We must accept that the strongest point lies in its snappiness, and the wealth of information that is presented in a fraction of a second rather than its design or intuitiveness.

We appreciate its overall simplicity and its quick response time. We are often struggling with new generation Java-based and AJAX-based overcrowded interfaces of network equipment that seem slow as hell. So, we'll choose OCS Inventory NG's UI over those anytime!

An incentive on functionalities

Now that we are familiar with the look of the web admin panel of OCS Inventory NG, let's find out the kinds of functionalities that are hiding beyond those icons.

Firstly, we have the All computers option to enumerate the entire inventory. We can customize the type of columns we want to track. One of the most common configurations is the following setup: Tag, Last Inventory, Computer, User, RAM, and CPU. This seems intuitive and could suffice for most usages. Whenever necessary, we can fine-tune this by adding or removing columns from the following possibilities:

  • Bios Manufacturer, Bios Version, Bios Date

  • CPU number (stands for core number), CPU Type

  • Company

  • Description

  • Domain

  • Fidelity

  • IP address

  • Last come

  • Manufacturer, Model

  • OS Version

  • Owner

  • Quality

  • Serial number

  • Service pack

  • Swap

  • User Agent, User Domain

  • Win Product ID, Win Product Key

This gives us a global view of the inventory. Should we want to find more about a specific computer, we click on its name. Then, we are redirected to a dedicated page for that item.

The following two images give us a sense of what to expect.

What's more, we can also find details about the hardware components inside the computer, details about the software applications installed, and even investigate the behavior of IpDiscover. This is how the automatic network diagnosis feature is called. We're going to get in depth of this concept in a later chapter as we progress and build our inventory.

There are situations when we need to repartition and categorize computers into several groups based on some attributes. This is when the TAG-based repartitioning feature comes out as a winner. We can configure network clients to submit the inventory data accompanied with TAG information. This option is practical when departments or different sites are inventoried in the same database. A simple tag makes all the difference.

The searching functionalities are impressive. We're able to forge any kind of query using parameters such as processor speed, manufacturer, IP address, OS version, and the ones mentioned earlier. The modifiers are EXACTLY, DIFFERENTLY, or LIKE. In this way, we can build complex search queries in a rather simple fashion.

Check out the following example. Let's find Windows-based Test machines in that IP range.

From the OCS-NG web interface, we can set up users with different levels of access. This is one of our inventory requirements as well. Lots of other functionalities are worth mentioning, such as categorizing software applications, and setting up ignored ones, which do not matter from our point of view (for example, freeware and open source applications do not require licensing).

The package deployment and remote execution functionalities might be appreciated by some. They won't make or break the deal of choosing OCS-NG anyway. The real benefit comes from its lightweight structure and the intelligent auto-discover routines. On top of these, the modular build of the inventory makes it possible for further extensions.

Until now, we have seen that OCS-NG seems to meet all of the inventorying demands we specified earlier. This means that we're beginning a journey to build an entire fully-fledged inventorying solution from ground up.

We can guarantee a practical ride!