Configuring Nagios Graphs

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
nathanplatt
Posts: 267
Joined: Thu May 07, 2015 4:59 am

Configuring Nagios Graphs

Post by nathanplatt »

Hi Guys,

I've been following instructions to install Nagiosgraph onto my server. I've followed all the instruction in the readme file of the nagiosgraph-1.5.2 folder, however when getting to the apache2 configuration file i have nothing there to modify.

Looking at it, i think i need to create a nagiosgraph.conf in the enabled sites, but the instructions aren't very clear, or am I reading it wrong? Any help would be appreciated.
Configuring Graphing and Display

First configure the web server to run the nagiosgraph CGI scripts. For example, with Apache do something like this in the Apache configuration:

ScriptAlias /nagiosgraph/cgi-bin /usr/local/nagiosgraph/cgi-bin
<Directory "/usr/local/nagiosgraph/cgi-bin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /nagiosgraph "/usr/local/nagiosgraph/share"
<Directory "/usr/local/nagiosgraph/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Restart the web server:

/etc/init.d/apache2 restart

Verify that nagiosgraph is working by running showconfig.cgi

http://server/nagiosgraph/cgi-bin/showconfig.cgi

Try graphing some data by running show.cgi

http://server/nagiosgraph/cgi-bin/show.cgi

This should display a web page with a list of your hosts and services. Note that it might take a few minutes for data to collect, so at first the list of hosts and services might be sparse and the graphs might be empty.

There are a few ways to embed graphs into Nagios. In the service and host listings, Nagios will display graph icons that, when clicked, will open a new web page with graphs. These icons are typically per-host (linked to the showhost.cgi script) or per-host-service (linked to the show.cgi script). Nagios will display graph data when the mouse is moved over the graph icon for each host/service. Finally, graphs can be displayed directly in the Nagios frames. The following sections explain how to do each of these.
nathanplatt
Posts: 267
Joined: Thu May 07, 2015 4:59 am

Re: Configuring Nagios Graphs

Post by nathanplatt »

I've tried a few things, and all i seem to get now is;
The ScriptAlias directive in /usr/local/nagiosgraph/etc/nagiosgraph-apache.conf at line 2 will probably never match because it overlaps an earlier Alias.
Here is my apache2.conf excert;

Code: Select all


include /usr/local/nagiosgraph/etc/nagiosgraph-apache.conf

And that file

Code: Select all

# enable nagiosgraph CGI scripts
ScriptAlias /nagiosgraph/cgi /usr/local/nagiosgraph/cgi
<Directory "/usr/local/nagiosgraph/cgi">
   Options ExecCGI
   AllowOverride None
   Order allow,deny
   Allow from all
#   AuthName "Nagios Access"
#   AuthType Basic
#   AuthUserFile NAGIOS_ETC_DIR/htpasswd.users
#   Require valid-user
</Directory>
# enable nagiosgraph CSS and JavaScript
Alias /nagiosgraph "/usr/local/nagiosgraph/share"
<Directory "/usr/local/nagiosgraph/share">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>


Any ideas what i've done wrong?
rkennedy
Posts: 6579
Joined: Mon Oct 05, 2015 11:45 am

Re: Configuring Nagios Graphs

Post by rkennedy »

For reference, what link are you following instructions from?
Former Nagios Employee
nathanplatt
Posts: 267
Joined: Thu May 07, 2015 4:59 am

Re: Configuring Nagios Graphs

Post by nathanplatt »

The readme that come with the software download, its within the tar file.

https://sourceforge.net/projects/nagios ... aph/1.5.2/

Location of the file, the readme is inside
rkennedy
Posts: 6579
Joined: Mon Oct 05, 2015 11:45 am

Re: Configuring Nagios Graphs

Post by rkennedy »

nathanplatt wrote:I've tried a few things, and all i seem to get now is;
The ScriptAlias directive in /usr/local/nagiosgraph/etc/nagiosgraph-apache.conf at line 2 will probably never match because it overlaps an earlier Alias.
Here is my apache2.conf excert;

Code: Select all


include /usr/local/nagiosgraph/etc/nagiosgraph-apache.conf

And that file

Code: Select all

# enable nagiosgraph CGI scripts
ScriptAlias /nagiosgraph/cgi /usr/local/nagiosgraph/cgi
<Directory "/usr/local/nagiosgraph/cgi">
   Options ExecCGI
   AllowOverride None
   Order allow,deny
   Allow from all
#   AuthName "Nagios Access"
#   AuthType Basic
#   AuthUserFile NAGIOS_ETC_DIR/htpasswd.users
#   Require valid-user
</Directory>
# enable nagiosgraph CSS and JavaScript
Alias /nagiosgraph "/usr/local/nagiosgraph/share"
<Directory "/usr/local/nagiosgraph/share">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>


Any ideas what i've done wrong?
The instructions actually tell you to put this part, where as you're missing the '-bin' part after CGI.

Code: Select all

    ScriptAlias /nagiosgraph/cgi-bin /usr/local/nagiosgraph/cgi-bin
    <Directory "/usr/local/nagiosgraph/cgi-bin">
       Options ExecCGI
       AllowOverride None
       Order allow,deny
       Allow from all
    </Directory>
    Alias /nagiosgraph "/usr/local/nagiosgraph/share"
    <Directory "/usr/local/nagiosgraph/share">
       Options None
       AllowOverride None
       Order allow,deny
       Allow from all
    </Directory>
Also, did you run through the actual installation of Nagios graph? It's located under 'Installing nagiosgraph Files'. You will need to do this before adding the apache configuration.
Former Nagios Employee
rkennedy
Posts: 6579
Joined: Mon Oct 05, 2015 11:45 am

Re: Configuring Nagios Graphs

Post by rkennedy »

To add to this, I just ran through the instructions and it's working to the point of where I can load this page -
http://x.x.x.x/nagiosgraph/cgi-bin/showconfig.cgi

No issues at all with my apache configuration, except having to change the Order deny,allow \ Deny from all to Require all granted (because I'm on apache 2.4).
Former Nagios Employee
nathanplatt
Posts: 267
Joined: Thu May 07, 2015 4:59 am

Re: Configuring Nagios Graphs

Post by nathanplatt »

I've tried multiple ways to make this work, I ran thru the instructions manually and tried the installer. I checked the apache file and ammeded the details to include the correct path, but I still get the Alais issue.

I'm stuck at the same point as rkennedy
rkennedy
Posts: 6579
Joined: Mon Oct 05, 2015 11:45 am

Re: Configuring Nagios Graphs

Post by rkennedy »

I actually didn't see an alias issue at all. For the record, what OS are you running? What version of core? How did you install core? What is the output of apachectl -v?

Can you post your nagiosgraph configuration file?

The point I'm at is seeing this on the showconfig.cgi, which I haven't looked into further. -
nagios-graph.PNG
Here is what I have added in my /etc/httpd/conf.d/nagios.conf -

Code: Select all

ScriptAlias /nagiosgraph/cgi-bin /usr/local/nagiosgraph/cgi-bin
<Directory "/usr/local/nagiosgraph/cgi-bin">
Options ExecCGI
AllowOverride None
#Order allow,deny
#Allow from all
Require all granted
</Directory>
Alias /nagiosgraph "/usr/local/nagiosgraph/share"
<Directory "/usr/local/nagiosgraph/share">
Options None
AllowOverride None
#Order allow,deny
#Allow from all
Require all granted
</Directory>
Former Nagios Employee
nathanplatt
Posts: 267
Joined: Thu May 07, 2015 4:59 am

Re: Configuring Nagios Graphs

Post by nathanplatt »

Hi Guys,

Sorry it took so long,

Ubuntu 14.0.4 Server Edition.
Nagios® Core™ Version 4.1.1

I tried installing via manual method and the install.pl script.

nagios@nagios:~$ sudo apachectl -v
Server version: Apache/2.4.7 (Ubuntu)
Server built: Jan 14 2016 17:45:23
nagios@nagios:~$

Code: Select all

# nagiosgraph configuration file
#
# $Id$
# License: OSI Artistic License
#          http://www.opensource.org/licenses/artistic-license.php
# Author:  (c) 2005 Soren Dossing
# Author:  (c) 2008 Alan Brenner, Ithaka Harbors
# Author:  (c) 2010 Matthew Wall

# Location of output from nagiosgraph data processing
logfile = /usr/local/nagiosgraph/var/log/nagiosgraph.log

# Location of output from nagiosgraph CGI scripts
cgilogfile = /usr/local/nagiosgraph/var/log/nagiosgraph-cgi.log

# Location of nagios performance data log file.
perflog = /var/nagios/perfdata.log

# Directory in which to store RRD files
rrddir = /usr/local/nagiosgraph/var/rrd

# File containing regular expressions to identify service and perf data
mapfile = /usr/local/nagiosgraph/etc/map

# Nagiosgraph CGI URL.
nagiosgraphcgiurl = /nagiosgraph/cgi-bin

# Nagios CGI URL.  If the Nagiosgraph CGI scripts are in a directory other
# than the Nagios CGI directory, then specify the Nagios CGI URL here.
nagioscgiurl = /nagios/cgi-bin

# JavaScript: URL to the nagiosgraph javascript file.
javascript = /nagiosgraph/nagiosgraph.js

# Stylesheet: URL to the nagiosgraph stylesheet.
stylesheet = /nagiosgraph/nagiosgraph.css

# File containing labels for services and data (optional)
labelfile = /usr/local/nagiosgraph/etc/labels.conf

# Location of showhost control file (optional)
#hostdb = /etc/nagiosgraph/hostdb.conf

# Location of showservice control file (optional)
#servdb = /etc/nagiosgraph/servdb.conf

# Groups can be enumerated explicitly in the groupdb file, gathered
# automatically from the service group definitions in the Nagios
# configuration, or a combination of both.
# Location of showgroup control file (optional)
#groupdb = /etc/nagiosgraph/groupdb.conf
# Location of the Nagios configuration file (optional)
#groupcfgfile = /etc/nagios/nagios.cfg

# File containing sets of data sources to select in queries (optional)
datasetdb = /usr/local/nagiosgraph/etc/datasetdb.conf

# Access control configuration (optional)
# The authorization method can be one of nagios3 or nagiosgraph.  If no
# method is defined, access will be granted to all hosts and services.

# For access control via nagios, specify the nagios configuration files.
# Nagios3 defaults to use authentication.  nagiosgraph looks for the
# use_authentication variable to determine whether authentication is enabled.
# If authentication is enabled, nagiosgraph looks for the
# authorized_for_all_hosts, authorized_for_all_services, and default_user_name
# variables to determine permissions.
#authzmethod = nagios3
#authzfile = /etc/nagios/cgi.cfg

# For access control via nagiosgraph, specify a single access control file.
# See the sample access control file for syntax and examples.
#authzmethod = nagiosgraph
#authzfile = /etc/nagiosgraph/access.conf


# Logging can be enabled for a specific CGI script and/or specific hosts or
# services.  When level is set to 5, the logs will see a lot of extra output,
# so be sure to reset the level when you have finished debugging.

# Log Levels
# 0 = None
# 1 = Critical
# 2 = Error
# 3 = Warn
# 4 = Info
# 5 = Debug
debug = 3

### log level for specific scripts
# log level for insert.pl
#debug_insert = 5
# if this is set to a hostname, then only log for this host
#debug_insert_host = host1
# if this is set to a service, then only log for this service
#debug_insert_service = PLW
# *_host and *_service together for a specific service on a specific host.
# log level for show.cgi
#debug_show = 5
#debug_show_host = host1
#debug_show_service = ping
# log level for showhost.cgi
#debug_showhost = 5
#debug_showhost_host = host1
#debug_showhost_service = ping
# log level for showservice.cgi
#debug_showservice = 5
#debug_showservice_host = host1
#debug_showservice_service = ping
# log level for showgroup.cgi
#debug_showgroup = 5
#debug_showgroup_host = host1
#debug_showgroup_service = ping
# log level for showgraph.cgi
#debug_showgraph = 5
#debug_showgraph_host = host1
#debug_showgraph_service = ping
# log level for testcolor.cgi
#debug_testcolor = 5

# graph sizes
geometries = 650x50,800x100,1000x200,2000x100

# default graph size (optional)
#default_geometry = 600x100

# Color scheme for graphs.  There are 8 pre-defined schemes (1-8) and one
# custom scheme (9).  The pre-defined schemes use a color based on the
# characters in the name of each data source.  The custom scheme uses each
# color, in order.  Use testcolor.cgi to see what the color schemes
# look like and how they apply to specific service and data set names.
colorscheme = 9

# Sets the saturation and value used by color schemes 1-8. Use any number
# from 0 to 1, inclusive.  The hues are randomly generated based on the
# characters in the name of each data source.
#colorsaturation = 0.8
#colorvalue = 0.95

# Custom color scheme is defined by a comma-separated list of RGB hex colors.
# rainbow: reddish, orange, yellow, green, light blue, dark blue, purple, grey
#colors = D05050,D08050,D0D050,50D050,50D0D0,5050D0,D050D0,505050
# light/dark pairs: blue, green, purple, orange
colors = 90d080,30a030,90c0e0,304090,ffc0ff,a050a0,ffc060,c07020
# green from light to dark
#colors = 80d080,50a050,308030

# Colors for the maximum and minimum values, applied to the data for services
# in withmaximums and withminimums
#colormax = 888888
#colormin = BBBBBB

# Default line style (LINE1, LINE2, LINE3, AREA, TICK); see rrdgraph_graph
plotas = LINE2

# Line styles for specific data sources.
#
# Each style is a list of qualified data source names separated by semicolons.
# A single qualified data source must end with a semicolon.
#   [[[host,]service,]database,]datasource;[[[h2,]s2,]db2,]ds2
# The old-style specification is deprecated:
#   datasource1[,datasource2[,datasource3[,...]]]
#
# For example, this uses LINE3 for all PING sources called 'data' from acme.com
#   plotasLINE3 = .*.acme.com,PING,.*,data;
plotasLINE1 = load5,data;load15,data
plotasLINE2 = 
plotasLINE3 =
plotasAREA = idle,data;system,data;user,data;nice,data
plotasTICK = 

# Data sources that should be stacked.
#
# This is a list of qualified data source names separated by semicolons.
# A single qualified data source must end with a semicolon.
stack = system,data;user,data;nice,data

# Data sources whose value should be negated.
#
# This is a list of qualified data source names separated by semicolons.
# A single qualified data source must end with a semicolon.
#negate = byte-received;drop-received;error-received;multi-received;packet-received

# Specify line formats per data source.  This is a semicolon-separated list of
# line format specifications.  Each format specification contains:
#   [[[host,]service,]database,]ds-name=linestyle[,color][,STACK]
# The old-style specification is deprecated:
#   ds-name,linestyle[,color][,STACK]
#
# For example, this plots every data source called 'crit' as a thin red line:
#lineformat = crit=LINE1,D05050
# This stacks system, nice, and idle onto whatever sources come before them:
#lineformat = system=AREA,FFAAAA;nice=AREA,AAAAFF,STACK;idle,AREA,AAFFAA,STACK
# If the data sources have the same name but different database files, qualify
# them by leading with the database (and service and host, if necessary).
#lineformat = nice,data=AREA,AAAAFF,STACK;idle,data=AREA,AAFFAA,STACK
lineformat = warn=LINE1,D0D050;crit=LINE1,D05050

# Services that should receive 'fixed-scale' treatment.  Specifying fixed scale
# does two things: it prevents rrdtool from translating the vertical axis units
# from raw values to milli, kilo, etc. (the '-X 0' rrd option), and it does the
# same for the values displayed in the legend for max, ave, and last.
#
# This is a list of qualified data source names separated by semicolons.
# A single qualified data source must end with a semicolon.
#fixedscale = .*,PING,loss,.*;

# Graphs to show in host-service page (hour, day, week, month, quarter, year)
timeall = day,week,month,year
# Graphs to show in host page
timehost = day,week,month
# Graphs to show in service page
timeservice = day,week,month
# Graphs to show in group page
timegroup = day,week,month

# Time periods that should default to expanded state.  If not specified here,
# the period will default to a collapsed state.
expand_timeall = hour,day,week,month,quarter,year
expand_timehost = week
expand_timeservice = week
expand_timegroup = day

# Formats for time and date.
timeformat_now = %H:%M:%S %d %b %Y %Z
timeformat_hour = %H:%M
timeformat_day = %H:%M %e %b
timeformat_week = %e %b
timeformat_month = Week %U
timeformat_quarter = Week %U
timeformat_year = %b %Y

# Set this to automatically refresh the web page.  Value is number of seconds.
#refresh = 300

# Set this to hide the nagiosgraph title (useful when nagiosgraph is
# embedded in the nagios frame).
#hidengtitle = true

# Set this to show in the footer the time spent generating the page.
#showprocessingtime = true

# Set this to display a title for each graph in html.  When appropriate, the
# title also includes links to other views of each host and/or service.
showtitle = true

# Set this to display a description for each graph in html.
#showdesc = true

# Set this to put a title in each graph.
#showgraphtitle = true

# Set this to hide the legend in each graph.
#hidelegend = true

# Set this to display only the graph data - no axes, grid, or legend.
#graphonly = true

# For services listed here, graphs that contain averages (e.g. weekly, monthly)
# will include maximum/minimum values as well.  This is useful for services
# such as ping or http transfer rates so that you see not only the average
# values, but also the maximum and minimum values over time.  Each is a list
# of services separated by commas.
# These are not related to the RRA maximum, minimum, or last (defined below).
withmaximums = PING,HTTP
withminimums = PING,HTTP

# Scaling parameters, see the rrdgraph documentation for use
# Separate multiple services to add the -A option to by commas
#altautoscale = service1,service2
# Separate multiple services to add the -J option to by semicolons, and use a
# command to separate the service name from the desired value
#altautoscalemin = service1,min1;service2,min2
# Separate multiple services to add the -M option to by semicolons, and use a
# command to separate the service name from the desired value
#altautoscalemax = service1,max1;service2,max2
# Separate multiple services to add the -N option to by commas
#nogridfit = service1,service2
# Separate multiple services to add the -o option to by commas
#logarithmic = service1,service2

# Specify rrd graph options that apply to all graphs
#rrdopts=--border 0 --color BACK#ffffff

# Optional - define rrdopts override file, this enables you to specify
# particular rrdgraph options against each service.
#rrdoptsfile=/etc/nagiosgraph/rrdopts.conf

# If perfloop is set, insert.pl will loop waiting for input data.  The value
# is the polling interval, in seconds.  Set this only if you intend to run
# insert.pl independently of Nagios.
#perfloop = 30

# The heartbeat, stepsize, and resolution are rrdtool parameters.  They are
# used when RRD files are created.  Changes to these values have no effect
# on existing RRD files.  See the rrdtool documentation for details.
# These values must be coordinated with nagios service check settings and
# the nagiosgraph data processing interval.

# RRD heartbeat, in seconds.  This defines the maximum length of an interval
# with no data update before rrd considers the data unknown.  Typically twice
# the size of servicecheck interval.  600 is the rrdtool default.
#heartbeat = 600
# Specify a heartbeat for specific hosts and services.
#heartbeats = HOST,SERVICE,DATABASE=1200;HOST,SERVICE,.*=1800;.*,.*,.*=600

# RRD step size, in seconds.  This defines how often the data will be updated.
# Typically the size of the servicecheck interval.  300 is the rrdtool default.
#stepsize = 300
# Specify a step size for specific hosts and services.
#stepsizes = HOST,SERVICE,DATABASE=600;HOST,SERVICE,.*=1200;.*,.*,.*=300

# RRD parameters.  These numbers control the number of stored data values
# and thus RRD file size.  They are used when creating RRD files.
# Each RRD file is created with 4 lines of RRA arguments:
#   RRA:(AVERAGE|MIN|MAX|LAST):xff:step1:row1
#   RRA:(AVERAGE|MIN|MAX|LAST):xff:step2:row2
#   RRA:(AVERAGE|MIN|MAX|LAST):xff:step3:row3
#   RRA:(AVERAGE|MIN|MAX|LAST):xff:step4:row4
#
# Using default values, the RRAs are as follows:
#   RRA:AVERAGE:0.5:1:600
#   RRA:AVERAGE:0.5:6:700
#   RRA:AVERAGE:0.5:24:775
#   RRA:AVERAGE:0.5:288:797
#
# The rows are defined by the four resolution values.
# The default results in RRD files that are 20K to 75K in size:
#resolution = 600 700 775 797
# These values keep many more data points, but result in much larger files:
#resolution = 17280 17520 32850 1095
# Specify resolution for specific hosts and services.
#resolutions = HOST,SERVICE,.*=17280 17520 32850 1095;.*,.*,.*=600 700 775 797
#
# The steps are defined by the four step values.
# The default results in consolidated data points for day, week, month, year
#step = 1 6 24 288
# Specify step for specific hosts and services.
#steps = HOST,SERVICE,.*=1 12 48 596;.*,.*,.*=1 6 24 288
#
# The xff (xfiles factor) defines what part of a consolidation interval may be
# made up from UNKNOWN data while the consolidated value is still regarded as
# known.  It is given as the ratio of allowed UNKNOWN PDPs to the number of
# PDPs in the interval.  It ranges from 0 to 1, exclusive.
#xff = 0.5
# Specify xff for specific hosts and services.
#xffs = HOST,SERVICE,.*=0.9;.*,.*,.*=0.5

# By default, each RRD records average values.  To record maximum, minimum, or
# last value instead of the average value, specify the service and database
# names here, optionally qualified by hostname.
#   [host,]service,database;[[host,]service2,database][;...]
# The old-style specification is deprecated:
#   service1[,service2[,service3[,...]]]
#maximums = .*.acme.com,service1,.*;
#maximums = host1,service1,database;service2,database2;.*.acme.com,service3,.*
maximums = Current Load,.*;Current Users,.*;Total Processes,.*;PLW,.*
minimums =
lasts =

# This lists data that need to go into separate rrd files.  This is used
# when creating new rrd files when a change to the map is not possible.  Use
# this to segregate a value from other returned values for a specific host.
# Each entry consists of a comma separated set of host,service,value.  Separate
# each set with a semicolon.
#hostservvar = server1,service1,val1;server2,service2,val2
#hostservvar = host2,PLW,smtp_error

# Organization of RRD files.  There are two ways to organize the RRD files:
# flat : all in a single directory (the old way):
#   rrddir/HOST_SERVICE_DATABASE.rrd
# subdir : organized by host (the new way):
#   rrddir/HOST/SERVICE___DATABASE.rrd
dbseparator = subdir

# Optionally force the language.  If no language is specified, the language
# is determined from the browser environment or explicit cgi argument.  The
# possible values are standard language/country codes such as es, fr, de,
# en_US, en_UK, ...  If there is no corresponding language file, the language
# reverts to english.
#language = es

# JavaScript must be enabled for full functionality.  But if you need to
# disable it and you do not want the warnings, this lets you hide them.
#hidejswarnings = 1

When i try and access the server I at this address; http://192.168.1.5/nagiosgraph/showconfig.cgi

I just get; Forbidden

You don't have permission to access /nagiosgraph/showconfig.cgi on this server.
Apache/2.4.7 (Ubuntu) Server at 192.168.1.5 Port 80
rkennedy
Posts: 6579
Joined: Mon Oct 05, 2015 11:45 am

Re: Configuring Nagios Graphs

Post by rkennedy »

For the record, did you update your apache settings accordingly?

Code: Select all

ScriptAlias /nagiosgraph/cgi-bin /usr/local/nagiosgraph/cgi-bin
<Directory "/usr/local/nagiosgraph/cgi-bin">
Options ExecCGI
AllowOverride None
#Order allow,deny
#Allow from all
Require all granted
</Directory>
Alias /nagiosgraph "/usr/local/nagiosgraph/share"
<Directory "/usr/local/nagiosgraph/share">
Options None
AllowOverride None
#Order allow,deny
#Allow from all
Require all granted
</Directory>
Did this make any difference?
Former Nagios Employee
Locked