Networks are dynamic entities that change quickly depending on the company and field of application. Often only individual systems are added, at other times whole departments are equipped with new systems, or critical systems are refurbished or replaced by others.
In complex environments, it is not enough to enter IT components' commissioning data in a static asset accounting tool and then simply forget about your legally compliant records. There is another problem: The tools used as the interface between business and IT are often not sufficiently granular to be able to give IT the right answers to different questions.
A simple example illustrates the problem: Desktop PCs in particular are often purchased and deployed in bulk. In asset accounting, they appear as a single item and are written off there as a lump sum. But network and IT administrators gain very little knowledge from this lump-sum information. Admins need to learn about the lifecycle of a single asset and be able to track it.
Benefits of Asset Management
Many companies are unaware of the benefits that professional asset management can offer IT departments, which also explains why this field is so little explored. Companies can benefit across all levels of decision making from reliable and up-to-date asset information. If decision makers and IT professionals have access to accurate inventory and requirement figures for IT hardware components, this simplifies planning and future procurement actions. Accurate inventory figures are also necessary to conclude or optimize maintenance, service, and leasing contracts.
These figures are important for IT security, because it is easier to define and meet appropriate security arrangements if you have precise documentation on how the IT components are used. In conjunction with human resources management, IT departments can ensure that sufficient IT resources are in stock.
As a further bonus, equipment planning is simplified in the future. The idea is for planning coordinators to have access to uniform, or at least standardized, product lines. As any IT administrator knows, homogeneous components are easier to manage and thus cost less.
Another advantage of IT asset management: Companies can optimize their IT spending and minimize risks. You can simplify administrative tasks through the use of IT asset classes (PCs, tablets, smartphones, printers, and so on). This is usually simpler to implement than configuration management, because, for example, you do not need to map complex dependencies in service production. In practice, asset and configuration management complement one another excellently. Together, they can help to maintain and optimize the IT infrastructure.
The excuse often put forward is that deploying a suitable solution would involve a considerable amount of expense and human effort, but you can safely ignore this. The free asset management tool, Ralph , is a very powerful and flexible environment capable of managing not only assets, but also licenses, support contracts, and even users. The asset entries in the database can be added manually or automatically. Ralph has agents for Linux and Windows that send the relevant information to the asset server.
Getting Started with Ralph
Getting started with Ralph is simple. The developers give you two options: an Ubuntu 14.04 package or a Docker image. The developers recommend the manual installation with the Ubuntu installation package. At he time of writing, Ralph 3.0 is in the final stages of the release process (as of the end of May).
Before installing, make sure that you have a new Ubuntu 14.04 installation with no other packages are installed. Then add the Ralph repository:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 $ sudo sh -c "echo 'deb https://dl.bintray.com/vi4m/ralph wheezy main' > /etc/apt/sources.list.d/vi4m_ralph.list"
To install, simply follow the usual approach:
$ sudo apt-get update $ sudo apt-get install ralph-core redis-server mysql-server
Ralph can basically be installed as a full-fledged asset system or as an agent. Redis and the MySQL database server must be installed to run the asset server. The core component,
ralph-core, is sufficient for running the agent. You then just need to point it to the two servers on your network.
Ralph uses a configuration file, for which you need to adjust the interaction with the MySQL database server. In particular, you need to enter the database-specific settings:
$ cat ~/.profile export DATABASE_NAME=ralph export DATABASE_USER=someuser export DATABASE_PASSWORD=somepassword export DATABASE_HOST=127.0.0.1 export PATH=/opt/ralph/ralph-core/bin/:$PATH
You have now laid the foundations for initializing Ralph. Various other actions are necessary for this purpose. First, edit the
file. Set the value
DEBUG = True. To create the necessary tables in the database, run the following command:
$ ralph migrate
Next, a reload is required:
$ ralph sitetree_resync_apps
The next initialization step adds a new user:
$ ralph createsuperuser
You have now successfully installed Ralph. Now launch Ralph with this command
$ ralph runserver 0.0.0.0:8000
Log in via the URL http://localhost: 8000 with the administrative account specified above (Figure 1).
The Docker installation is still at the experimental stage. To use Ralph in a Docker environment, you first need a Docker Compose environment. For an experimental Docker Compose configuration, see .
To create the Compose configuration, copy the
docker compose.yml.tmpl file to
docker compose.yml. Then run the build process and initialize the database:
$ docker-compose build $ docker-compose run --rm web /root/init.sh
The next command feeds Ralph with sample data:
docker-compose run --rm web ralph demodata
Use the following command to run the Docker-based asset environment
docker-compose up -d
Access is then via the local web interface. To do this, launch the browser and access http://127.0.0.1. If you want to get a quick impression of Ralph, you can tinker with the online demo, which the developers deployed . Use ralph as the login name and password.
First Steps with Ralph
After the installation, Ralph comes up with a clearly designed web interface through which you can manage your hardware and software assets, licenses and support contracts. The environment supports two types of asset: Devices and Parts. Devices can be, for example, blade servers, while Parts are the components of this server. The components can be moved from one device to another if necessary.
Assets can be created manually or automatically. To generate assets automatically, corresponding agents are available for Linux and Windows. Ralph manages the assets in the Data Center menu. Extensive forms are available (Figure 2) if you choose to create an asset manually. In the Basic Info field, specify the general data, such as the device type, the model, the inventory number, the location or the warehouse, the status (if necessary), a URL, the service name, the host name, and so on.
You can assign financial data, such as the purchase order number, invoice date and number, the price, the supplier, the budget information, and a user and/or owner to each asset. Go to the Additional Info to define the data center, the server room, the rack, the orientation and exact position, the slot number, and to link to the Ralph core devices. You can also define the serial number and a barcode in specially provided boxes for each device.
You also create components using the Data Center menu. The standard approach: First, create the devices, then the components, and then assign them to the devices. Extensive registration forms are available to create parts. In Basic Info, you once again enter the basic data such as the type, the model, the inventory number, the warehouse, the location, and status. If this is third-party property, you can also specify that here.
For each component, you can also specify a wealth of financial information, such as the price, the date of purchase, the order, and the supplier. You can assign the components to certain users and owners. Often, besides editing a single asset, you will need to apply certain actions to multiple entries, for example, to transfer certain components from one warehouse to another. This is also possible with Ralph. The developers refer to this feature as bulk editing. First search for the desired entries, select the entries in the results set, and then perform one of the actions. They are available in the Actions drop-down menu (Figure 3).
Ralph also records the actions applied to assets as a workflow log. There are almost no restrictions to moving components. Also the status of components can be adapted flexibly. Just use the Components drop-down menu that is available in each Part dialog.
Out of the box, Ralph comes with various discovery plugins. Some are responsible for finding functions, while others can identify services or components. What they have in common is that they must be correctly configured for Ralph to use them. In particular, the user ID and password for the services to be detected must be entered in the plugin configuration. This configuration is done in the
~/.ralph/settings file. You will also want to ensure that this configuration is not accessible to unauthorized users. The most important standard plugins are the following:
- Ping: This plugin requires no adjustments. It performs a ping, and it checks the availability of a device. Most discovery plugins require its successful execution.
- HTTP: Tries to open connections to ports 80 and 443 of the specified IP address. Also tries to discover various pieces of information, such as the manufacturer and the model.
- SNMP: Opens SNMP connections to the specified IP addresses and retrieves available system data.
- SNMP MAC: Tries to read the MAC addresses. Can often also retrieve the model name and serial number. If it succeeds, the plugin generates a device entry in the Ralph database.
- IPMI: Tries to use the Intelligent Platform Management Interface (IPMI) protocol to read the manufacturer, the model, the serial number, the MAC address, and the hardware components. A database entry is created if this works.
- HTTP Supermicro: Logs into a Supermicro Server management environment and reads the MAC address.
- SSH Linux: Tries to establish an SSH connection to a Linux server and retrieve hardware information from it.
- SSH Proxmox: Opens a connection to a Proxmox virtualization environment and reads the virtual server's data.
- Proxmox 2/3: An enhanced module for reading information about Proxmox installations.
- SSH Xen : Establishes an SSH connection to a Xen system and adds all relevant cluster information to the Ralph database.
- SSH Ganeti: Retrieves information about virtual servers running in a Ganeti cluster.
The asset management environment can also communicate with various external services, for example, with OpenStack services. You can use the
ralph openstack command to retrieve, for example, the billing information. Zabbix also integrates in the same way.
Starting with version 3.0, Ralph has a discovery mechanism that periodically scans networks and environments and determines hardware and software information. There are also 30 plugins available that discover hundreds of common hardware components. Because Ralph is modular, you can program your own detection modules. Automatic detection is of course more convenient than creating inventories manually.
For scanning, Ralph relies on the
rqworker module. It is executed on the console:
$ ralph rqworker [Scan-Plug-in]
It is much easier to run a scan using the GUI. Go to the Scan tab and specify the IP address or the address range. The scan dialog lets you select the plugins. By default, Ralph uses different pre-scan plugins, for example, to try to identify existing SNMP and HTTP services. To use all plugins, check the All box, and click on Scan to initiate the scan operation.
Managing licenses and contracts is also easy: For this purpose there are two menus: Licenses and Support. The forms are similar to those for creating assets.
A special Windows agent named Don Pedro  is available for discovering Windows-based systems. It only requires an installed .NET 2.0 environment and can be run on virtual machines. Of course, the agent must be configured to interact with the Ralph system. To do this, edit the
DonPedro.exe.config file and type the Ralph server's URL.
Configuration and Extension
Once the basic Ralph system is set up, you can move on to the next step, which is adapting and extending the environment. On Ralph's side, no additional configuration steps are typically required after commissioning, but you can connect to a directory server and a cloud environment.
Several aspects of the environment can be adapted in the Settings menu. Ralph is a Django-based project and stores its default configuration in the
settings.py file, which is usually located in the
/etc/ralph/settings directory. If you want to create your own configuration after an initial installation, run the following command to do this:
$ ralph makeconf
This command creates a settings file with default values. However, Ralph does not overwrite the existing configuration. If you want to do this, you need to run
makeconf with the
-force option. Using the
makeconf -global option lets you add your configuration. Note that the configuration file contains passwords and other sensitive information. By default,
makeconf, therefore, ensures that the configuration directory and configuration files are only accessible to the current user who is running
Ralph's special features in version 3 include various tracking functions. Admins can track assets and components – both automatically and manually. Changes to licenses and contracts can also be tracked. If the required fields do not exist in a form, you can create custom fields that let users enter company-specific information. The DC Virtualization menu helps you map server cabinets and racks, assignments, and connections (Figure 4).
And, if you want to share the data stored in the asset management system with a third party, Ralph can generate PDF documents from its database or parts of the database. You can also use editable templates.
No Automatic Versioning
Ralph did reveal some weaknesses, for which no solution is likely to be available in the foreseeable future. Most administrators will probably be able to live with the requirement to run Ralph on a Ubuntu 14.04 system; you can set one up quickly and simply in a virtual environment.
The developers of Ralph worked intensively on version 3 in the past few months and added some interesting innovations in this version. In terms of its feature set, the asset management environment is on the right track. As you can see from the current roadmap, some interesting features have been announced; their implementation is scheduled for completion by the final release of version 3.
What's missing so far is the ability to evaluate a Ralph system with minimal overhead. The developers are working on a deployment system with DHCP and PXE support. Thus far, the Ralph interface only supports the English language. And, the export feature only generates English summaries. But most admins will be happy with this. The real drawback thus far, however, is that clients capable of detecting and indexing hardware components and MAC addresses are missing. They would save administrators the worry of installing an inventory agent on each system. Such a client is in development, but it is still unclear when it will be available.
Ralph is also incapable of automatically detecting Mac OS X systems. Even if these devices only play a subordinate role in many companies, it is annoying if you need to manually manage some sections. In addition to purely technological limitations, Ralph also loses points because of other criteria. The website does not give you a contact address for the developers. Unfortunately, they also do not offer commercial support that interested companies could rely on. And, there is no active community to turn to for advice. Until these circumstances change, many companies will probably not even consider using Ralph.
Ralph v3, the free asset management system, is a very promising newcomer that does a good job of typical inventory tasks in the enterprise. In terms of support and agents, the developers still need to catch up to make the environment more interesting for corporations.