network plugin: Use libgcrypt's HMAC implementation rather than rolling our own.
The previously implemented method is simple enough, but apparently pront
to attacks.
The previously implemented method is simple enough, but apparently pront
to attacks.
network plugin: Use SHA-1 instead of SHA-224 to check integrity.
SHA-224 is not supported by older versions of libgcrypt (i. e. the
version included in Debian Etch), so lets take this more conservative
alternative instead.
Also, the padding bytes have been moved to the beginning of the packet
and will be filled with randomness, so they serve as some kind of IV.
It is, however, not guaranteed that any padding bytes exist at all, so
in theory two identical packets could be encrypted in the same way.
SHA-224 is not supported by older versions of libgcrypt (i. e. the
version included in Debian Etch), so lets take this more conservative
alternative instead.
Also, the padding bytes have been moved to the beginning of the packet
and will be filled with randomness, so they serve as some kind of IV.
It is, however, not guaranteed that any padding bytes exist at all, so
in theory two identical packets could be encrypted in the same way.
Merge branch 'collectd-4.6'
Merge branch 'collectd-4.5' into collectd-4.6
Restore BYTE_ORDER on DARWIN The files matching grep "define _POSIX_C_SOURCE" src/*.c on MacOSX do not compile: In file included from target_notification.c:60: collectd.h:172:3: error: #error "Cannot determine byte order"
See /usr/include/i386/endian.h:
#if defined(KERNEL) || (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
#define LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN
#define BIG_ENDIAN __DARWIN_BIG_ENDIAN
#define BYTE_ORDER __DARWIN_BYTE_ORDER
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
See /usr/include/i386/endian.h:
#if defined(KERNEL) || (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
#define LITTLE_ENDIAN __DARWIN_LITTLE_ENDIAN
#define BIG_ENDIAN __DARWIN_BIG_ENDIAN
#define BYTE_ORDER __DARWIN_BYTE_ORDER
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Disable disable multi -arch flags to perl.c on OSX Compilation of perl.c fails with:
gcc ... -Wall -Werror -arch i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN ... -MT perl_la-perl.lo -MD -MP -MF ...
...
gcc-4.0: -E, -S, -save-temps and -M options are not allowed with multiple -arch flags
See Config_heavy.pl:
$archflags = exists($ENV{ARCHFLAGS}) ? $ENV{ARCHFLAGS} : '-arch i386 -arch ppc';
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
gcc ... -Wall -Werror -arch i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN ... -MT perl_la-perl.lo -MD -MP -MF ...
...
gcc-4.0: -E, -S, -save-temps and -M options are not allowed with multiple -arch flags
See Config_heavy.pl:
$archflags = exists($ENV{ARCHFLAGS}) ? $ENV{ARCHFLAGS} : '-arch i386 -arch ppc';
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
network plugin: Use CBC rather than ECB.
network plugin: Implement signing and encryption of network traffic.
The patch adds shared secret signing and encryption of network traffic.
Currently, there are three “security levels”:
- Encrypt
Encrypt outgoing data and only accept encrypted data when receiving.
- Sign
Outgoing data is signed; signed and encrypted data is accepted when
receiving.
- None
Send without any cryptography and accept anything when receiving.
The security level and shared secret can be set per-socket, so that
forwarding instances can re-encrypt and similar goodies.
The libgcrypt library is used to calculate hashes, encrypt and decrypt,
see <http://www.gnu.org/software/libgcrypt/>. I tested compiling the
`network' plugin without libgcrypt afterwards, but haven't tested this
much yet.
Algorithms used are SHA-256 for signing and AES-256 in ECB mode /
SHA-224 when encrypting. Also, SHA-256 is used to get the 32 byte key
for AES-256 from the user-supplied secret.
The patch adds shared secret signing and encryption of network traffic.
Currently, there are three “security levels”:
- Encrypt
Encrypt outgoing data and only accept encrypted data when receiving.
- Sign
Outgoing data is signed; signed and encrypted data is accepted when
receiving.
- None
Send without any cryptography and accept anything when receiving.
The security level and shared secret can be set per-socket, so that
forwarding instances can re-encrypt and similar goodies.
The libgcrypt library is used to calculate hashes, encrypt and decrypt,
see <http://www.gnu.org/software/libgcrypt/>. I tested compiling the
`network' plugin without libgcrypt afterwards, but haven't tested this
much yet.
Algorithms used are SHA-256 for signing and AES-256 in ECB mode /
SHA-224 when encrypting. Also, SHA-256 is used to get the 32 byte key
for AES-256 from the user-supplied secret.
src/plugin.c: Emit warning in load_plugin if !S_ISREG
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Merge branch 'dm/misc'
clean.sh: Clean up `src/libcollectdclient/'.
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
configure.in: Check for libpq for function `PQserverVersion'.
It does not exist in 7.x.
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
It does not exist in 7.x.
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/plugin.c: Emit warning in load_plugin if !S_ISREG
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
contrib/collection3/: Add plugin_instance to MySQL RRDTitle
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
bindings/java/: Fix a reference in a JavaDoc comment.
src/liboping: Remove the shipped version of the ‘oping’ library.
There's no real reason for this special handling, since liboping is
developed separately now.
There's no real reason for this special handling, since liboping is
developed separately now.
Merge branch 'ff/memcachec'
dbi plugin: Be more specific about unknown field types.
Especially print the name of the field.
Especially print the name of the field.
java plugin: Use `void *' to pass arguments of varying type.
The types passed at VM creation time differ from Java implementation to the
next and/or only certain compiler complain. This way we should be on the safe
side.
The types passed at VM creation time differ from Java implementation to the
next and/or only certain compiler complain. This way we should be on the safe
side.
memcachec plugin: Add a plugin to fetch data from the memcache daemon.
Based on Doug MacEachern's modification to the cURL plugin.
Based on Doug MacEachern's modification to the cURL plugin.
Merge branch 'er/ted'
README: Added the `ted' plugin.
bindings/java/: JMXMemory: Add GPL and copyright header.
ndings/java/: Add `JMXMemory' example plugin.
java plugin: Fix a typo in the oconfig_item conversion function.
src/plugin.c: Automatically set vl->interval to interval_g if (vl->interval <= 0).
java plugin: Honor the return value of `NewGlobalRef'.
Apparently GCJ used to modify it's argument, but the spec apparently says
that the return value is important.
Apparently GCJ used to modify it's argument, but the spec apparently says
that the return value is important.
bindings/java/: Initialize `time' and `interval' to zero.
They will be replaced by the correct values automatically, so it's better
to initialize the members to those ``magic'' values..
They will be replaced by the correct values automatically, so it's better
to initialize the members to those ``magic'' values..
java plugin: Use slashes, not dots, in absulte object names.
Dots workes for GCJ but not with Sun's Java. I haven't tested if GCJ likes
this too, but I strongly suspect it.
Dots workes for GCJ but not with Sun's Java. I haven't tested if GCJ likes
this too, but I strongly suspect it.
mysql plugin: Make the `Database' option optional again.
contrib/collectd-network.py: Add pure-Python implementation of collectd's network protocol.
Announcement can be found here:
<http://blogs.igalia.com/aperez/?p=38>
Announcement can be found here:
<http://blogs.igalia.com/aperez/?p=38>
src/configfile.c: Improve a debugging message.
contrib/collectd-network.py: Add pure-Python implementation of collectd's network protocol.
Announcement can be found here:
<http://blogs.igalia.com/aperez/?p=38>
Announcement can be found here:
<http://blogs.igalia.com/aperez/?p=38>
src/Makefile.am: Use `LIBADD' instead of `LDFLAGS' when linking.
contrib/collectd-unixsock.py: Add Python module to talk to the UnixSock plugin.
src/utils_cmd_putval.c: Add a missing newline ...
... when printing to the socket.
... when printing to the socket.
collectd-unixsock(5): Fix two typos.
mysql plugin: Log an info message after connecting to a server.
Also, improved the error message logged if the connection failed.
Also, improved the error message logged if the connection failed.
collectd.conf(5): Documented support for the master / slave statistics.
Also, the sample configuration in collectd.conf.in has been updated.
Also, the sample configuration in collectd.conf.in has been updated.
collectd.conf(5): Documented the <Database> blocks.
Also, updated the sample configuration in collectd.conf.in.
Also, updated the sample configuration in collectd.conf.in.
mysql plugin: Added support for "slave notifications".
The new boolean config option "SlaveNotifications" may be used to enable
notifications if the replication slave I/O and / or SQL threads are not
running (and the respective OKAY notifications). Since this is somewhat
related to the time offset between master and slave, "time_offset" is used for
the type information stored in the notification.
The new boolean config option "SlaveNotifications" may be used to enable
notifications if the replication slave I/O and / or SQL threads are not
running (and the respective OKAY notifications). Since this is somewhat
related to the time offset between master and slave, "time_offset" is used for
the type information stored in the notification.
mysql plugin: Updated copyright and authors information.
Added Doug MacEachern to the list of copyright holders and Mirko Buffoni to
the list of authors.
Added Doug MacEachern to the list of copyright holders and Mirko Buffoni to
the list of authors.
mysql plugin: Added support for master/slave statistics.
MySQL replication master and slave statistics may be enabled using the newly
added boolean config options "MasterStats" and "SlaveStats". In the first
case, the position in the binlog is collected while in the later case the
read and exec positions in the master log as well as the value of the
Seconds_Behind_Master variable are collected.
For the log positions, the counter type "mysql_log_position" has been
introduced while "time_offset" is used for the Seconds_Behind_Master values.
MySQL replication master and slave statistics may be enabled using the newly
added boolean config options "MasterStats" and "SlaveStats". In the first
case, the position in the binlog is collected while in the later case the
read and exec positions in the master log as well as the value of the
Seconds_Behind_Master variable are collected.
For the log positions, the counter type "mysql_log_position" has been
introduced while "time_offset" is used for the Seconds_Behind_Master values.
src/plugin.c: Fixed a typo.
exec plugin: Allow executed programs to close STDERR.
When an executed program is closing STDERR but continues running, the
daemon will wait for the child to exit and the child will eventually
block because the pipe is filled up, resulting in no statistics being
collected.
Thanks to Thorsten von Eicken for finding this problem :)
When an executed program is closing STDERR but continues running, the
daemon will wait for the child to exit and the child will eventually
block because the pipe is filled up, resulting in no statistics being
collected.
Thanks to Thorsten von Eicken for finding this problem :)
onewire plugin: Make use of the `complex read' callbacks.
The `Interval' option is not honored and can be used to set an arbitrary
interval for this plugin.
The `Interval' option is not honored and can be used to set an arbitrary
interval for this plugin.
uptime plugin: Shuffle some preprocessor stuff around.
Fix some comments and possibly a Solaris bug, too.
Fix some comments and possibly a Solaris bug, too.
build system: Add the new `uptime' plugin.
uptime plugin: Add a plugin to measure the time a system has been running.
Florian Forster ha scritto:
>Hi Marco,
Hi Florian,
> Checking the KSTAT_TYPE_NAMED twice (three times if you count the
> assertion) is of course not necessary. I suspect a copy'n'paste error ;)
Me too. Please remove the second one at least, kstat_read do not change
ks_type.
>A quick `grep' revealed that `get_kstat' is only used in two places, the
>memory and the swap plugin - both trying to figure out the pagesize. If
>you need something else than `KSTAT_TYPE_NAMED', I'd suggest to move the
>checks to a new function `get_kstat_pagesize' and use that function in
>the two plugins.
I went for the kstat.h only solution.
Ok, I'm attaching the code, please check the preprocessor directives for
the includes section, I don't much about defines created by the build
system and its names.
I'm using it right now on a linux machine, but I haven't tested yet on
Solaris and BSDs. Today I tried to compile it on OpenSolaris, but after
fighting with the packaging system and many other things I gave up and
decided I won't try anymore. So, since I'd like to say the plugin is
done after testing it, Solaris testers are wanted :P
As soon as I can I will edit the wiki page, but first I want to have a
closer look to the iptable plugin and see how many modifications are
needed for IPv6 and then have an opinion about the single vs. double
plugin approach.
See you soon :)
Regars,
Marco
Florian Forster ha scritto:
>Hi Marco,
Hi Florian,
> Checking the KSTAT_TYPE_NAMED twice (three times if you count the
> assertion) is of course not necessary. I suspect a copy'n'paste error ;)
Me too. Please remove the second one at least, kstat_read do not change
ks_type.
>A quick `grep' revealed that `get_kstat' is only used in two places, the
>memory and the swap plugin - both trying to figure out the pagesize. If
>you need something else than `KSTAT_TYPE_NAMED', I'd suggest to move the
>checks to a new function `get_kstat_pagesize' and use that function in
>the two plugins.
I went for the kstat.h only solution.
Ok, I'm attaching the code, please check the preprocessor directives for
the includes section, I don't much about defines created by the build
system and its names.
I'm using it right now on a linux machine, but I haven't tested yet on
Solaris and BSDs. Today I tried to compile it on OpenSolaris, but after
fighting with the packaging system and many other things I gave up and
decided I won't try anymore. So, since I'd like to say the plugin is
done after testing it, Solaris testers are wanted :P
As soon as I can I will edit the wiki page, but first I want to have a
closer look to the iptable plugin and see how many modifications are
needed for IPv6 and then have an opinion about the single vs. double
plugin approach.
See you soon :)
Regars,
Marco
network plugin: Improve a debugging message.
Merge branch 'collectd-4.6'
snmp plugin: Use `complex reads', one for each host.
This way the reads are sheduled by the global read threads, thread
handling can be removed completely and intervals which are not a
multiple of the global interval are possible.
This way the reads are sheduled by the global read threads, thread
handling can be removed completely and intervals which are not a
multiple of the global interval are possible.
mysql plugin: Use "mysql-$db" when registering a read callback.
mysql plugin: use plugin_register_complex_read
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Merge branch 'master' of octo@verplant.org:/var/lib/git/collectd
configure: Prefixed cache-ids in AC_CACHE_CHECK with "c_cv_".
autoconf requires the string "_cv_" to be present in cache-ids.
This patch adds/changes `have_broken_perl_load_module' which was added
after 4.5.
autoconf requires the string "_cv_" to be present in cache-ids.
This patch adds/changes `have_broken_perl_load_module' which was added
after 4.5.
Bumped version to 4.6.2; Updated ChangeLog.
mysql plugin: un-static-ize mysql connections
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Merge branch 'collectd-4.5' into collectd-4.6
src/plugin.c: Fix an error message.
mysql plugin: Some changes to the configuration handling.
The member `instance' is used to determine whether or not to use ``legacy
mode'':
- If it is NULL, legacy mode is in action
- Otherwise, non-legacy mode should be used.
``legacy mode'' and ``non-legacy mode'' cannot be mixed: If at least one
database is defined in the ``new'' way, all options that'd be valid in
legacy mode will only trigger a warning.
The member `instance' is used to determine whether or not to use ``legacy
mode'':
- If it is NULL, legacy mode is in action
- Otherwise, non-legacy mode should be used.
``legacy mode'' and ``non-legacy mode'' cannot be mixed: If at least one
database is defined in the ``new'' way, all options that'd be valid in
legacy mode will only trigger a warning.
configure: Prefixed cache-ids in AC_CACHE_CHECK with "c_cv_".
autoconf requires the string "_cv_" to be present in cache-ids.
autoconf requires the string "_cv_" to be present in cache-ids.
configfile, types_list: Improved error messages when handling "TypesDB".
Merge branch 'collectd-4.6' of /var/lib/git/collectd into collectd-4.6
mysql plugin: add support for multiple databases
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
ted plugin: Fix some minor issues with Eric's patch.
Remove trailing whitespace, for example.
Remove trailing whitespace, for example.
ted plugin: Some nondescript fixes.
src/plugin.[ch]: Pass an interval to `plugin_register_complex_read'.
src/plugin.c: Remove an unused variable.
src/liboping/liboping.c: Fix a problem with strict aliasing.
Just remove the code since it's dead anyway.
Thanks to Alan Pevec <apevec at gmail.com> for pointing this out :)
Just remove the code since it's dead anyway.
Thanks to Alan Pevec <apevec at gmail.com> for pointing this out :)
src/filter_chain.c: Allow chains without a default target.
This is how it's documented.
This is how it's documented.
timediff match: Register the correct match name.
src/utils_cache.c: Fix an error message.
src/plugin.c: Use a heap to schedule reads.
With this change basically only timeout checks are triggered from the
global "read loop". This will allow each read function to be queried at
a different interval. This is currently not used, but will come in handy
in the future.
With this change basically only timeout checks are triggered from the
global "read loop". This will allow each read function to be queried at
a different interval. This is currently not used, but will come in handy
in the future.
src/collectd.conf.in: Add `match_timediff'.
Merge branch 'master' into er/ted
Merge branch 'collectd-4.6'
Merge branch 'collectd-4.5' into collectd-4.6
ted plugin: Don't expect a minimum length.
The serial interface apparently can only deliver 255 bytes at once, so
checking if we received ``enough'' (i. e. 278+x) bytes will never work.
The serial interface apparently can only deliver 255 bytes at once, so
checking if we received ``enough'' (i. e. 278+x) bytes will never work.
15 years agoMerge branch 'collectd-4.5' of octo@verplant.org:/var/lib/git/collectd into collectd-4.5
Merge branch 'collectd-4.5' of octo@verplant.org:/var/lib/git/collectd into collectd-4.5
bind plugin: Actually handle RR cache numbers as `gauge'..
Hi Florian,
Well a working patch was even less trivial as the quick one from
yesterday evening.
Just using a gauge type is not sufficient (only 0 is written to RRD
files), it's also necessary to adjust the bind_xml_stats_handle_view()
as has been done for the memory statistics
Attached is a patch to bind.c (I skipped types.db) which fixes the
cache data collection.
In addition I attached a graph of the cache evolution and memory (for
memory it might be worth giving it an own type as it's not cumulative
at all)
Bruno
Hi Florian,
Well a working patch was even less trivial as the quick one from
yesterday evening.
Just using a gauge type is not sufficient (only 0 is written to RRD
files), it's also necessary to adjust the bind_xml_stats_handle_view()
as has been done for the memory statistics
Attached is a patch to bind.c (I skipped types.db) which fixes the
cache data collection.
In addition I attached a graph of the cache evolution and memory (for
memory it might be worth giving it an own type as it's not cumulative
at all)
Bruno
bind plugin: "Trivial patch" to make `rr cache' stats work.
bind plugin: "Trivial patch" to make `rr cache' stats work.
contrib/collection3: Use {interface} in `if_octets' graphs.
contrib/collection3: Add graph for `ps_cputime'.
contrib/collection3: Add the "height" parameter.
src/common.c, memory plugin: Fix a potential problem under Solaris.
When the kstat chain has been updated (and init is called again),
get_kstat should overwrite the existing kstat pointer thingy.
When the kstat chain has been updated (and init is called again),
get_kstat should overwrite the existing kstat pointer thingy.
contrib/collection3: Fix two minor issues.
contrib/collection3: Add "Wirkleistung" graph.
contrib/collection3: Minor HTML work-around for some browsers.
contrib/collection3: Update bin/json.cgi to use the JSON module.
contrib/collection3: Add graph for "Table space" graphs.
contrib/collecion3: Add graphs for `dns_opcode' and `io_octets'.
contrib/collection3: Add the `index' to the parameters.
src/liboping/test_liboping.c: Remove legacy file.
Merge branch 'ff/gmond'
Merge branch 'collectd-4.6'
rrdtool plugin: Beatify a debugging message.
gmond plugin: Add a configuration.
gmond plugin: Add a plugin to receive Ganglia multicast traffic.