Nagios XI – Integrating NagVis With Nagios XI Important:
Transcription
Nagios XI – Integrating NagVis With Nagios XI Important:
Nagios XI – Integrating NagVis With Nagios XI The Industry Standard in IT Infrastructure Monitoring Important: This document is outdated as all versions of Nagios XI (2012 and newer) ship with NagiVis by default and the “NagiosXI-Nagvis.sh” install script should NOT be run! Purpose This document describes how to install the NagVis network status visualization tool with Nagios XI. NagVis is a visualization addon for Nagios, which can be used to visualize Nagios data. NagVis is a useful tool to highlight issues in a visual manner. Target Audience This document is intended for use by Nagios XI administrators who wish to deploy NagVis for network status visualization. Requirements You must be running Nagios XI 2009R1.2 or later in order to use this documentation. Automated Installation The process of installing NagVis to a Nagios XI system can be automated with a Nagios XI – NagVis script that can be downloaded from: http://assets.nagios.com/downloads/nagiosxi/scripts/NagiosXI-Nagvis.sh Follow the steps below to install NagVis: 1. Open a terminal and Log in to the Nagios XI server as the root user 2. Download the automated installation script to the /tmp directory by running these commands: cd /tmp wget http://assets.nagios.com/downloads/nagiosxi/scripts/NagiosXI-Nagvis.sh 3. Make the script executable chmod +x NagiosXI-Nagvis.sh 4. Execute the script: ./NagiosXI-Nagvis.sh The installation script will perform the following steps for you: • Install prerequisite packages • Download and untar NagVis • Install and configure NagVis with options fitting a Nagios XI environment The script is also documented internally if you would like to see its operation in more detail. Nagios Enterprises, LLC US: 1-888-NAGIOS-1 P.O. Box 8154 Int'l: +1 651-204-9102 Saint Paul, MN 55108 Fax: +1 651-204-9103 USA Web: www.nagios.com Email:[email protected] Page 1 Copyright © 2010 - 2014 Nagios Enterprises, LLC Revision 1.1 – October, 2014 Nagios XI – Integrating NagVis With Nagios XI Accessing NagVis To access your new NagVis installation, open the following URL in your web browser (replacing <yourserver> with your Nagios XI server's address). http://<yourserver>/nagvis NagVis uses a different authentication mechanism than Nagios XI, so you will need to re-authenticate in order access NagVis. When prompted, use the same username and password you use to login to Nagios XI. Once you authenticate you should see a default NagVis view with some demo maps: You have successfully installed NagVis! Note that NagVis has an included web based config tool called WUI. If you want to use it open the page http://<yourserver>/nagvis/frontend/wui/index.php in your browser and click the menus across the top. You may need to disable script or popup blockers to use the WUI. You can refer to the official NagVis documentation at http://www.nagvis.org/documentation for further usage, configuration, and map creation information. Customizing The Automap If you would like to use the Automap (an automatically generated display of defined hosts), there are some additional steps you will need to take. By default, the Automap shows a rather plain page with a single bubble for localhost (your monitoring server) in the middle, even if you have other hosts defined. In order for those other hosts to show up in the Automap, you will need to define parent/child relationships for each host you wish to appear. Those hosts must have a parent/child path back to localhost. Keep reading for instructions on how to configure parent/child relationships and customize the look of the Automap. Defining Parent/Child Relationships To define parent/child relationships between hosts, you will need to enter the Nagios Core Config Manager (Admin → Core Config Manager → Host). Select a host from the list to edit the host definition. You can specify its parent hosts by using the Manage Parents button on the Common Settings tab. Select the parent host from the list on the left and click Add Selected to move it to the right hand Assigned list. When finished, click Close, then Save, and finally Apply Configuration. Nagios Enterprises, LLC US: 1-888-NAGIOS-1 P.O. Box 8154 Int'l: +1 651-204-9102 Saint Paul, MN 55108 Fax: +1 651-204-9103 USA Web: www.nagios.com Email:[email protected] Page 2 Copyright © 2010 - 2014 Nagios Enterprises, LLC Revision 1.1 – October, 2014 Nagios XI – Integrating NagVis With Nagios XI Hosts that are one network “hop” away from your Nagios XI monitoring server should have localhost as their parent host. After you have configured some hosts to have localhost as their parent, they will show up on the NagVis Automap. You can define multiple levels of parents, which will result in a more complex map. The hosts that are closest to and connected to localhost must have localhost defined as being their parent, or they and their children will not appear on the map. If you create a chain of parent/child related hosts, but do not define at least one of those hosts as being a child of localhost, you will not see any of them on the map. Multiple Parents As you may have already noticed, it is possible to define more than one parent for any given host. Multiple parents will work with the NagVis Automap, although it quickly becomes more confusing. By default there is no indication as to which host is the parent and which is the child. So while you can see that there is a relationship between hosts, it becomes ambiguous as to how exactly that relationship is defined. Read on for some tips on styling the Automap with directed lines to alleviate this confusion. Nagios Enterprises, LLC US: 1-888-NAGIOS-1 P.O. Box 8154 Int'l: +1 651-204-9102 Saint Paul, MN 55108 Fax: +1 651-204-9103 USA Web: www.nagios.com Email:[email protected] Page 3 Copyright © 2010 - 2014 Nagios Enterprises, LLC Revision 1.1 – October, 2014 Nagios XI – Integrating NagVis With Nagios XI Advanced Automap Styling Under the hood, NagVis uses a utility called GraphViz to draw the automap. The NagVis PHP code is used to write a graph file in the DOT language format, and then GraphViz renders the graph into a PNG image. In order to change the styling of the image, we need to change what is written to the DOT file. The DOT language and GraphViz uses terminology of nodes and edges, which in our case are hosts and the parent-child relationship lines, respectively. Both of these items can be styled, with documentation on the details of doing so provided at http://www.graphviz.org/doc/info/attrs.html. Directed Lines Since an issue with multiple parents was the lack of direction in the parent/child relationships, we will start by styling the edges to show direction. Note: Some installations may come with this as the default style of the Automap and you can skip the following steps. By default NagVis treats the edges as having the attribute dir=none, meaning they are non-directional, and rendered as simple lines. To change the display to arrows, we will set the attribute dir=forward. To do this, log onto your Nagios XI server and edit the file /usr/local/nagvis/share/server/core/classes/objects/NagVisHost.php, looking for a line that looks like the following (as of this writing it is line #108): $strReturn .= $this->getType().'_'.$this->getObjectId().' -- '.$OBJ->getType().'_'.$OBJ>getObjectId().' [color=black, decorate=1, style=solid, weight=2 ];'."\n "; Add the dir=forward attribute to that line so it reads: $strReturn .= $this->getType().'_'.$this->getObjectId().' -- '.$OBJ->getType().'_'.$OBJ>getObjectId().' [color=black, decorate=1, style=solid, weight=2, dir=forward ];'."\n "; Save the file and refresh your Automap. You should see directed lines in the map. Nagios Enterprises, LLC US: 1-888-NAGIOS-1 P.O. Box 8154 Int'l: +1 651-204-9102 Saint Paul, MN 55108 Fax: +1 651-204-9103 USA Web: www.nagios.com Email:[email protected] Page 4 Copyright © 2010 - 2014 Nagios Enterprises, LLC Revision 1.1 – October, 2014 Nagios XI – Integrating NagVis With Nagios XI Additional Styling It is also possible to style the nodes in the AutoMap if you would like. This is done in the same PHP file by setting the shape attribute in the parseGraphviz() function. You can also add your own PHP handling code to style different types of nodes separately. For instance, I modified my parseGraphviz() function to look like this: function parseGraphviz($layer=0, &$arrHostnamesParsed) { $strReturn = ''; if(!in_array($this->getName(), $arrHostnamesParsed)) { $strReturn .= $this->getType().'_'.$this->getObjectId().' [ '; $strReturn .= 'label=<<table border="0">'; if(isset($this->statusmap_image) && $this->statusmap_image != '') { $strReturn .= '<tr><td><img src="'.$this->CORE->MAINCFG>getValue('paths', 'shape').$this->statusmap_image.'"></img></td></tr>'; } $strReturn .= '<tr><td><img src="'.$this->iconPath.$this>icon.'"></img></td></tr>'; $strReturn .= '<tr><td>'.$this->getName().'</td></tr>'; $strReturn .= '</table>>, '; $strReturn .= 'URL="'.str_replace(array('[htmlcgi]', '[host_name]'), array($this->CORE->MAINCFG->getValue('backend_'.$this->backend_id, 'htmlcgi'), $this->getName()), $this->CORE->MAINCFG->getValue('defaults', 'hosturl')).'", '; $strReturn .= 'target="'.$this->url_target.'", '; $strReturn .= 'tooltip="'.$this->getType().'_'.$this->getObjectId().'",'; // The root host has to be highlighted, these are the options to do this if($layer == 0) { $strReturn .= 'shape="house",'; } else if($layer == 1) { $strReturn .= 'shape="box3d",'; } else if($layer == 2) { $strReturn .= 'shape="folder",'; } else { $strReturn .= 'shape="circle",'; } $strReturn .= 'layer="'.$layer.'"'; $strReturn .= ' ];'."\n "; // Add host to the list of parsed hosts $arrHostnamesParsed[] = $this->getName(); foreach($this->getChilds() As $OBJ) { if(is_object($OBJ)) { $strReturn .= $OBJ->parseGraphviz($layer+1, $arrHostnamesParsed); $strReturn .= $this->getType().'_'.$this>getObjectId().' -- '.$OBJ->getType().'_'.$OBJ->getObjectId().' [color=black, decorate=1, style=solid, weight=2, dir=forward ];'."\n "; } } } } return $strReturn; Nagios Enterprises, LLC US: 1-888-NAGIOS-1 P.O. Box 8154 Int'l: +1 651-204-9102 Saint Paul, MN 55108 Fax: +1 651-204-9103 USA Web: www.nagios.com Email:[email protected] Page 5 Copyright © 2010 - 2014 Nagios Enterprises, LLC Revision 1.1 – October, 2014 Nagios XI – Integrating NagVis With Nagios XI You can change the font size of node labels by editing /usr/local/nagios/share/nagvis/nagvis/includes/classes/NagVisAutoMap.php. In my testing, line #253 contained the font size and color that could be modified, which I set to: $str .= 'fontcolor=black, fontsize=16'; After a font size change, along with the modification of node styles described above, you can end up with an Automap map that looks like the picture below. Pretty cool! Styling Reference For more information on available attributes in the DOT language, visit http://www.graphviz.org/doc/info/attrs.html. Version Note These instructions refer to the current stable branch of NagVis, which at the time of last update was 1.5.x. Finishing Up If you have any additional support issues that you cannot resolve, please, post your questions on the Nagios Support Forum: http://support.nagios.com/forum/ Nagios Enterprises, LLC US: 1-888-NAGIOS-1 P.O. Box 8154 Int'l: +1 651-204-9102 Saint Paul, MN 55108 Fax: +1 651-204-9103 USA Web: www.nagios.com Email:[email protected] Page 6 Copyright © 2010 - 2014 Nagios Enterprises, LLC Revision 1.1 – October, 2014