diff options
author | Archit Sharma <arcsharm@redhat.com> | 2016-08-12 17:07:29 +0530 |
---|---|---|
committer | Bryn M. Reeves <bmr@redhat.com> | 2017-01-17 17:19:19 +0000 |
commit | 8e63b8e5b1bb907685e2debd169e3e87c360f76b (patch) | |
tree | b71dccee494854e114dc330f95ccd787e6f74811 | |
parent | 414651b60943c9abece8a51e3db151c0813d51db (diff) | |
download | sos-8e63b8e5b1bb907685e2debd169e3e87c360f76b.tar.gz |
[collectd] new plugin: collectd
New module for collecting active plugins info & configurations in collectd.
Resolves: #866
Signed-off-by: Archit Sharma <arcsharm@redhat.com>
-rw-r--r-- | sos/plugins/collectd.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/sos/plugins/collectd.py b/sos/plugins/collectd.py new file mode 100644 index 00000000..a458371a --- /dev/null +++ b/sos/plugins/collectd.py @@ -0,0 +1,54 @@ +# Copyright (C) 2016 Archit Sharma <archit.sh@redhat.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +import re +from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin + + +class Collectd(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): + ''' + Collectd config collector + ''' + plugin_name = "collectd" + profiles = ('services', 'webserver') + + def setup(self): + self.add_copy_spec([ + '/etc/collectd.conf', + '/etc/collectd.d/*.conf', + ]) + + p = re.compile('^LoadPlugin.*') + with open("/etc/collectd.conf") as f: + for line in f: + if p.match(line): + self.add_alert("Active Plugin found: %s" % + line.split()[-1]) + + def postproc(self): + # add these to protect_keys if need be: + # "Port", "[<]*Host", + protect_keys = [ + "Password", "User", + "[<]*URL", "Address" + ] + regexp = r"((?m)^[#]*\s*(%s)\s* \s*)(.*)" % "|".join(protect_keys) + self.do_path_regex_sub( + "/etc/collectd.d/*.conf", + regexp, r'\1"*********"' + ) + self.do_file_sub("/etc/collectd.conf", regexp, r'\1"*********"') + +# vim: set et ts=4 sw=4 : |