write_riemann plugin: Use the "Attributes" of an Event rather than abuse the "Tags".
Riemann 0.2.0 provides "Attributes", which are key-value pairs. Since
the plugin previously basically abused the tag system for adding this
kind of data, switch to the new and shiny thing :)
configure.in: Fix dependency of the pinba and write_riemann plugins.
Since the generated *.pb-c.[ch] files are now included in the
distribution, they only depend on the <google/protobuf-c/protobuf-c.h>
header file, not the protobuf compiler.
Sebastian Harl [Tue, 20 Nov 2012 13:44:43 +0000 (14:44 +0100)]
build system (Perl bindings): Make Makefile.PL's PREFIX/INSTALL_BASE optional.
Both options may cause problems:
- PREFIX might clash with INSTALL_BASE being set in $PERL_MM_OPT.
- INSTALL_BASE without any further options set will install into non-standard
directories in many cases.
Rather, use PREFIX=${prefix} as default but overwrite that if
--with-perl-bindings=... has been used.
Thanks to faxm0dem for reporting the INSTALL_BASE problems on IRC and
bvarner and nirik for reporting this in GH #177 and #196.
network plugin: Make sure gcrypt is initialized before using any of its functions.
@marekbecka found that sockent_open() is called during the configuration
phase, but gcrypt is initialized later, during the initialization phase.
This patch will initialize gcrypt in sockent_open() if any sockets with
security are configured.
- Java detection used TMPDIR as var to parse command output
- TMPDIR is used in libltdl later on in ./configure
- alternative fix is local var or subshell
- fixes issue introduced via #33163ee
Florian Forster [Sat, 23 Mar 2013 07:47:02 +0000 (08:47 +0100)]
tail_csv plugin: Some bug fixes.
* Query types in the init-phase rather than the config-phase. The
types.db is not guaranteed to be available at that time.
* Make sure the "Instance" option in the <File /> blocks is optional.
Florian Forster [Sun, 17 Mar 2013 14:50:16 +0000 (15:50 +0100)]
uuid plugin: Improve parsing of the dmidecode output.
The entire business of dividing by sizeof(char) only made the code
unreadable, because by specification sizeof(char) evaluates to 1. The
defines were expanded and the parsing is now less sensitive to
formatting changes in the dmidecode output. Module global variables have
been moved to the top.
Florian Forster [Sat, 16 Mar 2013 14:08:39 +0000 (15:08 +0100)]
curl_xml plugin: Change the "Namespace" config option …
… to expect two strings: prefix and URL separately. This way the parsing
is done in the config parser and we don't have to interpret special
characters in a string.
Dan Fandrich [Sat, 2 Mar 2013 17:13:27 +0000 (18:13 +0100)]
Fix automatic link flags with libgcrypt 1.5.0
AM_PATH_LIBGCRYPT from libgcrypt 1.5.0 sets the variables
LIBGCRYPT_CPPFLAGS and LIBGCRYPT_LIBS with their proper
values, not GCRYPT_CPPFLAGS and GCRYPT_LIBS.
Florian Forster [Wed, 6 Mar 2013 07:15:35 +0000 (08:15 +0100)]
snort plugin: Replace the mmap() code with the tail-code from collectd.
This makes following along a file more I/O friendly, I hope. Also, we
don't need to do quite as much buffer processing because lines are
already split for us. Also, in the unlikely case that Snort is writing
the stats file more often than collectd reads it, this will pick up all
intermediate values.
Florian Forster [Sun, 24 Feb 2013 09:33:51 +0000 (10:33 +0100)]
src/utils_rrdcreate.c: Lock files to be created.
This works around an issue where RRDtool crashes due to two threads
trying to create the same file at the same time. This shouldn't happen
in normal operation, but an attacker could cause this, e.g. with
specially crafted network packets.
Florian Forster [Sat, 23 Feb 2013 11:28:39 +0000 (12:28 +0100)]
src/utils_rrdcreate.[ch]: Implement the srrd_create_async() function.
This new functionality, which is also exported by the rrdtool and
rrdcached plguins, allows to create new RRD files in the background.
This avoid blocking write threads on the RRD creation, when hundreds of
files need to be created.
Florian Forster [Wed, 20 Feb 2013 08:14:15 +0000 (09:14 +0100)]
snort plugin: Split the snort_read() function.
snort_read() handles the file opening / mmap part of the process.
snort_read_buffer() parses the buffer, splits the last line and calls
the submit function. This way cleaning up the FD and memory mapping is
easier in case of an error when parsing the file.
Dan Fandrich [Mon, 4 Feb 2013 23:02:17 +0000 (00:02 +0100)]
curl_xml plugin: Fix potential dereference of NULL pointer.
I managed to get collectd to segfault in a couple of places while
playing with it a bit. The first is in the curl_xml module when the
XPATH expression doesn't quite match the input. The crash occurs on line
407 when instance_node->nodeTab[0] is dereferenced. At this point, all
members of instance_node are 0, so dereferencing the array isn't a good
idea. This patch fixes the problem, although I'm not sure if this
particular case actually deserves its own error message.