问题描述
我想为我的check_MK的SNMP检查集成自定义参数。不幸的是,我没有找到文档,也不了解如何设置规则以适合我的检查。我总是收到错误消息:
#规则集“ checkgroup_parameters:defender_ft_stats_suspend”不存在。
我是否需要通过wato Web界面在check_MK中添加规则,还是需要修复代码? 谢谢。
/ opt / omd / sites / mysite / local / share / check_mk / checks / defender_ft_stats_suspend
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
# +------------------------------------------------------------------+
# | ____ _ _ __ __ _ __ |
# | / ___| |__ ___ ___| | __ | \/ | |/ / |
# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
# | | |___| | | | __/ (__| < | | | | . \ |
# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
# | |
# | copyright Mathias Kettner 2014 mk@mathias-kettner.de |
# +------------------------------------------------------------------+
#
# This file is part of Check_MK.
# The official homepage is at http://mathias-kettner.de/check_mk.
#
# check_mk 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 in version 2. check_mk is distributed
# in the hope that it will be useful,but WITHOUT ANY WARRANTY; with-
# out even the implied warranty of MERCHANTABILITY or fitness FOR A
# PARTIculaR PURPOSE. See the GNU General Public License for more de-
# tails. You should have received a copy of the GNU General Public
# License along with GNU Make; see the file copYING. If not,write
# to the Free Software Foundation,Inc.,51 Franklin St,Fifth Floor,# Boston,MA 02110-1301 USA.
factory_settings["defender_ft_stats_suspend_defaults"] = {
'ft_stats_suspend_tranfer_limits': (5,10),}
def inventory_defender_ft_stats_suspend(info):
inventory = []
for r in range(len(info)):
inventory.append(("",None))
return tuple(inventory)
...
reduced code
...
def check_defender_ft_stats_suspend(item,params,info):
global state,perfdata
warn = params['ft_stats_suspend_tranfer_limits'][0]
error = params['ft_stats_suspend_tranfer_limits'][1]
stats_suspend_tranfer = int(info[0][2])
if (error <= stats_suspend_tranfer):
state = 2
elif (warn <= stats_suspend_tranfer):
state = 1
else:
state = 0
perfdata = [('ft_stats_suspend_tranfer_limits',stats_suspend_tranfer,warn,error,100)]
output = 'Current suspend transfer: {0}\n'.format(stats_suspend_tranfer)
return (state,output,perfdata)
# This check works on all SNMP hosts
check_info["defender_ft_stats_suspend"] = {
'check_function': check_defender_ft_stats_suspend,'inventory_function': inventory_defender_ft_stats_suspend,'service_description': 'Defender FT stats suspend','snmp_info': ('.x.x.x.x.x.x',sorted(mibs_ft)),'group': 'defender_ft','default_levels_variable': 'defender_ft_stats_suspend_defaults','has_perfdata': True
}
/ opt / omd / sites / mysite / local / share / check_mk / web / plugins / wato / defender_ft_stats_suspend
#!/usr/bin/python
import cmk.utils.defines as defines
group = "checkparams"
subgroup_defender_ft = _("defender_ft_stats_suspend")
register_check_parameters(
subgroup_defender_ft,"defender_ft_stats_suspend",_("Defender FT Stats Suspend"),Dictionary(
elements=
[
('ft_stats_suspend_tranfer_limits',Tuple(
title=_('Suspend FT Transfer'),elements=[
Integer(title=_("Warning"),unit='',default_value=30),Integer(title=_("Critical"),default_value=20),]
),),],optional_keys=[],TextAscii(title = _("ascii title sm2")),match_type="dict",)
我将此代码段添加到: /etc/check_mk/conf.d/wato/rules.mk
checkgroup_parameters.setdefault('defender_ft_stats_suspend',[])
checkgroup_parameters['defender_ft_stats_suspend'] = [
( {'ft_stats_suspend_tranfer_limits': (50,60)},[],ALL_HOSTS ),] + checkgroup_parameters['defender_ft_stats_suspend']
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)