Skip to content

Commit

Permalink
4.11
Browse files Browse the repository at this point in the history
Individual Exlude
  • Loading branch information
cpzengel authored Mar 26, 2024
1 parent ae5a89a commit bf46208
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions checkzfs.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
## GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

VERSION = 4.10
VERSION = 4.11

### for check_mk usage link or copy binary to check_mk_agent/local/checkzfs
### create /etc/check_mk/checkzfs ## the config file name matches the filename in check_mk_agent/local/
Expand Down Expand Up @@ -272,7 +272,7 @@ class zfscheck(object):
}
COLUMN_MAPPER = {}

def __init__(self,remote,source,sourceonly,legacyhosts,output,mail=None,prefix='REPLICA',debug=False,**kwargs):
def __init__(self,remote,source,sourceonly,legacyhosts,output,ignoreattr,mail=None,prefix='REPLICA',debug=False,**kwargs):
_start_time = time.time()
self.remote_hosts = remote.split(",") if remote else [""] if source and not sourceonly else [] ## wenn nicht und source woanders ... "" (also lokal) als remote
self.source_hosts = source.split(",") if source else [""] ## wenn nix dann "" als local
Expand All @@ -283,6 +283,7 @@ def __init__(self,remote,source,sourceonly,legacyhosts,output,mail=None,prefix='
self.print_debug(f"Version: {VERSION}")
self.prefix = prefix.strip().replace(" ","_") ## service name bei checkmk leerzeichen durch _ ersetzen
self.rawdata = False
self.ignoreattr = ignoreattr
self.mail_address = mail
self._overall_status = []
self.sortreverse = False
Expand Down Expand Up @@ -494,7 +495,7 @@ def _parse(self,data):
yield _match.groupdict()

def _call_proc(self,remote=None):
ZFS_ATTRIBUTES = "name,type,creation,guid,used,available,written,origin,com.sun:auto-snapshot,tv.sysops:checkzfs" ## wenn ändern dann auch regex oben anpassen
ZFS_ATTRIBUTES = f"name,type,creation,guid,used,available,written,origin,com.sun:auto-snapshot,{self.ignoreattr}" ## wenn ändern dann auch regex oben anpassen
### eigentlicher zfs aufruf, sowohl local als auch remote
zfs_args = ["zfs", "list",
"-t", "all",
Expand Down Expand Up @@ -611,7 +612,7 @@ def checkmk_output(self,data):
_written = _item.get("written","0")
_available = _item.get("available","0")
_used = _item.get("used","0")
if _status == -1: ## tv.sysops:checkzfs=ignore wollen wir nicht
if _status == -1: ## tv.sysops:checkzfs=ignore wollen wir nicht (ignoreattr)
continue
if self.maxsnapshots:
_warn = self.maxsnapshots[0]
Expand Down Expand Up @@ -768,6 +769,8 @@ def print_debug(self,msg,*args,**kwargs):
help=_("Nur Snapshot-Alter prüfen"))
_parser.add_argument("--mail",type=str,
help=_("Email für den Versand"))
_parser.add_argument("--ignoreattr",type=str,default="tv.sysops:checkzfs",
help=_("ZFS Attribut für ignore"))
_parser.add_argument("--config",dest="config_file",type=str,default="",
help=_("Config File"))
_parser.add_argument("--threshold",type=str,
Expand All @@ -794,7 +797,7 @@ def print_debug(self,msg,*args,**kwargs):
help=_("debug Ausgabe"))
args = _parser.parse_args()

CONFIG_KEYS="disabled|source|sourceonly|piggyback|remote|legacyhosts|prefix|filter|replicafilter|threshold|maxsnapshots|snapshotfilter|ssh-identity|ssh-extra-options"
CONFIG_KEYS="disabled|source|sourceonly|piggyback|remote|legacyhosts|prefix|filter|replicafilter|threshold|ignoreattr|maxsnapshots|snapshotfilter|ssh-identity|ssh-extra-options"
_config_regex = re.compile(f"^({CONFIG_KEYS}):\s*(.*?)(?:\s+#|$)",re.M)
_basename = os.path.basename(__file__).split(".")[0] ## name für config ermitteln aufgrund des script namens
_is_checkmk_plugin = os.path.dirname(os.path.abspath(__file__)).find("/check_mk_agent/local") > -1 ## wenn im check_mk ordner
Expand Down Expand Up @@ -908,3 +911,4 @@ def print_debug(self,msg,*args,**kwargs):
if args.debug:
raise
sys.exit(1)

0 comments on commit bf46208

Please sign in to comment.