Merge lp:~logan/ubuntu/quantal/munin/debian-merge into lp:ubuntu/quantal/munin

Proposed by Logan Rosen
Status: Merged
Merged at revision: 50
Proposed branch: lp:~logan/ubuntu/quantal/munin/debian-merge
Merge into: lp:ubuntu/quantal/munin
Diff against target: 2138 lines (+1802/-22)
41 files modified
ChangeLog (+10/-0)
RELEASE (+1/-1)
debian/changelog (+20/-0)
debian/control (+1/-1)
debian/munin-async.init (+3/-3)
debian/munin-node.init (+2/-4)
debian/munin.init (+2/-4)
doc/.gitignore (+2/-0)
doc/Makefile (+153/-0)
doc/conf.py (+286/-0)
doc/documentation/index.rst (+11/-0)
doc/documentation/nomenclature.rst (+134/-0)
doc/example/index.rst (+14/-0)
doc/example/plugin/aggregate.rst (+188/-0)
doc/example/webserver/apache-virtualhost.rst (+65/-0)
doc/example/webserver/lighttpd.rst (+49/-0)
doc/example/webserver/nginx.rst (+72/-0)
doc/index.rst (+29/-0)
doc/installation/configuration.rst (+84/-0)
doc/installation/help.rst (+27/-0)
doc/installation/index.rst (+16/-0)
doc/installation/install.rst (+177/-0)
doc/installation/prerequisites.rst (+68/-0)
doc/installation/upgrade.rst (+19/-0)
doc/master/index.rst (+18/-0)
doc/master/munin-cron.rst (+14/-0)
doc/master/munin-html.rst (+13/-0)
doc/master/munin-limits.rst (+13/-0)
doc/master/munin-update.rst (+17/-0)
doc/master/rrdcached.rst (+116/-0)
doc/plugin/aggregate.rst (+8/-0)
doc/plugin/index.rst (+13/-0)
doc/plugin/reference.rst (+134/-0)
master/_bin/munin-cron.in (+5/-0)
master/_bin/munin-graph.in (+7/-2)
master/lib/Munin/Master/GraphOld.pm (+1/-1)
master/lib/Munin/Master/Node.pm (+3/-1)
plugins/lib/Munin/Plugin.pm (+3/-0)
plugins/node.d.linux/if_err_.in (+1/-1)
plugins/node.d/munin_stats.in (+0/-2)
plugins/plugin.sh.in (+3/-2)
To merge this branch: bzr merge lp:~logan/ubuntu/quantal/munin/debian-merge
Reviewer Review Type Date Requested Status
Jamie Strandboge Approve
Ubuntu branches Pending
Review via email: mp+116184@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Jamie Strandboge (jdstrand) wrote :

This looks great. Thanks! ACK

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ChangeLog'
2--- ChangeLog 2012-07-02 14:15:42 +0000
3+++ ChangeLog 2012-07-23 03:02:19 +0000
4@@ -1,5 +1,15 @@
5 -*- text -*-
6
7+munin-2.0.2, 2012-06-29
8+
9+Summary :
10+
11+* munin-graph can be called again from cron
12+* workaround "root" field name bug
13+* initial doc/ subdir. will be munin book
14+* emits percent in log about errors
15+* various bugfix
16+
17 munin-2.0.1, 2012-06-10
18
19 Well, first bugfix release.
20
21=== modified file 'RELEASE'
22--- RELEASE 2012-07-02 14:15:42 +0000
23+++ RELEASE 2012-07-23 03:02:19 +0000
24@@ -1,1 +1,1 @@
25-2.0.1
26+2.0.2
27
28=== modified file 'debian/changelog'
29--- debian/changelog 2012-07-02 14:15:42 +0000
30+++ debian/changelog 2012-07-23 03:02:19 +0000
31@@ -1,3 +1,23 @@
32+munin (2.0.2-1ubuntu1) quantal; urgency=low
33+
34+ * Merge from Debian unstable. Remaining changes:
35+ - d/munin-node.upstart,munin.upstart: Add upstart configurations.
36+
37+ -- Logan Rosen <logatronico@gmail.com> Sun, 22 Jul 2012 14:19:53 -0400
38+
39+munin (2.0.2-1) unstable; urgency=low
40+
41+ [ Holger Levsen ]
42+ * New upstream version, reintroducing munin-graph (Closes: #681674) and
43+ some bugfixes. The new munin book is added to the sources, but not yet
44+ build.
45+ * Add proper LSB headers to all init scripts. (Closes: #680223)
46+
47+ [ Stig Sandbeck Mathisen ]
48+ * debian/control: Rename "munin-async-*" to munin-async and munin-asyncd.
49+
50+ -- Holger Levsen <holger@debian.org> Sat, 21 Jul 2012 12:43:33 -0600
51+
52 munin (2.0.1-1ubuntu1) quantal; urgency=low
53
54 * Merge from Debian unstable. Remaining changes:
55
56=== modified file 'debian/control'
57--- debian/control 2012-07-02 14:15:42 +0000
58+++ debian/control 2012-07-23 03:02:19 +0000
59@@ -143,7 +143,7 @@
60 virtually everything imaginable throughout your network, while still
61 maintaining a rattling ease of installation and configuration.
62 .
63- This package contains munin-async-master and munin-async-client which can
64+ This package contains munin-async and munin-asyncd which can
65 be used for (optional) asynchronous operation of munin-update.
66 .
67 Munin is written in Perl, and relies heavily on Tobi Oetiker's excellent
68
69=== modified file 'debian/munin-async.init'
70--- debian/munin-async.init 2012-03-19 15:17:42 +0000
71+++ debian/munin-async.init 2012-07-23 03:02:19 +0000
72@@ -1,8 +1,8 @@
73 #! /bin/sh
74 ### BEGIN INIT INFO
75 # Provides: munin-async
76-# Required-Start: $remote_fs
77-# Required-Stop: $remote_fs
78+# Required-Start: $network $named $local_fs $remote_fs
79+# Required-Stop: $network $named $local_fs $remote_fs
80 # Default-Start: 2 3 4 5
81 # Default-Stop: 0 1 6
82 # Short-Description: Munin asynchronous server
83@@ -16,7 +16,7 @@
84 # PATH should only include /usr/* if it runs after the mountnfs.sh script
85 PATH=/sbin:/usr/sbin:/bin:/usr/bin
86 DESC="Munin asynchronous server"
87-NAME=munin-async-server
88+NAME=munin-asyncd
89 DAEMON=/usr/share/munin/$NAME
90 DAEMON_ARGS=""
91 PIDFILE=/var/run/munin/$NAME.pid
92
93=== modified file 'debian/munin-node.init'
94--- debian/munin-node.init 2012-05-31 22:21:59 +0000
95+++ debian/munin-node.init 2012-07-23 03:02:19 +0000
96@@ -2,10 +2,8 @@
97
98 ### BEGIN INIT INFO
99 # Provides: munin-node
100-# Required-Start: $local_fs $remote_fs
101-# Required-Stop: $local_fs $remote_fs
102-# Should-Start: $all
103-# Should-Stop: $all
104+# Required-Start: $network $named $local_fs $remote_fs
105+# Required-Stop: $network $named $local_fs $remote_fs
106 # Default-Start: 2 3 4 5
107 # Default-Stop: 0 1 6
108 # Short-Description: Start/stop Munin-Node
109
110=== modified file 'debian/munin.init'
111--- debian/munin.init 2012-03-19 15:17:42 +0000
112+++ debian/munin.init 2012-07-23 03:02:19 +0000
113@@ -2,10 +2,8 @@
114
115 ### BEGIN INIT INFO
116 # Provides: munin
117-# Required-Start: $local_fs $remote_fs
118-# Required-Stop: $local_fs $remote_fs
119-# Should-Start: $all
120-# Should-Stop: $all
121+# Required-Start: $network $named $local_fs $remote_fs
122+# Required-Stop: $network $named $local_fs $remote_fs
123 # Default-Start: 2 3 4 5
124 # Default-Stop: 0 1 6
125 # Short-Description: Create /var/run/munin on boot
126
127=== added directory 'doc'
128=== added file 'doc/.gitignore'
129--- doc/.gitignore 1970-01-01 00:00:00 +0000
130+++ doc/.gitignore 2012-07-23 03:02:19 +0000
131@@ -0,0 +1,2 @@
132+_build/
133+*~
134
135=== added file 'doc/Makefile'
136--- doc/Makefile 1970-01-01 00:00:00 +0000
137+++ doc/Makefile 2012-07-23 03:02:19 +0000
138@@ -0,0 +1,153 @@
139+# Makefile for Sphinx documentation
140+#
141+
142+# You can set these variables from the command line.
143+SPHINXOPTS =
144+SPHINXBUILD = sphinx-build
145+PAPER =
146+BUILDDIR = _build
147+
148+# Internal variables.
149+PAPEROPT_a4 = -D latex_paper_size=a4
150+PAPEROPT_letter = -D latex_paper_size=letter
151+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
152+# the i18n builder cannot share the environment and doctrees with the others
153+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
154+
155+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
156+
157+help:
158+ @echo "Please use \`make <target>' where <target> is one of"
159+ @echo " html to make standalone HTML files"
160+ @echo " dirhtml to make HTML files named index.html in directories"
161+ @echo " singlehtml to make a single large HTML file"
162+ @echo " pickle to make pickle files"
163+ @echo " json to make JSON files"
164+ @echo " htmlhelp to make HTML files and a HTML help project"
165+ @echo " qthelp to make HTML files and a qthelp project"
166+ @echo " devhelp to make HTML files and a Devhelp project"
167+ @echo " epub to make an epub"
168+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
169+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
170+ @echo " text to make text files"
171+ @echo " man to make manual pages"
172+ @echo " texinfo to make Texinfo files"
173+ @echo " info to make Texinfo files and run them through makeinfo"
174+ @echo " gettext to make PO message catalogs"
175+ @echo " changes to make an overview of all changed/added/deprecated items"
176+ @echo " linkcheck to check all external links for integrity"
177+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
178+
179+clean:
180+ -rm -rf $(BUILDDIR)/
181+
182+html:
183+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
184+ @echo
185+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
186+
187+dirhtml:
188+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
189+ @echo
190+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
191+
192+singlehtml:
193+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
194+ @echo
195+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
196+
197+pickle:
198+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
199+ @echo
200+ @echo "Build finished; now you can process the pickle files."
201+
202+json:
203+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
204+ @echo
205+ @echo "Build finished; now you can process the JSON files."
206+
207+htmlhelp:
208+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
209+ @echo
210+ @echo "Build finished; now you can run HTML Help Workshop with the" \
211+ ".hhp project file in $(BUILDDIR)/htmlhelp."
212+
213+qthelp:
214+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
215+ @echo
216+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
217+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
218+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Munin.qhcp"
219+ @echo "To view the help file:"
220+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Munin.qhc"
221+
222+devhelp:
223+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
224+ @echo
225+ @echo "Build finished."
226+ @echo "To view the help file:"
227+ @echo "# mkdir -p $$HOME/.local/share/devhelp/Munin"
228+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Munin"
229+ @echo "# devhelp"
230+
231+epub:
232+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
233+ @echo
234+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
235+
236+latex:
237+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
238+ @echo
239+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
240+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
241+ "(use \`make latexpdf' here to do that automatically)."
242+
243+latexpdf:
244+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
245+ @echo "Running LaTeX files through pdflatex..."
246+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
247+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
248+
249+text:
250+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
251+ @echo
252+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
253+
254+man:
255+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
256+ @echo
257+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
258+
259+texinfo:
260+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
261+ @echo
262+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
263+ @echo "Run \`make' in that directory to run these through makeinfo" \
264+ "(use \`make info' here to do that automatically)."
265+
266+info:
267+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
268+ @echo "Running Texinfo files through makeinfo..."
269+ make -C $(BUILDDIR)/texinfo info
270+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
271+
272+gettext:
273+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
274+ @echo
275+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
276+
277+changes:
278+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
279+ @echo
280+ @echo "The overview file is in $(BUILDDIR)/changes."
281+
282+linkcheck:
283+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
284+ @echo
285+ @echo "Link check complete; look for any errors in the above output " \
286+ "or in $(BUILDDIR)/linkcheck/output.txt."
287+
288+doctest:
289+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
290+ @echo "Testing of doctests in the sources finished, look at the " \
291+ "results in $(BUILDDIR)/doctest/output.txt."
292
293=== added directory 'doc/_static'
294=== added file 'doc/_static/.gitignore'
295=== added directory 'doc/_templates'
296=== added file 'doc/_templates/.gitignore'
297=== added file 'doc/conf.py'
298--- doc/conf.py 1970-01-01 00:00:00 +0000
299+++ doc/conf.py 2012-07-23 03:02:19 +0000
300@@ -0,0 +1,286 @@
301+#!/usr/bin/env python3
302+# -*- coding: utf-8 -*-
303+#
304+# Munin documentation build configuration file, created by
305+# sphinx-quickstart on Sat Jun 9 11:12:29 2012.
306+#
307+# This file is execfile()d with the current directory set to its containing dir.
308+#
309+# Note that not all possible configuration values are present in this
310+# autogenerated file.
311+#
312+# All configuration values have a default; values that are commented out
313+# serve to show the default.
314+
315+import sys, os
316+
317+# If extensions (or modules to document with autodoc) are in another directory,
318+# add these directories to sys.path here. If the directory is relative to the
319+# documentation root, use os.path.abspath to make it absolute, like shown here.
320+#sys.path.insert(0, os.path.abspath('.'))
321+
322+# -- General configuration -----------------------------------------------------
323+
324+# If your documentation needs a minimal Sphinx version, state it here.
325+#needs_sphinx = '1.0'
326+
327+# Add any Sphinx extension module names here, as strings. They can be extensions
328+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
329+extensions = ['sphinx.ext.doctest']
330+
331+# Add any paths that contain templates here, relative to this directory.
332+templates_path = ['_templates']
333+
334+# The suffix of source filenames.
335+source_suffix = '.rst'
336+
337+# The encoding of source files.
338+#source_encoding = 'utf-8-sig'
339+
340+# The master toctree document.
341+master_doc = 'index'
342+
343+# General information about the project.
344+project = 'Munin'
345+copyright = '2012, Stig Sandbeck Mathisen <ssm@fnord.no>'
346+
347+# The version info for the project you're documenting, acts as replacement for
348+# |version| and |release|, also used in various other places throughout the
349+# built documents.
350+#
351+# The short X.Y version.
352+version = '2.0'
353+# The full version, including alpha/beta/rc tags.
354+release = os.popen('../getversion').read()
355+
356+# The language for content autogenerated by Sphinx. Refer to documentation
357+# for a list of supported languages.
358+#language = None
359+
360+# There are two options for replacing |today|: either, you set today to some
361+# non-false value, then it is used:
362+#today = ''
363+# Else, today_fmt is used as the format for a strftime call.
364+#today_fmt = '%B %d, %Y'
365+
366+# List of patterns, relative to source directory, that match files and
367+# directories to ignore when looking for source files.
368+exclude_patterns = ['_build']
369+
370+# The reST default role (used for this markup: `text`) to use for all documents.
371+#default_role = None
372+
373+# If true, '()' will be appended to :func: etc. cross-reference text.
374+#add_function_parentheses = True
375+
376+# If true, the current module name will be prepended to all description
377+# unit titles (such as .. function::).
378+#add_module_names = True
379+
380+# If true, sectionauthor and moduleauthor directives will be shown in the
381+# output. They are ignored by default.
382+#show_authors = False
383+
384+# The name of the Pygments (syntax highlighting) style to use.
385+pygments_style = 'sphinx'
386+
387+# A list of ignored prefixes for module index sorting.
388+#modindex_common_prefix = []
389+
390+
391+# -- Options for HTML output ---------------------------------------------------
392+
393+# The theme to use for HTML and HTML Help pages. See the documentation for
394+# a list of builtin themes.
395+html_theme = 'default'
396+
397+# Theme options are theme-specific and customize the look and feel of a theme
398+# further. For a list of options available for each theme, see the
399+# documentation.
400+#html_theme_options = {}
401+
402+# Add any paths that contain custom themes here, relative to this directory.
403+#html_theme_path = []
404+
405+# The name for this set of Sphinx documents. If None, it defaults to
406+# "<project> v<release> documentation".
407+#html_title = None
408+
409+# A shorter title for the navigation bar. Default is the same as html_title.
410+html_short_title = "Munin"
411+
412+# The name of an image file (relative to this directory) to place at the top
413+# of the sidebar.
414+html_logo = '../master/static/logo-h.png'
415+
416+# The name of an image file (within the static path) to use as favicon of the
417+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
418+# pixels large.
419+#html_favicon = None
420+
421+# Add any paths that contain custom static files (such as style sheets) here,
422+# relative to this directory. They are copied after the builtin static files,
423+# so a file named "default.css" will overwrite the builtin "default.css".
424+html_static_path = ['_static']
425+
426+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
427+# using the given strftime format.
428+#html_last_updated_fmt = '%b %d, %Y'
429+
430+# If true, SmartyPants will be used to convert quotes and dashes to
431+# typographically correct entities.
432+#html_use_smartypants = True
433+
434+# Custom sidebar templates, maps document names to template names.
435+#html_sidebars = {}
436+
437+# Additional templates that should be rendered to pages, maps page names to
438+# template names.
439+#html_additional_pages = {}
440+
441+# If false, no module index is generated.
442+#html_domain_indices = True
443+
444+# If false, no index is generated.
445+#html_use_index = True
446+
447+# If true, the index is split into individual pages for each letter.
448+#html_split_index = False
449+
450+# If true, links to the reST sources are added to the pages.
451+#html_show_sourcelink = True
452+
453+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
454+#html_show_sphinx = True
455+
456+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
457+#html_show_copyright = True
458+
459+# If true, an OpenSearch description file will be output, and all pages will
460+# contain a <link> tag referring to it. The value of this option must be the
461+# base URL from which the finished HTML is served.
462+#html_use_opensearch = ''
463+
464+# This is the file name suffix for HTML files (e.g. ".xhtml").
465+#html_file_suffix = None
466+
467+# Output file base name for HTML help builder.
468+htmlhelp_basename = 'Munindoc'
469+
470+
471+# -- Options for LaTeX output --------------------------------------------------
472+
473+latex_elements = {
474+# The paper size ('letterpaper' or 'a4paper').
475+'papersize': 'a4paper',
476+
477+# The font size ('10pt', '11pt' or '12pt').
478+'pointsize': '10pt',
479+
480+# Additional stuff for the LaTeX preamble.
481+#'preamble': '',
482+}
483+
484+# Grouping the document tree into LaTeX files. List of tuples
485+# (source start file, target name, title, author, documentclass [howto/manual]).
486+latex_documents = [
487+ ('index', 'Munin.tex', 'Munin Documentation',
488+ 'Stig Sandbeck Mathisen \\textless{}ssm@fnord.no\\textgreater{}', 'manual'),
489+]
490+
491+# The name of an image file (relative to this directory) to place at the top of
492+# the title page.
493+latex_logo = '../master/static/logo-h.png'
494+
495+# For "manual" documents, if this is true, then toplevel headings are parts,
496+# not chapters.
497+#latex_use_parts = False
498+
499+# If true, show page references after internal links.
500+latex_show_pagerefs = False
501+
502+# If true, show URL addresses after external links.
503+latex_show_urls = False
504+
505+# Documents to append as an appendix to all manuals.
506+#latex_appendices = []
507+
508+# If false, no module index is generated.
509+#latex_domain_indices = True
510+
511+
512+# -- Options for manual page output --------------------------------------------
513+
514+# One entry per manual page. List of tuples
515+# (source start file, name, description, authors, manual section).
516+man_pages = [
517+ ('index', 'munin', 'Munin Documentation',
518+ ['Stig Sandbeck Mathisen <ssm@fnord.no>'], 1)
519+]
520+
521+# If true, show URL addresses after external links.
522+#man_show_urls = False
523+
524+
525+# -- Options for Texinfo output ------------------------------------------------
526+
527+# Grouping the document tree into Texinfo files. List of tuples
528+# (source start file, target name, title, author,
529+# dir menu entry, description, category)
530+texinfo_documents = [
531+ ('index', 'Munin', 'Munin Documentation',
532+ 'Stig Sandbeck Mathisen <ssm@fnord.no>', 'Munin', 'One line description of project.',
533+ 'Miscellaneous'),
534+]
535+
536+# Documents to append as an appendix to all manuals.
537+#texinfo_appendices = []
538+
539+# If false, no module index is generated.
540+#texinfo_domain_indices = True
541+
542+# How to display URL addresses: 'footnote', 'no', or 'inline'.
543+#texinfo_show_urls = 'footnote'
544+
545+
546+# -- Options for Epub output ---------------------------------------------------
547+
548+# Bibliographic Dublin Core info.
549+epub_title = 'Munin'
550+epub_author = 'Stig Sandbeck Mathisen <ssm@fnord.no>'
551+epub_publisher = 'Stig Sandbeck Mathisen <ssm@fnord.no>'
552+epub_copyright = '2012, Stig Sandbeck Mathisen <ssm@fnord.no>'
553+
554+# The language of the text. It defaults to the language option
555+# or en if the language is not set.
556+#epub_language = ''
557+
558+# The scheme of the identifier. Typical schemes are ISBN or URL.
559+#epub_scheme = ''
560+
561+# The unique identifier of the text. This can be a ISBN number
562+# or the project homepage.
563+#epub_identifier = ''
564+
565+# A unique identification for the text.
566+#epub_uid = ''
567+
568+# A tuple containing the cover image and cover page html template filenames.
569+#epub_cover = ()
570+
571+# HTML files that should be inserted before the pages created by sphinx.
572+# The format is a list of tuples containing the path and title.
573+#epub_pre_files = []
574+
575+# HTML files shat should be inserted after the pages created by sphinx.
576+# The format is a list of tuples containing the path and title.
577+#epub_post_files = []
578+
579+# A list of files that should not be packed into the epub file.
580+#epub_exclude_files = []
581+
582+# The depth of the table of contents in toc.ncx.
583+#epub_tocdepth = 3
584+
585+# Allow duplicate toc entries.
586+#epub_tocdup = True
587
588=== added directory 'doc/documentation'
589=== added file 'doc/documentation/index.rst'
590--- doc/documentation/index.rst 1970-01-01 00:00:00 +0000
591+++ doc/documentation/index.rst 2012-07-23 03:02:19 +0000
592@@ -0,0 +1,11 @@
593+.. _documentation-index:
594+
595+===================
596+ Documenting Munin
597+===================
598+
599+This document is rather meta, it explains how to document Munin.
600+
601+.. toctree::
602+
603+ nomenclature.rst
604
605=== added file 'doc/documentation/nomenclature.rst'
606--- doc/documentation/nomenclature.rst 1970-01-01 00:00:00 +0000
607+++ doc/documentation/nomenclature.rst 2012-07-23 03:02:19 +0000
608@@ -0,0 +1,134 @@
609+==============
610+ Nomenclature
611+==============
612+
613+To be able to use Munin, to understand the documentation, and - not to
614+be neglected - to be able to write documentation that is consistent
615+with Munin behaviour, we need a common nomenclature.
616+
617+Common terms
618+============
619+
620++--------------+--------------------------------------------+------------------------------+
621+| Term | Explanation | Also referred to as as |
622++==============+============================================+==============================+
623+| Munin Master | The central host / server where Munin | master, server, munin server |
624+| | gathers all data. | |
625+| | The machine runs munin-cron | |
626++--------------+--------------------------------------------+------------------------------+
627+| Munin Node | The daemon / network service running | In SNMP terms |
628+| | on each host to be contacted by the | it may be called an |
629+| | | agent. |
630++--------------+--------------------------------------------+------------------------------+
631+| Plugin | Each munin node handles one or more | service |
632+| | plugins to monitor stuff on hosts | |
633++--------------+--------------------------------------------+------------------------------+
634+| Host | A machine monitored by Munin, | |
635+| | maybe by proxy on a munin node, | |
636+| | or via a SNMP plugin | |
637++--------------+--------------------------------------------+------------------------------+
638+| Field | Each plugin presents data from one | Data source |
639+| | or more data sources. Each found, | |
640+| | read or calculated value corresponds | |
641+| | to a field.attribute tuple. | |
642++--------------+--------------------------------------------+------------------------------+
643+| Attribute | Description found in output from plugins, | |
644+| | both general (global) to the plugin, and | |
645+| | also specific ot each Field. | |
646++--------------+--------------------------------------------+------------------------------+
647+| Environment | Set up by munin node, used to control | |
648+| variable | plugin behaviour. Found in the plugin | |
649+| | configuration directory. | |
650+| | (/etc/munin/plugin-conf.d/) | |
651++--------------+--------------------------------------------+------------------------------+
652+| Global | Used in the global context in the | |
653+| (plugin) | configuration output from a plugin. | |
654+| attribute | (Note: The attribute is considered | |
655+| | "global" only to the plugin (and the | |
656+| | node), and only when executed. | |
657++--------------+--------------------------------------------+------------------------------+
658+| Datasource | Used in the datasource-specific context in | |
659+| specific | the output of a plugin | |
660+| plugin | | |
661+| attribute | | |
662++--------------+--------------------------------------------+------------------------------+
663+| Global | Used in munin.conf | |
664+| directive | | |
665++--------------+--------------------------------------------+------------------------------+
666+| Node level | Used in munin.conf | |
667+| directive | | |
668++--------------+--------------------------------------------+------------------------------+
669+| Group level | Used in munin.conf | |
670+| directive | | |
671++--------------+--------------------------------------------+------------------------------+
672+| Field level | Used in munin.conf | |
673+| directive | | |
674++--------------+--------------------------------------------+------------------------------+
675+
676+
677+Examples
678+========
679+
680+To shed some light on the nomenclature, consider the examples below:
681+
682+Global plugin attribute
683+-----------------------
684+
685+Global plugin attributes are in the plugins output when run with the
686+config argument. The full list of these attributes is found on the
687+protocol config page. This output does not configure the plugin, it
688+configures the plugins graph.
689+
690+::
691+
692+ graph_title Load average
693+ ----------- ------------
694+ | `------ value
695+ `------------------ attribute
696+
697+
698+Datasource specific plugin attribute
699+------------------------------------
700+
701+These are found both in the config outout of a plugin and in the
702+normal readings of a plugin. A plugin may provide data from one or
703+more data sources. Each data source needs its own set of
704+field.attribute tuples to define how the data source should be
705+presented.
706+
707+::
708+
709+ load.warning 100
710+ ---- ------- ---
711+ | | `- value
712+ | `------- one of several attributes used in config output
713+ `------------- field
714+
715+ load.value 54
716+ ---- ----- --
717+ | | `- value
718+ | `------ only attribute when getting values from a plugin
719+ `----------- field
720+
721+Configuration files
722+-------------------
723+
724+This one is from the global section of munin.conf:
725+
726+::
727+
728+ dbdir /var/lib/munin/
729+ ----- ---------------
730+ | `--------- value
731+ `-------------------------- global directive
732+
733+
734+And then one from the node level section:
735+
736+::
737+
738+ [foo.example.org]
739+ address localhost
740+ ------- ---------
741+ | `----- value
742+ `-------------- node level directive
743
744=== added directory 'doc/example'
745=== added file 'doc/example/index.rst'
746--- doc/example/index.rst 1970-01-01 00:00:00 +0000
747+++ doc/example/index.rst 2012-07-23 03:02:19 +0000
748@@ -0,0 +1,14 @@
749+.. _example-index:
750+
751+========
752+Examples
753+========
754+
755+Examples of munin and related configuration are gathered here.
756+
757+.. toctree::
758+
759+ webserver/apache-virtualhost.rst
760+ webserver/lighttpd.rst
761+ webserver/nginx.rst
762+ plugin/aggregate.rst
763
764=== added directory 'doc/example/plugin'
765=== added directory 'doc/example/plugin/aggregate'
766=== added file 'doc/example/plugin/aggregate.rst'
767--- doc/example/plugin/aggregate.rst 1970-01-01 00:00:00 +0000
768+++ doc/example/plugin/aggregate.rst 2012-07-23 03:02:19 +0000
769@@ -0,0 +1,188 @@
770+.. _example-plugin-aggregate:
771+
772+==============================
773+ Graph aggregation by example
774+==============================
775+
776+This example covers creating aggregate graphs. The configuration reads
777+the current and power from two UPSes (i.e. two hosts with two plugins
778+each) and then creates one virtual host with two virtual plugins; one
779+for current and one for power.
780+
781+Plugins involved
782+================
783+
784+The example uses a plugin for monitoring UPSes through SNMP, where the
785+UPS address and the different aspects are defined through symlinks.
786+The two UPSes, called "ups-5a" and "ups-5b", are monitored with
787+respect to "current" and "power". Thus, the affected plugins are
788+called as:
789+
790+::
791+
792+ snmp_ups_ups-5a_current
793+ snmp_ups_ups-5b_current
794+ snmp_ups_ups-5a_power
795+ snmp_ups_ups-5b_power
796+
797+The original plugin name is actually "snmp_ups\_\_" - note the "two"
798+underscores at the end. The plugin is then symlinked to the given host
799+name(s) (e.g. ups-5a) and what we want to monitor (e.g. power). Let's
800+just take one closer look at one of them:
801+
802+::
803+
804+ snmp_ups_ups-5a_power
805+ -------- ------ -----
806+ | | |
807+ | | `--- The function we want to monitor
808+ | `--------- The node name of the UPS
809+ `----------------- The plugin
810+
811+Extract from munin.conf
812+=======================
813+
814+
815+The following extract from /etc/munin/munin.conf is explained in
816+detail, step by step, below the configuration.
817+
818+::
819+
820+ 1 [UPS;ups-5a]
821+ 2 address 127.0.0.1 # localhost fetches data
822+ 3
823+ 4 [UPS;ups-5b]
824+ 5 address 127.0.0.1 # localhost fetches data
825+ 6
826+ 7 [UPS;Aggregated]
827+ 8 update no
828+ 9 contacts no
829+ 10
830+ 11 snmp_ups_current.update no
831+ 12 snmp_ups_current.graph_args --base 1000 -l 0
832+ 13 snmp_ups_current.graph_category UPS
833+ 14 snmp_ups_current.graph_title Aggregated input/output current
834+ 15 snmp_ups_current.graph_vlabel Ampere
835+ 16 snmp_ups_current.inputtotal.label Input current
836+ 17 snmp_ups_current.outputtotal.label Output current
837+ 18 snmp_ups_current.graph_order inputtotal outputtotal
838+ 19 snmp_ups_current.inputtotal.sum \
839+ 20 ups-5a:snmp_ups_ups-5a_current.inputcurrent \
840+ 21 ups-5b:snmp_ups_ups-5b_current.inputcurrent
841+ 22 snmp_ups_current.outputtotal.sum \
842+ 23 ups-5a:snmp_ups_ups-5a_current.outputcurrent \
843+ 24 ups-5b:snmp_ups_ups-5b_current.outputcurrent
844+ 25
845+ 26 snmp_ups_power.update no
846+ 27 snmp_ups_power.graph_args --base 1000 -l 0
847+ 28 snmp_ups_power.graph_category UPS
848+ 29 snmp_ups_power.graph_title Aggregated output power
849+ 30 snmp_ups_power.graph_vlabel Watts
850+ 31 snmp_ups_power.output.label Output power
851+ 32 snmp_ups_power.graph_order output
852+ 33 snmp_ups_power.output.sum \
853+ 34 ups-5a:snmp_ups_ups-5a_power.outputpower \
854+ 35 ups-5b:snmp_ups_ups-5b_power.outputpower
855+
856+
857+Explanations, per line
858+======================
859+
860+* 1 - 2: The SNMP-based plugin for the UPS known as "ups-5a" is
861+ defined. The group name is "UPS" and the node name is "ups-5a". The
862+ plugin is run from localhost.
863+
864+* 4 - 5: The SNMP-based plugin for the UPS known as "ups-5b" is
865+ defined. The group name is "UPS" and the node name is "ups-5b". The
866+ plugin is run from localhost.
867+
868+* 7: The group and "virtual node name" for the aggregated graphs are
869+ defined. The group name is "UPS" and the virtual node name is
870+ "Aggregated".
871+
872+* 8: Make sure that Munin (specifically, "munin-update") does not try
873+ to actively gather information for this node.
874+
875+* 9: Tell "munin-limits" not to send alerts if any limit is breached.
876+
877+The above lines (1 - 9) have now established the fundament for three
878+different graph pages; one for each of the two UPSes and one for the
879+aggregate graphs.
880+
881+* 11 - 15: Define the basic information for the virtual plugin for
882+ aggregated current. Note that "snmp_ups_current" is the virtual
883+ plugin's name.
884+
885+* 16 - 17: Simultaneously define and label "two" values to be graphed
886+ in the virtual plugin: "inputtotal" and "outputtotal".
887+
888+* 18: Order the values.
889+
890+* 19 - 21: Calculate the value for "inputtotal" by reading the
891+ "inputcurrent" values from each of the two UPSes.
892+
893+Let's take a closer look at the components
894+
895+::
896+
897+ snmp_ups_current.inputtotal.sum \
898+ ---------------- ---------- ---
899+ | | |
900+ | | `-- The sum mechanism
901+ | `--------- One of this virtual plugin's values
902+ `----------------------- The name of the virtual plugin
903+
904+::
905+
906+ ups-5a:snmp_ups_ups-5a_current.inputcurrent \
907+ ups-5b:snmp_ups_ups-5b_current.inputcurrent
908+ ------ ----------------------- ------------
909+ | | |
910+ | | `------ The "inputcurrent" value from the real plugin
911+ | `------------------------ The real plugin's name (symlink)
912+ `---------------------------------------- The host name from which to seek information
913+
914+
915+* 22 - 24: Similarly for "outputtotal".
916+
917+* 26 - 35: Like the above, but for power instead. Note that this
918+ virtual plugin graphs only "one" value, and as such, only "one"
919+ "sum" mechanism is used.
920+
921+Result graphs
922+=============
923+
924+The graphs below show one of the UPSes, and the aggregated values. The
925+graphs used are by week, because they had a nice dip in the beginning
926+of the graphing period :-)
927+
928+Source graphs for one of the UPSes:
929+
930+.. image:: aggregate/ups-5a_current.png
931+
932+.. image:: aggregate/ups-5a_power.png
933+
934+Aggregate graphs:
935+
936+.. image:: aggregate/aggregate_current.png
937+
938+.. image:: aggregate/aggregate_power.png
939+
940+Summary
941+=======
942+
943+We have now, in addition to the two real UPS nodes "ups-5a" and
944+"ups-5b" (lines 1 - 5), created one virtual host named "Aggregated"
945+(line 7) with two virtual plugins: "snmp_ups_current" (lines 11 - 24)
946+and "snmp_ups_power" (lines 26 - 35).
947+
948+The "snmp_ups_current" virtual plugin outputs two field names:
949+"inputtotal" (lines 16 and 19 - 21) and "outputtotal" (lines 17 and
950+22 - 24), while the "snmp_ups_power" virtual plugin outputs only one
951+field name, namely "output" (lines 31 - 35).
952+
953+Further reading
954+===============
955+
956+ * [wiki:Using_SNMP_plugins Using SNMP plugins]
957+ * [wiki:munin.conf munin.conf] directives explained
958
959=== added file 'doc/example/plugin/aggregate/aggregate_current.png'
960Binary files doc/example/plugin/aggregate/aggregate_current.png 1970-01-01 00:00:00 +0000 and doc/example/plugin/aggregate/aggregate_current.png 2012-07-23 03:02:19 +0000 differ
961=== added file 'doc/example/plugin/aggregate/aggregate_power.png'
962Binary files doc/example/plugin/aggregate/aggregate_power.png 1970-01-01 00:00:00 +0000 and doc/example/plugin/aggregate/aggregate_power.png 2012-07-23 03:02:19 +0000 differ
963=== added file 'doc/example/plugin/aggregate/ups-5a_current.png'
964Binary files doc/example/plugin/aggregate/ups-5a_current.png 1970-01-01 00:00:00 +0000 and doc/example/plugin/aggregate/ups-5a_current.png 2012-07-23 03:02:19 +0000 differ
965=== added file 'doc/example/plugin/aggregate/ups-5a_power.png'
966Binary files doc/example/plugin/aggregate/ups-5a_power.png 1970-01-01 00:00:00 +0000 and doc/example/plugin/aggregate/ups-5a_power.png 2012-07-23 03:02:19 +0000 differ
967=== added directory 'doc/example/webserver'
968=== added file 'doc/example/webserver/apache-virtualhost.rst'
969--- doc/example/webserver/apache-virtualhost.rst 1970-01-01 00:00:00 +0000
970+++ doc/example/webserver/apache-virtualhost.rst 2012-07-23 03:02:19 +0000
971@@ -0,0 +1,65 @@
972+.. _example-webserver-apache:
973+
974+==================================
975+ Apache virtualhost configuration
976+==================================
977+
978+This example describes how to set up munin on a separate apache httpd
979+virtual host. It uses FastCGI if this is available, and falls back to
980+CGI if it is not.
981+
982+Munin configuration
983+===================
984+
985+This example assumes the following configuration in
986+/etc/munin/munin.conf
987+
988+::
989+
990+ # graph_strategy should be commented out, if present
991+ html_strategy cgi
992+
993+Virtualhost configuration
994+=========================
995+
996+Add a new virtualhost, using the following example:
997+
998+::
999+
1000+ <VirtualHost *:80>
1001+ ServerName munin.example.org
1002+ ServerAlias munin
1003+
1004+ ServerAdmin info@example.org
1005+
1006+ DocumentRoot /srv/www/munin.example.org
1007+
1008+ ErrorLog /var/log/apache2/munin.example.org-error.log
1009+ CustomLog /var/log/apache2/munin.example.org-access.log combined
1010+
1011+ # Rewrites
1012+ RewriteEngine On
1013+
1014+ # Static content in /static
1015+ RewriteRule ^/favicon.ico /etc/munin/static/favicon.ico [L]
1016+ RewriteRule ^/static/(.*) /etc/munin/static/$1 [L]
1017+
1018+ # HTML
1019+ RewriteCond %{REQUEST_URI} .html$ [or]
1020+ RewriteCond %{REQUEST_URI} =/
1021+ RewriteRule ^/(.*) /usr/lib/cgi-bin/munin-cgi-html/$1 [L]
1022+
1023+ # Images
1024+ RewriteRule ^/cgi-bin/munin-cgi-graph/(.*) /usr/lib/cgi-bin/munin-cgi-graph/$1 [L]
1025+
1026+ # Ensure we can run (fast)cgi scripts
1027+ <Directory "/usr/lib/cgi-bin">
1028+ Options +ExecCGI
1029+ <IfModule mod_fcgid.c>
1030+ SetHandler fcgid-script
1031+ </IfModule>
1032+ <IfModule !mod_fcgid.c>
1033+ SetHandler cgi-script
1034+ </IfModule>
1035+ </Directory>
1036+ </VirtualHost>
1037
1038=== added file 'doc/example/webserver/lighttpd.rst'
1039--- doc/example/webserver/lighttpd.rst 1970-01-01 00:00:00 +0000
1040+++ doc/example/webserver/lighttpd.rst 2012-07-23 03:02:19 +0000
1041@@ -0,0 +1,49 @@
1042+.. _example-webserver-lighttpd:
1043+
1044+========================
1045+ lighttpd configuration
1046+========================
1047+
1048+This example describes how to set up munin on lighttpd. It spawns two
1049+lighttpd processes, one for the graph rendering, and one for the html
1050+generation.
1051+
1052+You need to enable the "mod_rewrite" module in the main lighttpd
1053+configuration.
1054+
1055+Munin configuration
1056+===================
1057+
1058+This example assumes the following configuration in
1059+/etc/munin/munin.conf
1060+
1061+::
1062+
1063+ # graph_strategy should be commented out, if present
1064+ html_strategy cgi
1065+
1066+Webserver configuration
1067+=======================
1068+
1069+::
1070+
1071+ alias.url += ( "/munin-static" => "/etc/munin/static" )
1072+ alias.url += ( "/munin" => "/var/cache/munin/www/" )
1073+
1074+ fastcgi.server += ("/cgi-bin/munin-cgi-graph" =>
1075+ (( "socket" => "/var/run/lighttpd/munin-cgi-graph.sock",
1076+ "bin-path" => "/usr/lib/cgi-bin/munin-cgi-graph",
1077+ "check-local" => "disable",
1078+ )),
1079+ "/cgi-bin/munin-cgi-html" =>
1080+ (( "socket" => "/var/run/lighttpd/munin-cgi-html.sock",
1081+ "bin-path" => "/usr/lib/cgi-bin/munin-cgi-html",
1082+ "check-local" => "disable",
1083+ ))
1084+ )
1085+
1086+ url.rewrite-repeat += (
1087+ "/munin/(.*)" => "/cgi-bin/munin-cgi-html/$1",
1088+ "/cgi-bin/munin-cgi-html$" => "/cgi-bin/munin-cgi-html/",
1089+ "/cgi-bin/munin-cgi-html/static/(.*)" => "/munin-static/$1"
1090+ )
1091
1092=== added file 'doc/example/webserver/nginx.rst'
1093--- doc/example/webserver/nginx.rst 1970-01-01 00:00:00 +0000
1094+++ doc/example/webserver/nginx.rst 2012-07-23 03:02:19 +0000
1095@@ -0,0 +1,72 @@
1096+.. _example-webserver-nginx:
1097+
1098+=====================
1099+ nginx configuration
1100+=====================
1101+
1102+This example describes how to set up munin on nginx.
1103+
1104+nginx does not spawn FastCGI processes by itself, but comes with an
1105+external "spawn-fcgi" program.
1106+
1107+We need one process for the graph rendering, and one for the html
1108+generation.
1109+
1110+Munin configuration
1111+===================
1112+
1113+This example assumes the following configuration in
1114+/etc/munin/munin.conf
1115+
1116+::
1117+
1118+ # graph_strategy should be commented out, if present
1119+ html_strategy cgi
1120+
1121+FastCGI configuration
1122+=====================
1123+
1124+This will spawn two FastCGI processes trees. One for munin cgi
1125+graphing and one for HTML generation. It will create a socket owned by
1126+www-data, and run the processes as the "munin" user.
1127+
1128+.. code-block:: bash
1129+
1130+ spawn-fcgi -s /var/run/munin/fastcgi-graph.sock -U www-data \
1131+ -u munin -g munin /usr/lib/cgi-bin/munin-cgi-graph
1132+
1133+ spawn-fcgi -s /var/run/munin/fastcgi-html.sock -U www-data \
1134+ -u munin -g munin /usr/lib/cgi-bin/munin-html-graph
1135+
1136+Note: Depending on your installation method, the "munin-\*-graph"
1137+programs may be in another directory. Check Makefile.config if you
1138+installed from source, or your package manager if you used that to
1139+install.
1140+
1141+Note: If you installed using the package manager on Debian or Ubuntu,
1142+the /var/log/munin/munin-cgi-\*.log files may be owned by the
1143+"www-data" user. This example runs the processes as the "munin" user,
1144+so you need to chown the log files, and edit /etc/logrotate.d/munin.
1145+
1146+Webserver configuration
1147+=======================
1148+
1149+::
1150+
1151+ location ^~ /cgi-bin/munin-cgi-graph/ {
1152+ fastcgi_split_path_info ^(/cgi-bin/munin-cgi-graph)(.*);
1153+ fastcgi_param PATH_INFO $fastcgi_path_info;
1154+ fastcgi_pass unix:/var/run/munin/fastcgi-graph.sock;
1155+ include fastcgi_params;
1156+ }
1157+
1158+ location /munin/static/ {
1159+ alias /etc/munin/static/;
1160+ }
1161+
1162+ location /munin/ {
1163+ fastcgi_split_path_info ^(/munin)(.*);
1164+ fastcgi_param PATH_INFO $fastcgi_path_info;
1165+ fastcgi_pass unix:/var/run/munin/fastcgi-html.sock;
1166+ include fastcgi_params;
1167+ }
1168
1169=== added file 'doc/index.rst'
1170--- doc/index.rst 1970-01-01 00:00:00 +0000
1171+++ doc/index.rst 2012-07-23 03:02:19 +0000
1172@@ -0,0 +1,29 @@
1173+.. Munin documentation master file, created by
1174+ sphinx-quickstart on Sat Jun 9 11:12:29 2012.
1175+ You can adapt this file completely to your liking, but it should at least
1176+ contain the root `toctree` directive.
1177+
1178+Welcome to Munin's documentation!
1179+=================================
1180+
1181+Warning: This documentation is being developed. It is incomplete, and
1182+may even be plain wrong. Feedback is welcome.
1183+
1184+Contents:
1185+
1186+.. toctree::
1187+ :maxdepth: 2
1188+
1189+ installation/index.rst
1190+ master/index.rst
1191+ plugin/index.rst
1192+ documentation/index.rst
1193+ example/index.rst
1194+
1195+Indices and tables
1196+==================
1197+
1198+* :ref:`genindex`
1199+* :ref:`modindex`
1200+* :ref:`search`
1201+
1202
1203=== added directory 'doc/installation'
1204=== added file 'doc/installation/configuration.rst'
1205--- doc/installation/configuration.rst 1970-01-01 00:00:00 +0000
1206+++ doc/installation/configuration.rst 2012-07-23 03:02:19 +0000
1207@@ -0,0 +1,84 @@
1208+=======================
1209+ Initial configuration
1210+=======================
1211+
1212+Node
1213+====
1214+
1215+Plugins
1216+-------
1217+
1218+Decide which plugins to use. The munin node runs all plugins present
1219+in CONFDIR/plugins/
1220+
1221+The quick auto-plug-and-play solution:
1222+
1223+.. code-block:: bash
1224+
1225+ munin-node-configure --shell --families=contrib,auto | sh -x
1226+
1227+Access
1228+------
1229+
1230+The munin node listens on all interfaces by default, but has a
1231+restrictive access list. You need to add your master's IP address.
1232+
1233+The "cidr_allow", "cidr_deny", "allow" and "deny" statements are used.
1234+
1235+cidr_allow uses the following syntax (the /32 is not implicit, so for
1236+a single host, you need to add it):
1237+
1238+ | cidr_allow 127.0.0.0/8
1239+ | cidr_allow 192.0.2.1/32
1240+
1241+allow uses regular expression matching against the client IP address.
1242+
1243+ | allow '^127\.'
1244+ | allow '^192\.0\.2\.1$'
1245+
1246+For specific information about the syntax, see `Net::Server
1247+<http://search.cpan.org/dist/Net-Server/lib/Net/Server.pod>`_. Please
1248+keep in mind that cidr_allow is a recent addition, and may not be
1249+available on all systems.
1250+
1251+Startup
1252+-------
1253+
1254+Start the node agent (as root) SBINDIR/munin-node. Restart it it it
1255+was already started. The node only discovers new plugins when it is
1256+restarted.
1257+
1258+You probably want to use an init-script instead and you might find a
1259+good one under build/dists or in the build/resources directory (maybe
1260+you need to edit the init script, check the given paths in the script
1261+you might use).
1262+
1263+Master
1264+======
1265+
1266+Add some nodes
1267+--------------
1268+
1269+Add some nodes to CONFDIR/munin.conf
1270+
1271+[node.example.com]
1272+ address 192.0.2.4
1273+
1274+[node2.example.com]
1275+ address node2.example.com
1276+
1277+[node3.example.com]
1278+ address 2001:db8::de:caf:bad
1279+
1280+Configure web server
1281+====================
1282+
1283+On the master, you need to configure a web server.
1284+
1285+If you have installed "munin" through distribution
1286+packages, a webserver may have been configured for you already.
1287+
1288+If you installed from source, there is a minimal configuration example
1289+in the "resources" directory in the source tarball.
1290+
1291+For a more complex example, see :ref:`example-webserver-apache`
1292
1293=== added file 'doc/installation/help.rst'
1294--- doc/installation/help.rst 1970-01-01 00:00:00 +0000
1295+++ doc/installation/help.rst 2012-07-23 03:02:19 +0000
1296@@ -0,0 +1,27 @@
1297+==============
1298+ Getting help
1299+==============
1300+
1301+IRC Channel
1302+===========
1303+
1304+The most immediate way to get hold of us is to join our IRC channel:
1305+
1306+ ``#munin on server irc.oftc.net``
1307+
1308+The main timezone of the channel is Europe+America.
1309+
1310+If you can explain your problem in a few clear sentences, without too
1311+much copy&paste, IRC is a good way to try to get help. If you do need
1312+to paste log files, configuration snippets, scripts and so on, please
1313+use a pastebin_.
1314+
1315+If the channel is all quiet, try again some time later, we do have
1316+lives, families and jobs to deal with also.
1317+
1318+You are more than welcome to just hang out, and while we don't mind
1319+the occational intrusion of the real world into the flow, keep it
1320+mostly on topic, and dont paste random links unless they are *really*
1321+spectacular and intelligent.
1322+
1323+.. _pastebin: https://gist.github.com/
1324
1325=== added file 'doc/installation/index.rst'
1326--- doc/installation/index.rst 1970-01-01 00:00:00 +0000
1327+++ doc/installation/index.rst 2012-07-23 03:02:19 +0000
1328@@ -0,0 +1,16 @@
1329+.. _install-index:
1330+
1331+====================
1332+ Munin installation
1333+====================
1334+
1335+This document explains how to get Munin onto your system, where to get
1336+help, and how to report bugs.
1337+
1338+.. toctree::
1339+
1340+ prerequisites.rst
1341+ install.rst
1342+ configuration.rst
1343+ help.rst
1344+ upgrade.rst
1345
1346=== added file 'doc/installation/install.rst'
1347--- doc/installation/install.rst 1970-01-01 00:00:00 +0000
1348+++ doc/installation/install.rst 2012-07-23 03:02:19 +0000
1349@@ -0,0 +1,177 @@
1350+==================
1351+ Installing Munin
1352+==================
1353+
1354+With open source software, you can choose to install binary packages
1355+or install from source-code. To install a package or install from
1356+source is a matter of personal taste. If you don't know which method
1357+too choose read the whole document and choose the method you are most
1358+comfortable with.
1359+
1360+Master and node
1361+===============
1362+
1363+Munin is split into two distinct roles.
1364+
1365+Node
1366+----
1367+
1368+The "munin node" is a daemon which runs on all servers being
1369+monitored.
1370+
1371+
1372+Master
1373+------
1374+
1375+The "munin master" connects to all munin nodes, collects data, and
1376+stores it in `RRD <http://oss.oetiker.ch/rrdtool/>`_
1377+
1378+You will need to install "munin-master" on the server which will
1379+collect data from all nodes, and graph the results. When starting with
1380+munin, it should be enough to install the munin master on one server.
1381+
1382+On the munin master, you will need a web server capable of running CGI
1383+or FastCGI. Apache HTTD should be suitable. Also reported to be
1384+working is nginx and lighttpd.
1385+
1386+Source or packages?
1387+===================
1388+
1389+Installing Munin on most relevant operating systems can usually be
1390+done with with the systems package manager, typical examples being:
1391+
1392+FreeBSD
1393+-------
1394+
1395+From source:
1396+
1397+.. code-block:: bash
1398+
1399+ cd /usr/ports/sysutils/munin-master && make install clean
1400+ cd /usr/ports/sysutils/munin-node && make install clean
1401+
1402+Binary packages:
1403+
1404+.. code-block:: bash
1405+
1406+ pkg_add -r munin-master
1407+ pkg_add -r munin-node
1408+
1409+Debian/Ubuntu
1410+-------------
1411+
1412+Munin is distributed with both Debian and Ubuntu.
1413+
1414+In order to get Munin up and running type
1415+
1416+.. code-block:: bash
1417+
1418+ sudo apt-get install munin-node
1419+
1420+on all nodes, and
1421+
1422+.. code-block:: bash
1423+
1424+ sudo apt-get install munin
1425+
1426+on the master.
1427+
1428+Please note that this might not be the latest version of Munin. On
1429+Debian you have the option of enabling "backports", which may give
1430+access to later versions of Munin.
1431+
1432+RedHat / CentOS / Fedora
1433+------------------------
1434+
1435+At time of writing, only the 1.x version of munin is available in
1436+`EPEL
1437+<http://dl.fedoraproject.org/pub/epel/6/SRPMS/repoview/munin.html>`_.
1438+
1439+If you want 2.x, your best option is probably to install from source.
1440+
1441+Other systems
1442+-------------
1443+
1444+On other systems, you are probably best off compiling your own code.
1445+See `Installing Munin from source`_.
1446+
1447+Installing Munin from source
1448+============================
1449+
1450+If there are no binary packages available for your system, or if you
1451+want to install Munin from source for other reasons, follow these
1452+steps:
1453+
1454+We recommend downloading a release tarball, which you can find on
1455+`sourceforge.net <http://sourceforge.net/projects/munin/files/stable/>`_.
1456+
1457+Alternatively, if you want to hack on Munin, you should clone our git
1458+repository by doing.
1459+
1460+.. code-block:: bash
1461+
1462+ git clone git://github.com/munin-monitoring/munin
1463+
1464+Please note that a git checkout will need some more build-dependencies
1465+than listed below, in particular the Python Docutils and Sphinx.
1466+
1467+Build dependencies on Debian / Ubuntu
1468+-------------------------------------
1469+
1470+In order to build Munin from source you need a number of packages
1471+installed. On a Debian or Ubuntu system these are:
1472+
1473+* perl
1474+* htmldoc
1475+* html2text
1476+* default-jdk
1477+
1478+Configuring and installing
1479+--------------------------
1480+
1481+Warning for NFS users
1482+~~~~~~~~~~~~~~~~~~~~~
1483+
1484+If you're using NFS please note that the "make install" process is
1485+slightly problematic in that it (Module::Build actually) writes files
1486+under $CWD. Since "make install" is usually run by root and root
1487+usually cannot write files on a NFS volume, this will fail. If you use
1488+NFS please install munin from /var/tmp, /tmp or some such to work
1489+around this.
1490+
1491+Running make
1492+~~~~~~~~~~~~
1493+
1494+There are make targets for node, master, documentation and man files.
1495+Generally you want to install everything on the master, and just the
1496+node and plugiuns on the nodes.
1497+
1498+- Edit Makefile.config to suit your needs.
1499+
1500+- Create the user "munin" with the primary group "munin".
1501+
1502+ The user needs no shell and no privileges. On most Linux systems the
1503+ munin user's shell is the nologin shell (it has different paths on
1504+ different systems - but the user still needs to be able to run cron
1505+ jobs.
1506+
1507+Node
1508+~~~~
1509+
1510+For the node, you need only the common parts, the node and the plugins.
1511+
1512+.. code-block:: bash
1513+
1514+ make
1515+ make install-common-prime install-node-prime install-plugins-prime
1516+
1517+
1518+Master
1519+~~~~~~
1520+
1521+For the master, this will install everything.
1522+
1523+.. code-block:: bash
1524+
1525+ make
1526+ make install
1527
1528=== added file 'doc/installation/prerequisites.rst'
1529--- doc/installation/prerequisites.rst 1970-01-01 00:00:00 +0000
1530+++ doc/installation/prerequisites.rst 2012-07-23 03:02:19 +0000
1531@@ -0,0 +1,68 @@
1532+===============
1533+ Prerequisites
1534+===============
1535+
1536+In order for you to install Munin you must have the following:
1537+
1538+Building munin
1539+==============
1540+
1541+In order to build munin, you need:
1542+
1543+* GNU Make — Please do not attempt to use any other make.
1544+
1545+* A reasonable Perl 5 (Version 5.8 or newer)
1546+
1547+* Perl modules: Module::Build
1548+
1549+Developers / packagers need
1550+
1551+* Test::MockModule
1552+* Test::MockObject
1553+* Test::Pod::Coverage
1554+* Test::Perl::Critic 1.096 or later
1555+* Test::Exception
1556+* Directory::Scratch (err, wherefrom?)
1557+
1558+In order to build the documentation, you need:
1559+* sphinx
1560+
1561+Running munin
1562+============
1563+
1564+In order to run munin, you need:
1565+
1566+* A reasonable perl 5 (Version 5.8 or newer)
1567+
1568+The munin node needs:
1569+
1570+* Perl modules
1571+
1572+ * Net::Server
1573+ * Net::Server::Fork
1574+ * Time::HiRes
1575+ * Net::SNMP (Optional, if you want to use SNMP plugins)
1576+
1577+* Java JRE (Optional, if you want to use java plugins)
1578+* Anything the separate plugins may need. These have diverse
1579+ requirements, not documented here.
1580+
1581+The munin master needs
1582+
1583+* Perl modules:
1584+
1585+ * CGI::Fast
1586+ * Digest::MD5,
1587+ * File\::Copy::Recursive
1588+ * Getopt::Long
1589+ * HTML::Template
1590+ * IO::Socket::INET6
1591+ * Log::Log4perl 1.18 or later
1592+ * Net::SSLeay (Optional, if you want to use SSL/TLS)
1593+ * Params::Validate
1594+ * Storable
1595+ * Text::Balanced
1596+ * Time::HiRes
1597+ * TimeDate
1598+
1599+* A web server capable of CGI or FastCGI
1600
1601=== added file 'doc/installation/upgrade.rst'
1602--- doc/installation/upgrade.rst 1970-01-01 00:00:00 +0000
1603+++ doc/installation/upgrade.rst 2012-07-23 03:02:19 +0000
1604@@ -0,0 +1,19 @@
1605+=================================
1606+ Upgrading Munin from 1.x to 2.x
1607+=================================
1608+
1609+This is a compilation of items you need to pay attention to when
1610+upgrading from Munin 1.x to munin 2.x
1611+
1612+FastCGI
1613+=======
1614+
1615+Munin graphing is now done with FastCGI.
1616+
1617+Munin HTML generation is optionally done with FastCGI.
1618+
1619+Logging
1620+=======
1621+
1622+The web server needs write access to the munin-cgi-html and
1623+munin-cgi-graph logs.
1624
1625=== added directory 'doc/master'
1626=== added file 'doc/master/index.rst'
1627--- doc/master/index.rst 1970-01-01 00:00:00 +0000
1628+++ doc/master/index.rst 2012-07-23 03:02:19 +0000
1629@@ -0,0 +1,18 @@
1630+.. _master-index:
1631+
1632+==================
1633+ The Munin master
1634+==================
1635+
1636+The munin master is responsible for gathering data from munin nodes.
1637+It stores this data in RRD, and graphs them on request.
1638+
1639+The munin master consists of the following components:
1640+
1641+.. toctree::
1642+
1643+ munin-cron.rst
1644+ munin-update.rst
1645+ munin-limits.rst
1646+ munin-html.rst
1647+ rrdcached.rst
1648
1649=== added file 'doc/master/munin-cron.rst'
1650--- doc/master/munin-cron.rst 1970-01-01 00:00:00 +0000
1651+++ doc/master/munin-cron.rst 2012-07-23 03:02:19 +0000
1652@@ -0,0 +1,14 @@
1653+.. _munin-cron:
1654+
1655+============
1656+ munin-cron
1657+============
1658+
1659+"munin-cron" runs the following programs, in the given order:
1660+
1661+1. :ref:`munin-update`
1662+2. :ref:`munin-limits`
1663+3. :ref:`munin-html` (unless configured to run from CGI)
1664+
1665+Unless the munin master is configured otherwise, "munin-cron" should
1666+run every 5 minutes.
1667
1668=== added file 'doc/master/munin-html.rst'
1669--- doc/master/munin-html.rst 1970-01-01 00:00:00 +0000
1670+++ doc/master/munin-html.rst 2012-07-23 03:02:19 +0000
1671@@ -0,0 +1,13 @@
1672+.. _munin-html:
1673+
1674+============
1675+ munin-html
1676+============
1677+
1678+munin-html is one of the munin master components run from the
1679+:ref:`munin-cron` script.
1680+
1681+This script is responsible for generating static HTML pages.
1682+
1683+If "html_strategy cgi" is set in munin.conf, munin-html will assume
1684+HTML pages are generated by munin-cgi-html, and exit silently.
1685
1686=== added file 'doc/master/munin-limits.rst'
1687--- doc/master/munin-limits.rst 1970-01-01 00:00:00 +0000
1688+++ doc/master/munin-limits.rst 2012-07-23 03:02:19 +0000
1689@@ -0,0 +1,13 @@
1690+.. _munin-limits:
1691+
1692+==============
1693+ munin-limits
1694+==============
1695+
1696+"munin-limits" is one of the processes regularly run from the
1697+:ref:`munin-cron` script.
1698+
1699+It reads the last collected values for each plugin from the RRD files,
1700+and compares them to the plugin's warning and critical values (if
1701+any). If the limits are breached, it sends an event to any configured
1702+contacts.
1703
1704=== added file 'doc/master/munin-update.rst'
1705--- doc/master/munin-update.rst 1970-01-01 00:00:00 +0000
1706+++ doc/master/munin-update.rst 2012-07-23 03:02:19 +0000
1707@@ -0,0 +1,17 @@
1708+.. _munin-update:
1709+
1710+==============
1711+ munin-update
1712+==============
1713+
1714+munin-update is the primary Munin component. It is run from the
1715+:ref:`munin-cron` script.
1716+
1717+This script is responsible for contacting all the agents (munin-nodes)
1718+and collecting their data. Upon fetching the data, munin-update stores
1719+everything in RRD files - one RRD files for each field in each plugin.
1720+
1721+Running munin-update with the --debug flag will often give plenty of
1722+hints on what might be wrong.
1723+
1724+munin-update is a component in the Munin server.
1725
1726=== added file 'doc/master/rrdcached.rst'
1727--- doc/master/rrdcached.rst 1970-01-01 00:00:00 +0000
1728+++ doc/master/rrdcached.rst 2012-07-23 03:02:19 +0000
1729@@ -0,0 +1,116 @@
1730+.. _munin-master-rrdcached:
1731+
1732+=========================================
1733+ Scaling the munin master with rrdcached
1734+=========================================
1735+
1736+When the master grows big, and has a lot of nodes, there is a risk of
1737+disk IO becoming a bottleneck.
1738+
1739+To reduce this disk IO, you can use the RRD Cache Daemon.
1740+
1741+This will spool RRD changes in a queue, and flush changes on demand,
1742+and periodically. This will replace lots of random writes with a much
1743+smaller amount of sequential writes.
1744+
1745+Configuring rrdcached
1746+=====================
1747+
1748+Parameters
1749+----------
1750+
1751+RRDCached writes the spool data every 5 mintes by default. This is the
1752+same as the munin master. To have an effect, change the flushing
1753+intervals to allow more data to be spooled. Use the following
1754+parameters, and tune to your liking:
1755+
1756++---------+-----------------------------------------------------+
1757+| -w 1800 | Wait 30 minutes before writing data |
1758++---------+-----------------------------------------------------+
1759+| -z 1800 | Delay writes by a random factor of up to 30 minutes |
1760+| | (this should be equal to, or lower than, "-w") |
1761++---------+-----------------------------------------------------+
1762+| -f 3600 | Flush all data every hour |
1763++---------+-----------------------------------------------------+
1764+
1765+Example
1766+-------
1767+
1768+Create a directory for the rrdcached journal, and have the "munin"
1769+user own it. (in this example: /var/lib/munin/rrdcached-journal).
1770+
1771+Set up a separate RRDCached instance, run by the munin user. The
1772+following command starts an RRDCached instance, and can be added to
1773+/etc/rc.local.
1774+
1775+.. code-block:: bash
1776+
1777+ sudo -u munin /usr/bin/rrdcached \
1778+ -p /run/munin/rrdcached.pid \
1779+ -B -b /var/lib/munin/ \
1780+ -F -j /var/lib/munin/rrdcached-journal/ \
1781+ -m 0660 -l unix:/run/munin/rrdcached.sock \
1782+ -w 1800 -z 1800 -f 3600
1783+
1784+Note: While testing, add "-g" to the command line to prevent rrdcached
1785+from forking into the background.
1786+
1787+The munin grapher also needs write access to this socket, in order for
1788+it to tell the RRDCached to flush data needed for graphing. If you run
1789+munin with CGI graphing, you will need to give the web server access.
1790+For a common setup, run the following command, as root, after starting
1791+rrdcached:
1792+
1793+.. code-block:: bash
1794+
1795+ chgrp www-data /run/munin/rrdcached.sock
1796+
1797+Recommended: If you have systemd installed, use a systemd service. If
1798+you have upstart installed, write a daemon job configuration file. If
1799+you use systemd, you can add "-g" to the rrdcached command line.
1800+
1801+Configuring munin to use rrdcached
1802+===================================
1803+
1804+To enable rrdcached on the munin master, you will need to set the
1805+"rrdcached_socket" line in /etc/munin/munin.conf
1806+
1807+::
1808+
1809+ rrdcached_socket=/run/munin/rrdcached.sock
1810+
1811+
1812+Is it working?
1813+==============
1814+
1815+If all goes well, you should see the following:
1816+
1817+Munin logging
1818+-------------
1819+
1820+There should be no messages regarding rrdcached in
1821+/var/log/munin/munin-update.log.
1822+
1823+
1824+On failure to connect, there will be log lines like:
1825+
1826+::
1827+
1828+ 2012/06/26 18:56:12 [WARN] RRDCached feature ignored: rrdcached socket not writable
1829+
1830+…and you should then check for permissions problems.
1831+
1832+RRDCached spool
1833+---------------
1834+
1835+The rrdcached spool file should be in
1836+/var/lib/munin/rrdcached-journal/, and it should grow for each run of
1837+munin-update until it hits the flush time. The file looks like:
1838+
1839+::
1840+
1841+ /var/lib/munin/rrdcached-journal/rrd.journal.1340869388.141124
1842+
1843+For a munin master with 200 nodes, this could well grow to 100MiB,
1844+depending on the number of plugins, and the spool file time
1845+parameters.
1846
1847=== added directory 'doc/plugin'
1848=== added file 'doc/plugin/aggregate.rst'
1849--- doc/plugin/aggregate.rst 1970-01-01 00:00:00 +0000
1850+++ doc/plugin/aggregate.rst 2012-07-23 03:02:19 +0000
1851@@ -0,0 +1,8 @@
1852+.. _aggregate:
1853+
1854+==================
1855+ Borrowing data
1856+==================
1857+
1858+It is possible to exchange datapoints between plugins, or construct
1859+entirely new plugins based on purely borrowed data.
1860
1861=== added file 'doc/plugin/index.rst'
1862--- doc/plugin/index.rst 1970-01-01 00:00:00 +0000
1863+++ doc/plugin/index.rst 2012-07-23 03:02:19 +0000
1864@@ -0,0 +1,13 @@
1865+.. _plugin-index:
1866+
1867+==================
1868+ The Munin plugin
1869+==================
1870+
1871+This document explains how munin plugins work, how to install,
1872+configure, debug, and how to write new plugins.
1873+
1874+.. toctree::
1875+
1876+ aggregate.rst
1877+ reference.rst
1878
1879=== added file 'doc/plugin/reference.rst'
1880--- doc/plugin/reference.rst 1970-01-01 00:00:00 +0000
1881+++ doc/plugin/reference.rst 2012-07-23 03:02:19 +0000
1882@@ -0,0 +1,134 @@
1883+==================
1884+ Plugin reference
1885+==================
1886+
1887+Fields
1888+======
1889+
1890+On a configuration run, the plugin is called with the argument "config". The
1891+following fields are used.
1892+
1893++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1894+| Field | Value | type | Description | See also | Default |
1895++====================+==================+==========+==========================================+==================+=========+
1896+| graph_title | string | required | Sets the title of the graph | | |
1897++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1898+| graph_args | string | optional | Arguments for the rrd grapher. This is | rrdgraph_ | |
1899+| | | | used to control how the generated graph | | |
1900+| | | | looks, and how values are interpreted or | | |
1901+| | | | presented. | | |
1902+| | | | | | |
1903++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1904+| graph_vlabel | string | optional | Label for the vertical axis of the graph | | |
1905+| | | | | | |
1906++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1907+| graph_category | lower case | optional | Category used to sort the graph on the | | misc |
1908+| | string, no | | generated index web page. | | |
1909+| | whitespace | | | | |
1910++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1911+| graph_info | html text | optional | Additional text for the generated graph | | |
1912+| | | | web page | | |
1913++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1914+| graph_scale | yes|no | optional | If "yes", the generated graph will be | | no |
1915+| | | | scaled to the uppper and lower values of | | |
1916+| | | | the datapoints within the graph. | | |
1917++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1918+| graph_order | space separated | optional | Ensures that the listed datapoints are | :ref:`aggregate` | |
1919+| | list of | | displayed in order. Any additional | | |
1920+| | graph.datapoints | | datapoints are added in the order of | | |
1921+| | | | appearance after datapoitns appearing on | | |
1922+| | | | this list. | | |
1923+| | | | | | |
1924+| | | | This field is also used for "borrowing", | | |
1925+| | | | which is the practice of taking | | |
1926+| | | | datapoints from other graphs. | | |
1927++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1928+| datapoint.label | lower case | required | The label used in the graph for this | | |
1929+| | string, no | | field | | |
1930+| | whitespace | | | | |
1931++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1932+| datapoint.info | html text | optional | Additional html text for the generated | | |
1933+| | | | graph web page, used in the field | | |
1934+| | | | description table | | |
1935++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1936+| datapoint.warning | integer, or | optional | This field defines a threshold value or | | |
1937+| | integer:integer | | range. If the field value above the | | |
1938+| | (signed) | | defined warning value, or outside the | | |
1939+| | | | range, the service is considered to be in| | |
1940+| | | | a "warning" state. | | |
1941++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1942+| datapoint.critical | integer, or | optional | This field defines a threshold value or | | |
1943+| | integer:integer | | range. If the field value is above the | | |
1944+| | (signed) | | defined critical value, or outside the | | |
1945+| | | | range, the service is considered to be in| | |
1946+| | | | a "critical" state. | | |
1947++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1948+| datapoint.graph | yes|no | optional | Determines if this datapoint should be | | yes |
1949+| | | | visible in the generated graph. | | |
1950+| | | | | | |
1951+| | | | | | |
1952+| | | | | | |
1953++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1954+| datapoint.cdef | CDEF statement | optional | A CDEF statement is a Reverse Polish | cdeftutorial_ | |
1955+| | | | Notation statement used to construct a | | |
1956+| | | | datapoint from other datapoints. | | |
1957+| | | | | | |
1958+| | | | This is commonly used to calculate | | |
1959+| | | | percentages. | | |
1960++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1961+| datapoint.draw | AREA, LINE, | | Determines how the graph datapoints are | rrdgraph_ | LINE |
1962+| | LINE[n], STACK, | | displayed in the graph. The "LINE" takes | | |
1963+| | AREASTACK, | | an optional width suffix, commonly | | |
1964+| | LINESTACK, | | "LINE1", "LINE2", etc… | | |
1965+| | LINE[n]STACK | | The *STACK values are specific to munin | | |
1966+| | | | and makes the first a LINE, LINE[n] or | | |
1967+| | | | AREA datasource, and the rest as STACK. | | |
1968++--------------------+------------------+----------+------------------------------------------+------------------+---------+
1969+
1970+On a data fetch run, the plugin is called with no arguments. the following
1971+fields are used.
1972+
1973++-----------------+-----------------------+----------+------------------+------+------------+
1974+| Field | Value | type | Description | See | Default |
1975+| | | | | also | |
1976++=================+=======================+==========+==================+======+============+
1977+| datapoint.value | integer, scientific | required | The value to be | | No default |
1978+| | notation, or "U" (may | | graphed. | | |
1979+| | be signed) | | | | |
1980+| | | | | | |
1981++-----------------+-----------------------+----------+------------------+------+------------+
1982+
1983+Example
1984+=======
1985+
1986+This is an example of the plugin fields used with the "df" plugin. The
1987+"munin-run" command is used to run the plugin from the command line.
1988+
1989+Configuration run
1990+-----------------
1991+
1992+::
1993+
1994+ # munin-run df config
1995+ graph_title Filesystem usage (in %)
1996+ graph_args --upper-limit 100 -l 0
1997+ graph_vlabel %
1998+ graph_category disk
1999+ graph_info This graph shows disk usage on the machine.
2000+ _dev_hda1.label /
2001+ _dev_hda1.info / (ext3) -> /dev/hda1
2002+ _dev_hda1.warning 92
2003+ _dev_hda1.critical 98
2004+
2005+Data fetch run
2006+--------------
2007+
2008+::
2009+
2010+ # munin-run df
2011+ _dev_hda1.value 83
2012+
2013+
2014+.. _cdeftutorial: http://oss.oetiker.ch/rrdtool/tut/cdeftutorial.en.html
2015+
2016+.. _rrdgraph: http://oss.oetiker.ch/rrdtool/doc/rrdgraph_graph.en.html
2017
2018=== modified file 'master/_bin/munin-cron.in'
2019--- master/_bin/munin-cron.in 2012-03-19 15:17:42 +0000
2020+++ master/_bin/munin-cron.in 2012-07-23 03:02:19 +0000
2021@@ -12,3 +12,8 @@
2022 @@LIBDIR@@/munin-limits $@
2023
2024 nice @@LIBDIR@@/munin-html $@ || exit 1
2025+
2026+# Now the result of munin-html is needed for munin-graph.
2027+# It is always lauched, but will be a noop if
2028+# graph_strategy is "cgi"
2029+nice @@LIBDIR@@/munin-graph $@ || exit 1
2030
2031=== modified file 'master/_bin/munin-graph.in'
2032--- master/_bin/munin-graph.in 2012-06-21 00:29:37 +0000
2033+++ master/_bin/munin-graph.in 2012-07-23 03:02:19 +0000
2034@@ -54,8 +54,7 @@
2035
2036 my @params = @ARGV;
2037
2038-push @params, "--no-fork"; # FastCgi forks for us
2039-push @params, "--skip-locking", "--skip-stats", "--nolazy";
2040+push @params, "--no-fork"; # We do *not* want to fork. Perf -> FastCGI
2041 push @params, "--log-file", $logfile;
2042
2043 my $config = graph_startup(\@params);
2044@@ -63,6 +62,12 @@
2045 logger_open($config->{'logdir'});
2046 logger_debug() if $config->{debug} or defined($ENV{CGI_DEBUG});
2047
2048+if (! graph_check_cron() ) {
2049+ # Should not be launched from cron.
2050+ INFO "[INFO] graphing is cgi, do nothing";
2051+ exit 0;
2052+}
2053+
2054 # BEGIN FAST-CGI LOOP:
2055 my $nb_request = 0;
2056 my $nb_request_max = 0;
2057
2058=== modified file 'master/lib/Munin/Master/GraphOld.pm'
2059--- master/lib/Munin/Master/GraphOld.pm 2012-06-21 00:29:37 +0000
2060+++ master/lib/Munin/Master/GraphOld.pm 2012-07-23 03:02:19 +0000
2061@@ -333,7 +333,7 @@
2062 sub graph_check_cron {
2063
2064 # Are we running from cron and do we have matching graph_strategy
2065- if (&munin_get($config, "graph_strategy", "cron") ne "cron" and $cron) {
2066+ if (&munin_get($config, "graph_strategy", "cgi") ne "cron" and $cron) {
2067
2068 # Strategy mismatch: We're run from cron, but munin.conf says
2069 # we use dynamic graph generation
2070
2071=== modified file 'master/lib/Munin/Master/Node.pm'
2072--- master/lib/Munin/Master/Node.pm 2012-06-21 00:29:37 +0000
2073+++ master/lib/Munin/Master/Node.pm 2012-07-23 03:02:19 +0000
2074@@ -508,7 +508,9 @@
2075 }
2076 }
2077 if ($errors) {
2078- WARN "[WARNING] $errors lines had errors while $correct lines were correct in data from 'fetch $plugin' on $nodedesignation";
2079+ my $percent = ($errors / ($errors + $correct)) * 100;
2080+ $percent = sprintf("%.2f", $percent);
2081+ WARN "[WARNING] $errors lines had errors while $correct lines were correct ($percent%) in data from 'fetch $plugin' on $nodedesignation";
2082 }
2083
2084 return %values;
2085
2086=== modified file 'plugins/lib/Munin/Plugin.pm'
2087--- plugins/lib/Munin/Plugin.pm 2012-06-21 00:29:37 +0000
2088+++ plugins/lib/Munin/Plugin.pm 2012-07-23 03:02:19 +0000
2089@@ -167,6 +167,9 @@
2090 # Replace remaining illegals with _
2091 $name =~ s/[^A-Za-z0-9_]/_/g;
2092
2093+ # "root" is *not* allowed due to a 2.0 bug
2094+ $name = "__root" if $name eq "root";
2095+
2096 return $name;
2097 }
2098
2099
2100=== modified file 'plugins/node.d.linux/if_err_.in'
2101--- plugins/node.d.linux/if_err_.in 2012-05-13 18:01:59 +0000
2102+++ plugins/node.d.linux/if_err_.in 2012-07-23 03:02:19 +0000
2103@@ -65,7 +65,7 @@
2104
2105 if [ "$1" = "config" ]; then
2106 echo "graph_order rcvd trans"
2107- echo "graph_title $INTERFACE errors, drops, and collisions"
2108+ echo "graph_title Interface errors on $INTERFACE"
2109 echo 'graph_args --base 1000'
2110 echo 'graph_vlabel packets in (-) / out (+) per ${graph_period}'
2111 echo 'graph_category network'
2112
2113=== modified file 'plugins/node.d/munin_stats.in'
2114--- plugins/node.d/munin_stats.in 2012-06-21 00:29:37 +0000
2115+++ plugins/node.d/munin_stats.in 2012-07-23 03:02:19 +0000
2116@@ -63,8 +63,6 @@
2117 }
2118 print "update.warning 240\n";
2119 print "update.critical 285\n";
2120- print "graph.warning 240\n";
2121- print "graph.critical 285\n";
2122 exit 0;
2123 }
2124
2125
2126=== modified file 'plugins/plugin.sh.in'
2127--- plugins/plugin.sh.in 2012-03-19 15:17:42 +0000
2128+++ plugins/plugin.sh.in 2012-07-23 03:02:19 +0000
2129@@ -9,8 +9,9 @@
2130 # very much still break munin.
2131 #
2132 # usage: name="$(clean_fieldname "$item")"
2133- #
2134- echo "$@" | sed -e 's/^[^A-Za-z_]/_/' -e 's/[^A-Za-z0-9_]/_/g'
2135+
2136+ # "root" is *not* allowed due to a 2.0 bug
2137+ echo "$@" | sed -e 's/^[^A-Za-z_]/_/' -e 's/[^A-Za-z0-9_]/_/g' -e 's/^root$/__root/'
2138 }
2139
2140

Subscribers

People subscribed via source and target branches

to all changes: