在plugin-conf.d文件中设置警告/关键阈值

我可以在munin.conf设置警告/临界阈值(对于我写的插件),如下所示:

 load_per_core.load_per_core.warning 0.2 # Low value to trigger warnings load_per_core.load_per_core.critical 1 

这按预期工作,我看到电子邮件通知和图表上的正确的东西。

但是我想把这些configuration项移动到一个单独的文件中,这样我就可以更轻松地在使用Puppet的服务器上pipe理它们。 但是,当我将这两行移动到一个新的文件plugin-conf.d/zz-load_per_core是这样的:

 [load_per_core] env.load_per_core.warning 0.3 # Low value to trigger warnings env.load_per_core.critical 1 

…它不工作。 没有电子邮件,没有在图表上。

我已经猜到了从env.load_per_core开始的行的格式,所以也许这是错的?

tldr; Muninconfiguration键/值对是在运行时注入特定插件的执行环境的环境variables。 像任何其他系统环境variables一样,必须从插件的代码中访问它们。

穆宁插件执行

每个munin插件是一个独立的可执行文件。 在运行时,Munin为每个插件创build一个单独的环境,插入其中插入插件可以引用的variables。 有两组环境variables: munin核心特定的插件

提示:使用munin-run -d load_per_core来查看哪些环境variables被注入到您的插件的环境中。

如何定义环境variables

使用以下语法为每个插件声明特定于插件的环境variables:

 #/etc/munin/plugin-conf.d/zz-name_of_your_plugin [name_of_your_plugin] env.identifier value 

你的情况是:

 #/etc/munin/plugin-conf.d/zz-load_per_core [load_per_core] env.load_per_core.warning 0.2 

这将创build一个标识为load_per_core.warning的值为0.2的环境variables, load_per_core.warning其注入到名为load_per_core的插件的执行环境中。

重要提示:重新启动munin-node以使更改生效:

 sudo service munin-node restart 

何处定义环境variables

插件variables在目录/etc/munin/plagin-conf.d中定义。

Munin在这个位置创build一个默认configuration文件,称为munin-node 不build议编辑这个文件,因为munin可以覆盖它。

相反,为每个插件创build一个新的文件。 你的情况可能是/etc/munin/plugin-conf.d/zz-load_per_core 。 命名插件configuration文件时有两件事要考虑:

  1. 该名称是任意的,因为它不必与您的插件名称相关,它可以是任何东西, 但是…
  2. 此目录中的configuration文件按字母顺序进行评估,定义可以相互覆盖。 因此,通过在zz前面添加名称来确保configuration文件的优先级,以确保 munin-node 之后进行评估。

如何访问环境variables

像其他任何环境variables一样,configuration环境variables可以通过插件的代码来访问。 这个语法取决于你的插件使用的语言。 例如,如果你的插件是用bash写的,你可以写:

 #!/usr/bin/bash #this would access and print the load_per_core.warning environment var #ie 0.2 echo $load_per_core.warning 

或在Python中

 #!/usr/bin/env python import os print os.environ.get('load_per_core.warning') 

或者在Perl中使用标准的Munin库:

 #!/usr/bin/perl use Munin::Plugin; print_thresholds('load_per_core');