[collectd] BIND plugin for collectd-4.9.3_3
mr.a at aol.com
mr.a at aol.com
Wed Jun 13 13:02:07 CEST 2012
On 6/13/2012 5:45 PM, mr.a at aol.com wrote:
> Collectd developers--
>
> Good day.
>
> I am currently trying to backport the changes for "ParseTime" into
> collectd-4.9.3
> (the version that is running on my production environment). Comparing
> src/bind.c
> and src/collectd.conf.pod against the published patches at
> http://goo.gl/ebHUU, I
> then came up with these diffs for collectd-4.9.3:
>
> mr.a at a:/usr/ports/net-mgmt/collectd# less files/patch-src-bind.c.diff
> --- ./src/bind.c.orig 2010-07-09 18:01:59.000000000 +0800
> +++ ./src/bind.c 2012-06-13 09:35:57.000000000 +0800
> @@ -98,6 +98,10 @@ struct list_info_ptr_s
> };
> typedef struct list_info_ptr_s list_info_ptr_t;
>
> +/* FIXME: Enabled by default for backwards compatibility. */
> +/* TODO: Remove time parsing code. */
> +static _Bool config_parse_time = 1;
> +
> static char *url = NULL;
> static int global_opcodes = 1;
> static int global_qtypes = 1;
> @@ -249,7 +253,8 @@ static void submit (time_t ts, const char
> *plugin_instance, /* {{{ */
>
> vl.values = values;
> vl.values_len = 1;
> - vl.time = TIME_T_TO_CDTIME_T (ts);
> + if (config_parse_time)
> + vl.time = TIME_T_TO_CDTIME_T (ts);
> sstrncpy(vl.host, hostname_g, sizeof(vl.host));
> sstrncpy(vl.plugin, "bind", sizeof(vl.plugin));
> if (plugin_instance) {
> @@ -1363,6 +1368,8 @@ static int bind_config (oconfig_item_t *ci) /*
> {{{ */
> bind_config_set_bool ("MemoryStats", &global_memory_stats,
child);
> else if (strcasecmp ("View", child->key) == 0)
> bind_config_add_view (child);
> + else if (strcasecmp ("ParseTime", child->key) == 0)
> + cf_util_get_boolean (child, &config_parse_time);
> else
> {
> WARNING ("bind plugin: Unknown configuration option "
> (END)
>
> --- src/collectd.conf.pod.orig 2010-07-09 18:03:25.000000000 +0800
> +++ src/collectd.conf.pod 2012-06-13 12:33:51.000000000 +0800
> @@ -288,6 +288,7 @@
>
> <Plugin "bind">
> URL "http://localhost:8053/"
> + ParseTime false
> OpCodes true
> QTypes true
>
> @@ -314,35 +315,44 @@
> URL from which to retrieve the XML data. If not specified,
> C<http://localhost:8053/> will be used.
>
> -=item B<OpCodes> I<true>|I<false>
> +=item B<ParseTime> B<true>|B<false>
> +
> +When set to B<true>, the time provided by BIND will be parsed and
> used to
> +dispatch the values. When set to B<false>, the local time source is
> queried.
> +
> +This setting is set to B<true> by default for backwards
> compatibility; setting
> +this to B<false> is I<recommended> to avoid problems with timezones
and
> +localization.
> +
> +=item B<OpCodes> B<true>|B<false>
>
> When enabled, statistics about the I<"OpCodes">, for example the
> number of
> C<QUERY> packets, are collected.
>
> Default: Enabled.
>
> -=item B<QTypes> I<true>|I<false>
> +=item B<QTypes> B<true>|B<false>
>
> When enabled, the number of I<incoming> queries by query types (for
> example
> C<A>, C<MX>, C<AAAA>) is collected.
>
> Default: Enabled.
>
> -=item B<ServerStats> I<true>|I<false>
> +=item B<ServerStats> B<true>|B<false>
>
> Collect global server statistics, such as requests received over
IPv4
> and IPv6,
> successful queries, and failed updates.
>
> Default: Enabled.
>
> -=item B<ZoneMaintStats> I<true>|I<false>
> +=item B<ZoneMaintStats> B<true>|B<false>
>
> Collect zone maintenance statistics, mostly information about
> notifications
> (zone updates) and zone transfers.
>
> Default: Enabled.
>
> -=item B<ResolverStats> I<true>|I<false>
> +=item B<ResolverStats> B<true>|B<false>
>
> Collect resolver statistics, i.E<nbsp>e. statistics about outgoing
> requests
> (e.E<nbsp>g. queries over IPv4, lame servers). Since the global
resolver
> @@ -371,21 +381,21 @@
>
> =over 4
>
> -=item B<QTypes> I<true>|I<false>
> +=item B<QTypes> B<true>|B<false>
>
> If enabled, the number of I<outgoing> queries by query type
> (e.E<nbsp>g. C<A>,
> C<MX>) is collected.
>
> Default: Enabled.
>
> -=item B<ResolverStats> I<true>|I<false>
> +=item B<ResolverStats> B<true>|B<false>
>
> Collect resolver statistics, i.E<nbsp>e. statistics about outgoing
> requests
> (e.E<nbsp>g. queries over IPv4, lame servers).
>
> Default: Enabled.
>
> -=item B<CacheRRSets> I<true>|I<false>
> +=item B<CacheRRSets> B<true>|B<false>
>
> If enabled, the number of entries (I<"RR sets">) in the view's cache
> by query
> type is collected. Negative entries (queries which resulted in an
> error, for
>
> Applying the patches worked just fine.
>
> mr.a at a:/usr/ports/net-mgmt/collectd# make clean patch
> ===> Cleaning for collectd-4.9.3_3
> ===> License check disabled, port has not defined LICENSE
> ===> Found saved configuration for collectd-4.9.3_2
> ===> Extracting for collectd-4.9.3_3
> ===> Patching for collectd-4.9.3_3
> ===> Applying FreeBSD patches for collectd-4.9.3_3
> mr.a at a:/usr/ports/net-mgmt/collectd#
>
> Here is the problem during installation:
> # uname -s
> FreeBSD
> # uname -p
> amd64
> # uname -r
> 8.2-RELEASE
>
> #head Makefile
> PORTNAME= collectd
> PORTVERSION= 4.9.3
> PORTREVISION= 3
>
> /usr/ports/net-mgmt/collectd# make clean patch install package
> ...
> libtool: link: ar cru .libs/apache.a apache_la-apache.o
> libtool: link: ranlib .libs/apache.a
> libtool: link: ( cd ".libs" && rm -f "apache.la" && ln -s
> "../apache.la" "apache.la" )
> /bin/sh ../libtool --tag=CC --mode=compile cc -DHAVE_CONFIG_H -I.
> -DPREFIX='"/usr/local"' -DCONFIGFILE='"/usr/local/etc/collectd.conf"'
> -DLOCALSTATEDIR='"/var"' -DPKGLOCALSTATEDIR='"/var/lib/collectd"'
> -DPIDFILE='"/var/run/collectd.pid"'
> -DPLUGINDIR='"/usr/local/lib/collectd"'
> -DPKGDATADIR='"/usr/local/share/collectd"' -I/usr/local/include -Wall
> -Werror -I/usr/local/include -I/usr/local/include/libxml2
> -I/usr/local/include -O2 -pipe -fstack-protector
-fno-strict-aliasing
> -MT bind_la-bind.lo -MD -MP -MF .deps/bind_la-bind.Tpo -c -o
> bind_la-bind.lo `test -f 'bind.c' || echo './'`bind.c
> libtool: compile: cc -DHAVE_CONFIG_H -I. -DPREFIX=\"/usr/local\"
> -DCONFIGFILE=\"/usr/local/etc/collectd.conf\" -DLOCALSTATEDIR=\"/var\"
> -DPKGLOCALSTATEDIR=\"/var/lib/collectd\"
> -DPIDFILE=\"/var/run/collectd.pid\"
> -DPLUGINDIR=\"/usr/local/lib/collectd\"
> -DPKGDATADIR=\"/usr/local/share/collectd\" -I/usr/local/include -Wall
> -Werror -I/usr/local/include -I/usr/local/include/libxml2
> -I/usr/local/include -O2 -pipe -fstack-protector -fno-strict-aliasing
> -MT bind_la-bind.lo -MD -MP -MF .deps/bind_la-bind.Tpo -c bind.c -fPIC
> -DPIC -o .libs/bind_la-bind.o
> cc1: warnings being treated as errors
> bind.c: In function 'submit':
> bind.c:257: warning: implicit declaration of function
> 'TIME_T_TO_CDTIME_T'
> gmake[3]: *** [bind_la-bind.lo] Error 1
> gmake[3]: Leaving directory
> `/home/tmp_ports/usr/xports/net-mgmt/collectd/work/collectd-4.9.3/src'
> gmake[2]: *** [all-recursive] Error 1
> gmake[2]: Leaving directory
> `/home/tmp_ports/usr/xports/net-mgmt/collectd/work/collectd-4.9.3/src'
> gmake[1]: *** [all] Error 2
> gmake[1]: Leaving directory
> `/home/tmp_ports/usr/xports/net-mgmt/collectd/work/collectd-4.9.3/src'
> gmake: *** [all-recursive] Error 1
> *** Error code 1
>
> Any ideas on what went wrong here?
>
Here is one solution.
Picking up on the hint that says "cc1: warnings being treated as
errors, " I
then added "+ CFLAGS+=-w" at /usr/ports/net-mgmt/collectd/Makefile.
mr.a at a:/usr/ports/net-mgmt/collectd# make deinstall clean package
==> License check disabled, port has not defined LICENSE
===> Found saved configuration for collectd-4.9.3_2
===> Extracting for collectd-4.9.3_3
===> Patching for collectd-4.9.3_3
===> Applying FreeBSD patches for collectd-4.9.3_3
...
/bin/mkdir -p /var/db/collectd
if [ ! -f /usr/local/etc/collectd.conf ]; then /bin/cp -p
/usr/local/etc/collectd.conf.sample
/usr/local/etc/collectd.conf ; fi
===> Installing rc.d startup script(s)
===> Running ldconfig
/sbin/ldconfig -m /usr/local/lib
===> Registering installation for collectd-4.9.3_3
===> SECURITY REPORT:
This port has installed the following files which may act as
network
servers and may therefore pose a remote security risk to the
system.
/usr/local/lib/collectd/unixsock.so
/usr/local/lib/collectd/email.so
This port has installed the following startup scripts which may
cause
these network services to be started at boot time.
/usr/local/etc/rc.d/collectdmon
/usr/local/etc/rc.d/collectd
If there are vulnerabilities in these programs there may be a
security
risk to the system. FreeBSD makes no guarantee about the
security of
ports included in the Ports Collection. Please type 'make
deinstall'
to deinstall the port if this is a concern.
For more information, and contact details about the security
status of this software, see the following webpage:
http://www.collectd.org/
mr.a at a:/usr/ports/net-mgmt/collectd#
If anyone is interested, go and grab the working patches adopted for
collectd-4.9.3_3
athttp://paste.kde.org/498614/raw/ and
athttp://paste.kde.org/498620/raw/ .
> Thanks in advance,
>
> mr.a
>
>
More information about the collectd
mailing list