zoukankan      html  css  js  c++  java
  • check_mk自定义监控增加性能数据图形展示

    在nagios中可以实现性能图形展示,利用的是PNP4Nagios,check_mk当然也可以,而且很简单。

    这篇文章在前一篇文章《check_mk自定义监控实践之powershell》的基础之前,脚本稍作修改

    1、客户端process_top5.ps1

    $dp = (Get-Process) | select -First 5
    $ops = Get-WmiObject -Class Win32_OperatingSystem
    
    echo `<`<`<process_top5`>`>`>    #这个输出很重要,用来告诉check_mk服务端目标客户端有哪些监控项
    foreach($p in $dp){
        #输出进程名称及内存百分占比,这里为方便演示乘上50加大百分比
        Write-Host $p.name ("{0:0.0}" -f ($p.WorkingSet*50/$ops.TotalVisibleMemorySize))
    }

    2、监控端process_top5, 实际上只需要添加两行代码就可以实现 性能数据收集

    process_top5_default_values=(20,30)
    
    def inventory_process_top5(info):
       inventory = []
       for line in info:
          disk = line[0]
          field = float(line[1])
          inventory.append( (disk, "process_top5_default_values") )
    
       return inventory
    
    
    def check_process_top5(item,params,info):
            warn,crit = params
            for line in info:
                if (line[0]) == item :
                    celsius = float(line[1])
                    perfdata = [ ( "process mem", celsius, warn, crit ) ]  #表示每次check后收集相关数据
                    if celsius > crit:
                            return (2, "mem is %d %%" % celsius, perfdata)
                    elif celsius > warn:
                            return (1, "mem is %d %%" % celsius, perfdata)
                    else:
                            return (0, "mem is %d %%" % celsius, perfdata)
            return (3, "%s not found in agent output" % item)
    
    
    check_info["process_top5"] = {
        'check_function':            check_process_top5,
        'inventory_function':        inventory_process_top5,
        'service_description':       '%s',
        'has_perfdata':              True,      #打开收集性能数据开关
    }

    现在打开check_mk页面,可以看到相应监控项后面已经多了个 星星的图标,点击进去就是PNP4Nagios的性能图形展示

    3、check_mk还可以将实时的性能数据用图形很方便的展示在每一项的后面,即Perf-O-Meters,官方文档:http://mathias-kettner.de/checkmk_devel_agentbased.html

    就像上图中“Check_MK”项,为了实现这个可能需要写些脚本,不过check_mk本身已经有了不少样式的脚本,这里我们可以利用cpu的Perf-O-Meters脚本(因为都是百分比,所以可以偷懒了)。

    打开文件/usr/share/check_mk/web/plugins/perfometer/check_mk.py",找到perfometer_cpu_utilization函数,然后在底下添加一个perfometers项目

    def perfometer_cpu_utilization(row, check_command, perf_data):
        util = float(perf_data[0][1]) # is already percentage
        color = "#60f020"
        return "%.0f%%" % util, perfometer_linear(util, color)
    
    #perfometer_linear(perc, color)
    perfometers["check_mk-h3c_lanswitch_cpu"] = perfometer_cpu_utilization
    perfometers["check_mk-winperf_processor.util"] = perfometer_cpu_utilization
    perfometers["check_mk-netapp_cpu"] = perfometer_cpu_utilization
    perfometers["check_mk-cisco_cpu"] = perfometer_cpu_utilization
    perfometers["check_mk-juniper_cpu"] = perfometer_cpu_utilization
    perfometers["check_mk-brocade_mlx.module_cpu"] = perfometer_cpu_utilization
    perfometers["check_mk-process_top5"] = perfometer_cpu_utilization   #为process_top5添加perfometers功能

    重启web服务,然后就可以看到perfometers图了

  • 相关阅读:
    mvc EF SQL语句
    Android自适应屏幕大小和布局
    6263=1 这个等式是错的,只移动一个数字(不能动符号)变成正确的等式
    public static const int A=1;这段代码有错误么?错了.常量不能标记为static
    jquery的ajax全局事件和AJAX 请求正在进行时显示“正在加载”
    visual studio中javascript脚本智能感应
    使用Windows API获取和改变当前显示设置
    IP Helper API 使用方法
    Rundll32.exe使用方法大全
    WIN32 API编程枚举系统显示器
  • 原文地址:https://www.cnblogs.com/waiwofei/p/3810664.html
Copyright © 2011-2022 走看看