I think it is really up to you which method you prefer.
If you use MRPE, you need to follow the Nagios plugin development
guidelines. Of course you can also use all available monitoring plugin
that are built for Nagios (Nagios exchange and monitoring-plugins.org).
In NRPE the output of plugins is limited to 1024 bytes (if there are
more, they are lost in transmission). I'm not sure if Check_MK has this
limitation as well. My guess it that MRPE has been introduced as a
replacement for NRPE checks, only to overcome the problem of having
Nagios/Icinga schedule active checks for every NRPE check. A limitation
here is that you have to hard-code your thresholds in mrpe.cfg for
(almost) all plugins.
If you use local checks, you need to conform to different guidelines for
your plugin output. As stated before, you can limit execution of local
checks to once every n seconds by placing your scripts in
subdirectories. You *can* have Nagios plugins run this way, but you'll
have to write a wrapper for them, as these plugin use their exit code to
report the status of the check, while local checks report them in the
MRPE checks are configured in a single file by default (mrpe.cfg), and
therefore have all threshold configured in a single place. Using local
checks, you can set up configuration any way you see fit. You can write
your plugins to look a single configuration file, a set of configuration
files, hard-code thresholds in your script or have thresholds calculated
based on the information you're processing. Your method of choice may
also depend on the type of data you want to set up monitoring for.
My personal preference for developing plugin is to use local checks, but
in the end I think it's entirely up to you which method you prefer.
Do note though, that Check_MK doesn't support whitespace in the service
names for local checks. For MRPE this support was added with werk #2937
. However, the change that allowed this was quite simple, so I
created a patch  to also add this support for local checks. This
patch hasn't been picked up by the Check_MK guys though, so it's
currently unsupported by them.
On 14/10/16 23:28, ml...@libero.it wrote:
> thank you for the reply but i still have some doubts.
> You say that you use local checks for simpler things and MRPE for Nagios
> plugins and big/complex checks taken on Nagios Exchange.
> Ok but now questions are:
> 1)Reading the documentation, I understand that you can use any kind of
> Nagios plugins (simple or complex) even using local checks. Reading your
> reply instead it seems that some checks cannot be executed using local
> checks. Is it just a choise or you were forced to use MRPE? Could you
> please clarify?
> 2) You say that another advantage of the MRPE system is that it uses a
> centralized config but again, the documentation doesn't say that you can
> use a centralized configuration but speak about /etc/check_mk/mrpe.cfg
> on every single node. The doc even provides an example:
> LOAD /usr/lib/nagios/plugins/check_load -w 2 -c 5
> FS_var /usr/lib/nagios/plugins/check_disk /var
> FS_hirn /usr/lib/nagios/plugins/check_disk /hirn
> Aptitude /usr/lib/nagios/plugins/check_apt
> Smart_sda /usr/lib/nagios/plugins/check_ide_smart -d /dev/sda -n
> in which the parameters are local and not "central".
> Could you please give me some more informations and, if possible, an
> example or screenshot?
> ----Messaggio originale----
> Da: "Mathieu Levi" <ml...@collective.com>
> Data: 14/10/2016 17.19
> A: <firstname.lastname@example.org>
> Ogg: Re: [Check_mk (english)] difference between local checks and MRPE
> Aside from that advantage that Robert mentioned, I think the MRPE's
> intention isn't to compete with the local checks but instead to make
> the Nagios plugins (NRPE) easier to integrate into check_mk. That's
> what I use it for. I have local checks for things I wrote (mostly
> simpler things), I use MRPE for the Nagios plugins brought over from
> when we were using Icinga, and big/complex checks that I look for on
> the Nagios Exchange and places like that.
> I suppose another advantage of the MRPE system is that it uses a
> centralized config for the host being monitored
> (/etc/check_mk/mrpe.cfg) where one configures the plugins along with
> the parameters for those plugins.
> As an aside, I modified the check_mk_agent script slightly so that
> it also looks at config files within /etc/check_mk/mrpe.d (similar
> to how the sudoers.d works); this made it a little bit cleaner and
> easier to integrate with configuration management automation (eg.
> /etc/check_mk/mrpe.d/check_postgres.cfg for only some hosts that
> have Postgres, a general /etc/check_mk/mrpe.cfg for every host for
> general checks).
> Message: 2
> Date: Fri, 14 Oct 2016 16:40:18 +0200 (CEST)
> From: "mlis <mailto:ml...@libero.it>t"
> To: Robert Sander ,
> Subject: [Check_mk (english)] R: Re: difference between local checks
> and MRPE
> Content-Type: text/plain;charset="UTF-8"
> Thanks Robert I didn't know that. So...is correct to say that "local
> checks" is
> the preferred method over MRPE? Or are there special case in which
> MRPE is
> still better?
> >----Messaggio originale----
> >Da: "Robert Sander"
> >Data: 14/10/2016 16.13
> >A: <email@example.com
> >Ogg: Re: [Check_mk (english)] difference between local checks and MRPE
> >On 14.10.2016 14:00,
> >> apart the fact that they use a different mechanism, is there any good
> >> reason or case for which I should use one of them?
> >Local checks can be placed in numeric subdirectories. This way they are
> >run asynchronously which is not possible with MRPE.
> >Robert Sander
> >Heinlein Support GmbH
> >Schwedter Str. 8/9b, 10119 Berlin
> >http://www.heinlein-support.de <http://www.heinlein-support.de/>
> >Tel: 030 / 405051-43
> >Fax: 030 / 405051-19
> >Zwangsangaben lt. ?35a GmbHG:
> >HRB 93818 B / Amtsgericht Berlin-Charlottenburg,
> >Gesch?ftsf?hrer: Peer Heinlein -- Sitz: Berlin
> checkmk-en mailing list
checkmk-en mailing list