Table of Contents
Pandora FMS allows to build visual maps where each user defines their own way to visually represent the monitoring. The Visual Console editor allows the user, by dragging elements with the mouse, to visually design the final aspect, choosing the background and icons that represent the status of each relevant aspect you want to display. With Pandora comes a series of icons, but the user can easily customize their own. Different visual consoles can interact with each other, viewing in a hierarchical way the status of maps that are “under” a superior map, being able to abstract that way the monitoring, and viewing at high level a whole series of elements.
These are real-life examples of visual consoles, as seen on a 40“screen:
More information can be found in the video tutorial «Create visual consoles in Pandora FMS».
Creation and access to visual consoles
To work with a visual map, go to Topology Maps → Visual console. A list appears with all created maps. To create a new one, click on “Create”. On the list you can edit a map, delete it or “clone” an existing one to modify it.
Maps whose names begin with the characters
( will be displayed in the left menu in the Visual Console submenu. This allows you to create a kind of quick view from the menu. Keep it in mind when naming your visual console.
For large environments where there are multiple visual consoles, a filter option has been created by searching for free text, by group and with recursion of secondary groups and subgroups.
Creating a visual console
The editor's organization is made up by several tabs: The Main data tab, which contains visual console general data, the display tab, several wizards, a full screen view access, a link to share the visual console with a third party through a URL, a list of elements contained in the visual console and of course, the visual editor with which to build and edit the console:
Creation - General data
Here you can edit and create the basic data of the visual console. It will be the only visible one to a new map until it is saved. The basic values it contains are: visual console name, ACL management group, and background image, which can be resized regardless of the size of the image. The background color is important, because if the screen where the visual console is displayed is larger than the background image, it will fill in the rest with the background color selected here.
The background images are located in the Pandora FMS console directory, inside the directory:
You can upload your own images through the file manager that Pandora FMS has integrated (Admin tools → File manager).
Visual Console Access Permissions
Visual Console ACLs imply that anyone who has visual console reading permission, because they have access to the group with the Visual Console (VR) flag, will see all the contents of the VC, even if there are elements of another group in it.
Users can only assign a group the user creating the Visual Console belongs to, unless that user explicitly belongs to the ALL group.
Creation - Wizard
The wizard allows you to add elements to the VC quickly and conveniently. You can create different types of elements, and it is recommended that before creating many elements you use it with only a couple of them, so that you do not have any troubles later on when deleting the elements (although if you make a mistake it might be faster to delete the entire VC).
The most relevant element is the one that allows to create one element per agent, or on the contrary, to create one element per module. That way you can add dozens of elements that represent a complete agent, or an element of an agent, or show all the modules of different agents, creating many elements at once, which can be identified by the agent name, the module name or both. The interface is not difficult to use and the easiest thing to do is try some elements and see how it works.
Creation - Service Wizard
This feature is only available in the Enterprise version of Pandora FMS.
The service wizard tab contains a small form to create several service type elements at once with just a couple of clicks. The selected services will appear in the visual console automatically placed with the selected icon.
Creation - List of elements
This tab provides a form in rows of the items contained in the visual console you are editing. It is a quick way to edit the different items, besides being an useful tool for users who need to tune in certain item values.
The actions allowed in this form are: editing (but not changing the element type) and deleting elements (but not creating them). This action must be done in the Editor tab. Each row of the screen will be an element of the VC.
Creation and edition of visual consoles
This section contains most of the feature of the visual console editor, and this is where the elements that make up a VC can be added and modified (except for the background image, seen previously).
At the top left, there are the different elements that can be included in a VC (from left to right):
Static image, progress, graph, histogram of events (AutoSLA), raw data, label, statusless icon, group, rectangle, line and service.
At the top right, the actions you can perform with an existing element: duplicate, delete, edit or activate a grid where you can “force” the placement of all elements.
The following are the most relevant characteristics of the elements that can make a VC.
Elements a map can contain
This item displays a static image that will be displayed in four possible colors:
- Gray, for UNKNOWN status
- Green, for normal status (OK)
- Red, for CRITICAL status
- Yellow, for WARNING status
Depending on the status of the module, agent or map, it will show one image or another. In a normal Pandora FMS installation they should be in:
And these files use a special nomenclature for these images: <name_image>_<status>.png where the status can be:
- Bad: When the agent has a failing module, the module fails or the visual console that links to contains some element in 'bad'.
- Ok: When the agent, module or visual console that it links to are correct.
- Warning: When the agent has some module in warning, the module is in warning or the visual console that it links to contains some element in warning.
- (No text): When the agent, module or visual console that it links to has no status.
A tag can be associated to the static image, or it can be left blank, that tag can be formatted and certain macros can even be added to the text (see below).
The static image can be associated to a specific module, to a whole agent (so that if it has at least one bad module, it will become red and will only become green if all its modules are in normal state). You can also choose whether to enable the last value, not to display it or just hide it for boolean modules (default option).
The static image can also be associated to the general status of another visual console (see advanced options at the end of this chapter).
It is very similar to the static image, except that the selected icon will always appear in gray, as if it were in unknown. Often, icons that do not have status information are used, meaning they cannot be used as a static image, but as an icon. A simple image, such as a logo, for example.
Icons linking to other pages
By means of the tag field and in case a complete URL address is entered, the icon can be linked to a website. For example, to link a visual map icon to the SNMP console viewer, an icon type element must be created that has the full URL of the viewer as a tag field:
It can also be useful for linking to another visual console, for example, so that you can build “navigation icons” between our own visual consoles.
Progress type items allow us to see the status of a module in a very graphic and descriptive way. They can be progress bar, ball, donut or full doughnut type graphics.
Options of the percentile item
The percentage bar has far fewer controls than the rest of the elements, but it has two controls that will be explained:
- Width: It will be the width in pixels of the selected element (stick, ball, doughnut/circular).
- Max value: It is the maximum value that the module can possibly represent. So it is interesting that you examine the module to be monitored well to see what the maximum value is, for example, in the case of the screenshot it is the CPU module that goes from 0 to 100.
- Type: The type will allow you to define how to represent the element graphically (bar, ball, doughnut, etc.).
It displays a graph in real time. It can be a graph of an ordinary data module, a combined graph or one of the graphs that obtain its value in tabular form, which can belong to several types.
Options of a module graph
In the graph, it is necessary to define the width and height, so it is no longer hidden in the advanced options to be displayed.
- Interval: The data range that the graph will display from the current moment backwards, e. g. 1 day.
- Size: Width and height of the image that the graphic will take on screen and the figures of the axes.
- Background color: White, black or transparent. This allows to make it fit visually with your VC.
- Type: It allows you to choose the type: module graph, combined graph or tabular graph.
- Agent/Module: If you have chosen a graph associated with a data series.
Graphs are not “previewed” in edit mode, so a white box is displayed instead.
Pie and bars serialized graphs
These two elements of the visual console allow to add complex pie or vertical/horizontal bars graphs to a visual console. Unlike a combined graph of the “pie” or “bars” type, these serialized graphs incorporate data from a single module, with a special format. Only a “Text” module that contains series of data in the following format can be added:
tag,value tag2,value2 tag3,value3 tag4,value4 ..
Up to a maximum of six elements. To create a module with this data, it is recommended to do it with an agent plugin. This would be an example of a Linux local plugin that generates an XML for such a module. In this case the REST API of Integria IMS is used to retrieve data from open incidents, separated by status:
#!/bin/bash #NEW echo New,`curl -s "https://support.mycompany.comintegria/include/api.php?user=external_api&user_pass=mysecret&pass=mysecret2&op=get_stats¶ms=opened,,1"`> /tmp/support2.tmp #UNCONFIRMED echo Unconfirmed,`curl -s "https://support.mycompany.comintegria/include/api.php?user=external_api&user_pass=mysecret&pass=mysecret2&op=get_stats¶ms=opened,,2"`>> /tmp/support2.tmp #ASSIGNED echo Assigned,`curl -s "https://support.mycompany.comintegria/include/api.php?user=external_api&user_pass=mysecret&pass=mysecret2&op=get_stats¶ms=opened,,3"`>> /tmp/support2.tmp #REOPENED echo ReOpened,`curl -s "https://support.mycompany.comintegria/include/api.php?user=external_api&user_pass=mysecret&pass=mysecret2&op=get_stats¶ms=opened,,4"`>> /tmp/support2.tmp #MOVED TO DEVELOPMENT echo Developing,`curl -s "https://support.mycompany.comintegria/include/api.php?user=external_api&user_pass=mysecret&pass=mysecret2&op=get_stats¶ms=opened,,5"`>> /tmp/support2.tmp #PENDING: echo Pending,`curl -s "https://support.mycompany.comintegria/include/api.php?user=external_api&user_pass=mysecret&pass=mysecret2&op=get_stats¶ms=opened,,6"`>> /tmp/support2.tmp echo "<module>" echo "<name>Support_Status</name>" echo "<type>generic_data_string</type>" echo "<data><![CDATA[`cat /tmp/support2.tmp| tr -d ' '`]]></data>" echo "</module>"
This will generate an XML similar to his one:
<module> <name>Support_Status</name> <type>generic_data_string</type> <data><![CDATA[New,0 Unconfirmed,0 Assigned,43 Reopened,6 Developing,5 Pending,197]]></data> </module>
That will show a graph like this one when interpreted (in the case of a pie graph type):
This element allows the visual console to show the value of a module in real time. Just define a label (optional), and choose the agent and module. To replace the value, use the macro (
_VALUE_). Several examples can be seen in the screenshot from the previous section.
If the module is a string type data, and contains a binary data encoded in Base64, it will display the image. It must start with
It displays a horizontal bar, similar to the main agent view, where events that took place in the last 24hrs for an agent or an agent/module combination are shown.
It allows to represent (and provide a link to) the current status of a service. It also indicates the % of SLA compliance in real time.
This type of item can be used to create a text tag without associated content. It contains text and HTML code (which can create an internal link or other advanced options).
Boxes and lines
If you cannot “customize” a background image, this is a simple but effective way to “customize” the appearance of your console, adding boxes of different colors and shapes to order and enhance the look of your visual console.
This item allows you to add to your visual console a dynamic clock, both analog and digital of any time zone, showing and updating the exact time at all times without having to refresh the page.
Heat map / Color cloud
This element allows representing colored blurred clouds that depend on the value of the assigned module. This is commonly called “heat map”.
The configuration allows to create ranges of values (for now only numerical). When the value of the selected module is between the range values (including limits), the chosen color for that range will be used for the element. If no range is reached, the default color will be used.
Two objects (static image elements) that have been configured via Agents with Modules for network interface of type
<prefix>ifOperStatus, can be linked via a Network link. To do this, add a static image, specify an Agent and select a Module, see the example images:
Then add a Network link and drag one of its ends to one of the static images previously configured:
Finally, drag the other end to the second static image:
The three elements will be joined together and when moving one of them they will be moved as a whole, for example:
By double clicking on the Network link you will be able to see the two graphs and perform the operations inherent to them, for example:
It is recommended to modify the modules and place units, if applicable, since they will reflect this change in the Visual Console, see the example images below.
Module modification (example):
Established units, if applicable (example):
Updating in the Visual Console (example):
Allows you to select an Agent and then one of its Modules, which is of numerical type. It has two types of operation: absolute values or values with percentage. The percentage will be used only if it has as units the percentage symbol, and has defined minimum and maximum (100). In that case, the percentage value is shown as a value, otherwise the absolute value of the module is shown, although the odometer represents it as a percentage in the graph. It takes the maximum and minimum defined, and if not defined it takes the maximum and minimum of the last two days. If it has thresholds it will be shown according to its green, yellow or red status; otherwise it will always remain green.
Advanced options of each element
The default position is 0x0, where the first digit is the X axis and the second digit is the Y axis. These values are in pixels, and note that the axis is defined in such a way that on the Y axis it is inverted, where the upper part is 0 and it grows downwards. The X axis is defined in the classical form, i. e. it starts at the left side and grows to the right. This position is automatically changed by clicking and dragging an item.
The relationship between visual console elements is represented with lines between them. The color of the line depends on the state of the parent element.
Several elements can be used to “summarize” the status of another visual console. That way, the status of the icon (Green, Yellow or Red) is shown using the status of the linked console. It is also possible to activate an element link to the visual console.
Ways to calculate the status of the linked visual console
- By Default
It calculates the status based on the status of all elements, as an agent would do.
- By weight
It calculates the status of the elements that have a visual console, a module or an agent assigned in relation to a percentage of elements configured by the user. This percentage is the one that must exceed the number of elements of a non-normal status regarding the number of elements taken into account for the calculation for that status to change.
For example, given an element with a percentage of 50% and a visual console linked to 5 elements:
- 1 critical, 1 warning and 3 normal → Status normal.
- 2 critical, 2 warning and 1 normal → Status normal.
- 1 critical, 3 warning and 1 normal → Status warning.
- 3 critical, 1 warning and 1 normal → Status critical.
- 1 critical, 1 warning and 3 unknown → Status unknown.
If several status exceed the weight, the priority is the same as in the rest of the status calculation (critical > warning > unknown). If there are no elements to perform the calculation, the status becomes unknown.
- By critical elements
It calculates the status using the elements in critical status and the percentages of the thresholds defined by the user. If the number of elements in critical status regarding the number of elements taken into account in the calculation exceeds the percentage assigned as warning, the status becomes warning. The same applies to the percentage assigned as critical, which also has preference.
From Pandora FMS 727 version you can make massive changes in this section. To do it, go to Extensions > Visual Console Manager. Once there, choose the visual map, the elements of the map and the type of status calculation you want to change.
Restricted access to a group
Selecting one will restrict the display of this item in the visual console for those users who do not have reading permissions over said group.
It will also be taken into account when calculating the status weight in a linked console: it will only be calculated on the elements that the user can see.
Sharing a Visual Console
It is possible to share a visual map with anyone, even if you do not have a username/password to log in Pandora FMS. You can share the visual console with any user, simply by providing access through a public URL. To do this, from the console view, access the “share” tab (the camera icon at the top right), as shown in this screenshot:
This is a static URL and it looks like this:
http://192.168.50.2/operation/visual_console/public_console.php?hash =86d1d0e9b6f41c2e3e04c5a6ad37136b&id_layout =3&id_user = admin2
Share that URL with anyone so that they may access the information displayed in the visual console. The user will not be able to access from there any of the links or information of any agent, only the information published in the visual console. This is an excellent way to share data with anonymous users
Macros in Visual Consoles
From version 712 onwards, it is possible to use keywords or “macros” that work dynamically, so when entering a macro in the text box when editing an element of the visual console, this macro will be replaced in the view mode by the data obtained from the feature of that macro.
List of visual maps' macros:
_date_: It displays the date using the local PHP format.
_time_: It displays the time using the local PHP format.
_agent_: It displays the alias of the selected agent.
_module_: It displays the name of the selected module.
_agentdescription_: It displays the description of the selected agent.
_address_: It displays the ip address of the selected agent.
_description_moduledescription_: It displays the description of the selected module.
Full screen view
One of the most important features of visual consoles is to allow automatic refresh and full-screen display. Its most obvious application is in large information panels. There is a control that allows you to define how often you want the screen to be refreshed. If you activate the “full screen” mode of a visual console, you will see the refresh time at the top on the right.
There is a similar feature in dashboards, but they also allow you to rotate these screens, be it visual consoles or other types of dashboards. The chapter about dashboards provides further discussion about this topic.
Complete example of linked visual console
You can see the service concept more clearly with the following example.
Chip Company is a company that sells computers over the Internet. Chip Company has three large departments:
- Online shop.
As you can see, there are three services offered to the customer: Online Shop, Support and, indirectly, Management. All services are critical to the business because if one fails, others can be affected, and the company could lose a lot of money, even customers.
In the end, essentially, what you want to know is whether you are fulfilling your customers' needs, since a satisfied customer can lead to more customers. That is why providing stable, quality service is so important.
To monitor Chip Company's services, it is necessary to know more about each one of them.
The Online Shop service is responsible for ensuring that the store's website is online, that all product prices are correct, managing product categories, and so on. In general, make sure that all information about products and payment methods is correct on the website to facilitate the purchase process.
We are interested in the following parameters of this service:
The Support service must answer all possible questions that customers may ask about the equipment they purchased. Some of the tasks of this department include: helping customers with their configurations, managing computer replacements and replacement pieces, and managing equipment returns.
This service, like the Online Shop, is directly related with the customer, so both are very important for the image of the company from the customer's point of view.
From this department, the following parameters should be monitored:
The third service is that of Management which includes the departments of: Marketing, Sales, Human Resources and others related to management. Their main task is to ensure that all internal company processes work properly. The services offered by this department are essential as they coordinate the other departments.
The most important parameters of the Management service are:
To represent these services, you may link several maps with the help of the Pandora FMS visual console and the images that describe the hierarchy of Chip Company.
The data from these maps are calculated in real time, so you will always know the status of the services at all times. The first thing to do was map each service independently.
The following image shows a visual console that simulates the Online Store service map with the status of all its parameters. As you may see, the parameter Updated Content has a red exclamation mark which means that there is something wrong. Regarding the other parameters, they are correct because they have green checks. The back arrow is used to go to the general map below.
If you want to know more about the problem, you can click on the red exclamation mark and you will see the technical view to find out more about the problem. This technical view shows the data collected by Pandora FMS from sources such as: CRM, ERP, SAP, Databases (MySQL, Oracle, etc), including devices such as PC, servers or routers.
There are also other maps for the Support service you can see in the image below. As you can see, all the important parameters of the Support service are correct as they all have green checks.
Finally, with the service maps a map for the Management service is created, which you can see in the following image. Again the map shows the most important parameters with their corresponding points, in this case all have green checks which means that all the parameters of the service are correct.
In addition, a general map with all Chip Company services has been created as shown in the following image. On this map you can see Chip Company's service hierarchy with the states of each state. If you click on one of the status reporting points you will see the specific map of each service. All these maps provide a complete navigable view of Chip Company's services. The status of each service is the same as shown on the specific maps of each service. As you can see, Management and Support are correct, but Online Shop has problems. As you can see, the state of services climbs positions within the hierarchy to the top, spreading out the state.
Favorite visual consoles
The options of favorite visual consoles allow you to have shortcuts from the menu bar or to access to a list of visual consoles marked as favorites.
To mark a visual console as a favorite, check the favorite visual console checkbox when creating or editing it in its main editing section:
To modify the options of favorite visual consoles, access the Setup > Visual Styles from the sidebar menu.
- View type of visual consoles: The section of visual consoles by default will be the complete list of visual consoles or just the favorite ones.
- Number of visual consoles to be displayed on the menu: Number of visual consoles to be displayed on the sidebar menu.
In case of entering a number in the number field of favorite visual consoles, then these will be displayed like this:
Section of all visual consoles:
Section of favorite visual consoles:
Visual Console Templates
In this section, you my see the templates of created visual consoles, as well as create new templates.
To create a new template, all you have to do is choose a created visual console, a representative name and the group and a new template will be created.
Visual console wizard
The visual console template wizard is used to use one of the previously created templates to apply to a new visual console. Choose the agents to which you want to apply the selected template. As many visual consoles will be created as agents have been chosen.
After creating the template, if you want to make any changes, make them on the chosen visual console and re-create the template.
Once you have applied the template, create the visual consoles, which will appear on your list.
If the template is created through a favorite visual console, all visual consoles created from this template will also be favorite.
In order to make the use of templates more dynamic, add macros to the labels of the elements of the visual consoles: _agent_ and _agentalias_ replacing them with the name and alias of the agent.