Hi,
although the proposed solution may simplify the support of portable
configuration, i think it will be better to use for example the
mentioned m4 for the creating monit configuration from common source for
various distributions.
From my point of view, the distribution of portable/conditional
configuration won't be advantage for the end user since he/she will see
lot of unnecessary informations, which will make the configuration hard
to read. The preprocessed configuration for monit distribution for
particular platform may be simpler to read/manage on target platform.
It may be also needed to distribute different binaries for various
platforms - due to the different prerequisite libraries for example
(such as openssl when enabled). The preprocessing of the configuration
may be automated using custom script when building monit.
Summary:
i think the implementation of preprocessor in monit configuration parser
is not needed and is out of project scope - simple existing tools may
serve for portable package creation.
Thanks :)
Martin
Stephen Dowdy wrote:
I have to deploy monit on Debian, RHEL4, SuSE SLES9. Unfortunately, each is
different enough that a single .monitrc won't work. Specifically, as an
example, 'sshd' and 'ntpd' init.d scripts have different names across all
three distros. (/etc/init.d/{x,}ntp{,d} /etc/init.d/ssh{,d} ...)
It would be nice if monitrc had some simplistic preprocessor handling, like:
#ifdef RHEL4
include RHEL4/sshd
#else ifdef DEBIAN
include Debian/sshd
#endif
or if it supported variable expansion:
include ${DISTRO}/sshd
Additionally, for a logfile scanner, i look for "Out of Memory: Kill
process" messages, but the default syslog writes these in different places
on different distros, so my 'logscan' monitrc include snippet would benefit
from variable expansion or preprocessor conditionals, etc.
-------------------
#ifdef RHEL4
syslogfile=/var/log/messages
#else ifdef DEBIAN
syslogfile=/var/log/syslog
#endif
check file SYSLOGFILE with path ${syslogfile}
-------------------
I could create a bunch of start/stop front-end scripts that did all the
conditional determination/processing themselves in /etc/opt/monit/init.d or
something, but that's also non-optimal.
Running the .monitrc through an m4 or cpp first-run might be workable, but
again, isn't as desireable as having built-in support in Monit to do this.
I would prefer to have to manage a SINGLE .monitrc and tree full of includes
than to have to track modifications across distro-specific .monitrcs.
Does anyone have any good ideas on this issue or anecdotes on how they
manage this problem?
thanks,
--stephen
--
To unsubscribe:
http://lists.nongnu.org/mailman/listinfo/monit-general