当前位置: 首页 > wzjs >正文

天河建设网站企业站长之家网站模板

天河建设网站企业,站长之家网站模板,海西网站建设,网站空间商推荐监控脚本开发帮助手册 如果您具备一定的采集脚本编写能力,在我们的平台上,您可以发挥它的最大价值! 本节主要讲解如何自己编写监控脚本监控目标设备 必备写脚本的基本技术:shell 或者 python3 脚本验证的服务器必须已安装&…

监控脚本开发帮助手册

如果您具备一定的采集脚本编写能力,在我们的平台上,您可以发挥它的最大价值!

本节主要讲解如何自己编写监控脚本监控目标设备

必备写脚本的基本技术:shell 或者 python3

脚本验证的服务器必须已安装:python3,net-snmp-utils

  • 功能介绍

通过自己编写一个监控脚本,实现对目标设备的定制化监控。

  • 脚本开发示例

脚本相关名称解释:

  1. 监控系统如何识别脚本返回报警标识码,脚本返回的固定标识码如下:

0:表示监控指标正常状态

1:表示监控指标处于警告状态

2:表示监控指标处于严重状态

3:表示监控指标处于未知状态

  1. 监控系统如何识别脚本返回的报警数据:

当脚本返回相关状态标识码前,先打印相关信息即可,具体可看后续的示例。

  1. 脚本宏变量的定义格式为:$_SERVICE + 自定义名称 + $

举例如定义一个账号名称的宏变量: $_SERVICEACCOUNT$

  1. 监控系统全局常用宏变量标识及解释:

$HOSTNAME$:此值取自监控目标设备定义中的设备名称

$_HOSTSNMPCOMMUNITY$:此值取自监控目标设备定义中SNMP团体名称

$_HOSTSNMPVERSION$:此值取自监控目标设备定义中SNMP版本

$HOSTADDRESS$:此值取自监控目标设备定义中管理IP

示例1:使用shell语言编写一个简单的监控脚本

目标:采集目标linux服务器的主机名称

目标IP地址:127.0.01

目标服务器的snmp团体名:public

要求:目标服务器必须启动snmp服务并配置团体名称为:public,监控服务器必须可以访问到目标服务器的udp 161端口

      第一步:写一个监控脚本

脚本名称:check_hostname.sh

      脚本内容:

#!/bin/bash

# 简单示例:通过snmp采集操作系统的主机名称

# 脚本输出数字,监控系统根据数字识别报警状态: 0:正常,1:警告,2:严重,3:未知

# 脚本传递参数

ip=$1

comm=$2

# 定义snmp采集命令

out=`snmpwalk -v 2c -c ${comm} ${ip} SNMPv2-MIB::sysName`

if [ $? -eq 0 ];then

    result=$(echo $out | cut -d '=' -f 2 | awk -F':' '{print $2}'|tr -d ' ')

    echo 主机名称:$result

    exit 0

else:

    echo "命令执行失败"

exit 1

第二步:脚本编写完成后,进行功能验证

脚本解释:当前脚本是通过snmpwalk命令进行采集,所以当前主机需要已安装:net-snmp-utils

执行命令如下:

./check_hostname.sh 127.0.0.1 public

输出:主机名称:2f69f32b507d

第三步:验证完毕后,保存到容器脚本目录中并进行授权,命令如下:

docker cp check_hostname.sh gm-app:/dh3/plugins/

docker exec -i gm-app chmod 775 /dh3/plugins/check_hostname.sh

docker exec -i gm-app chown root:dh3 /dh3/plugins/check_hostname.sh

至此,一个监控脚本定制化准备完毕,接下来直接到监控平台的【CMDB-采集配置管理-检查命令配置】新建一条检查命令,命令行脚本名称为: check_hostname.sh

示例2:使用python3语言编写一个高级的监控脚本

目标:采集目标linux服务器的内存使用率,并具有报警和性能视图功能

目标IP地址:127.0.0.1

目标服务器的snmp团体名:public

报警阀值:80,90

要求:目标服务器必须启动snmp服务并配置团体名称为:public,监控服务器必须可以访问到目标服务器的udp 161端口

      第一步:编写一个监控脚本

脚本名称:check_memory.py

      脚本内容:

#!/usr/bin/python3

import subprocess

import sys

########定义SNMP函数

def get_snmp(ip,commu,oid):

    '''

    执行snmpwalk采集任务

    '''

    snmp_string='''snmpwalk -v 2c -c '{0}' '{1}' '{2}' '''.format(commu,ip,oid)

    snmp_list = subprocess.getoutput(snmp_string)

    return snmp_list

try:

    host_info = sys.argv

    ip = host_info[1]

    comm = host_info[2]

    warning = host_info[3]

    critical = host_info[4]

    # 获取总物理内存

    resp = get_snmp(ip, comm, 'UCD-SNMP-MIB::memTotalReal.0')

    total_memory = resp.split('INTEGER:')[1].strip().split()[0]

    # 获取可用物理内存

    resp = get_snmp(ip, comm, 'UCD-SNMP-MIB::memAvailReal.0')

    available_memory = resp.split('INTEGER:')[1].strip().split()[0]

    # 计算已使用的内存

    used_memory = int(total_memory) - int(available_memory)

    # 计算内存使用率

    memory_usage = '%d' % int((used_memory / int(total_memory)) * 100)

    if memory_usage < warning:

        print('OK 内存使用率:%s%%|内存使用率=%s%%;%s;%s;0;100' % (memory_usage,memory_usage,warning,critical))

        sys.exit(0)

    elif warning <= memory_usage <= critical:

        print('Warning 内存使用率:%s%%|内存使用率=%s%%;%s;%s;0;100' % (memory_usage,memory_usage,warning,critical))

        sys.exit(1)

    else:

        print('Critical 内存使用率:%s%%|内存使用率=%s%%;%s;%s;0;100' % (memory_usage,memory_usage,warning,critical))

        sys.exit(2)

except Exception as e:

    print('Unknown 内存使用率:监控脚本未采集到目标设备的内存数据')

    sys.exit(3)

脚本报警块解释:此python3脚本通过snmp采集目标设备的内存当前使用率,我们设定了告警阀值2个,一个实一般告警阀值(warning),一个实严重告警阀值(critical),运行脚本后当采集到的数据小于warning值,即为服务正常,如果采集到的数据大于warning并小于critical,即为输出一般告警,如果采集到的数据大于critical,即为输出严重告警,当没有采集到数据或者其他错误,均输出未知状态。

脚本性能视图块解释:

print('OK 内存使用率:%s%%|内存使用率=%s%%;%s;%s;0;100' % (memory_usage,memory_usage,warning,critical))

涉及性能视图代码通过管道符分隔:内存使用率=%s%%;%s;%s;0;100' % (memory_usage,memory_usage,warning,critical)

以下分段解释

       内存使用率:性能视图的监控目标点

       分号分隔的第一列变量替换为:memory_usage %%:

             memory_usage:当前监控指标的监控值

             %%:当前监控指标的单位(百分号:%)

       分号分隔的第二列变量替换为:warning:

             Warning:警告值(可选)

       分号分隔的第三列变量替换为:critical:

             critical:严重值(可选)

       分号分隔的第四列和第五列为:最小值和最大值(可选)

      

       第二步:脚本功能验证

脚本解释:当前脚本是通过snmpwalk命令进行采集,然后对采集到的数据进行结果分析,并打印对应的输出结果,所以当前主机需要已安装:net-snmp-utils, python3

假设监控目标主机为:127.0.0.1 目标团体名称为:public 警告阀值:80,严重阀值:90 执行命令如下:

./check_memory.py 127.0.0.1 public 80 90

输出:Critical 内存使用率:97%|内存使用率=97%;80;90;0;100

      第三步:验证完毕后,保存到容器脚本目录中并进行授权,命令如下

docker cp check_memory.py gm-app:/dh3/plugins/

docker exec -i check_memory.py 775 /dh3/plugins/check_memory.py

docker exec -i check_memory.py root:dh3 /dh3/plugins/check_memory.py

至此,一个高级的监控脚本定制化准备完毕,接下来直接到监控平台的【CMDB-采集配置管理-检查命令配置】新建一条检查命令,命令行脚本名称为: check_memory.py

http://www.dtcms.com/wzjs/423534.html

相关文章:

  • wordpress更新计划泉州百度seo
  • wordpress文章发布到专题深圳搜索优化排名
  • php抽奖网站源码鸡西网站seo
  • 网站建设包括什么深圳市昊客网络科技有限公司
  • 宝安led行业网站建设seo深圳培训班
  • 装修设计公司加盟武汉百度推广seo
  • 做网站联盟国外b站推广网站
  • 网站主机与服务器今日新闻联播
  • flash网站制作单选框和复选框ui组件网站搭建步骤
  • 网站 邮件系统建设招标中国新闻
  • 网站构造下拉列表怎么做济南网站制作平台
  • 东莞网站建设优化企业网络推广是干嘛的
  • 淘宝属于什么类型的网站广州抖音推广
  • 浏览器怎么打开网站服务器连接游戏推广渠道有哪些
  • 嘉兴企业网站建设推广百度一下你就知道官页
  • 做餐饮在环保局网站备案电脑优化软件排行榜
  • 网站建设合同 附件aso优化的主要内容为
  • 网站建设验收内容西安网络推广优化培训
  • 湛江疫情最新消息seo实战指导
  • 晋中做网站公司爱站网关键词挖掘工具熊猫
  • wordpress只有我可以看优化设计六年级下册语文答案
  • 公司网站建设合同交印花税吗销售人员培训课程有哪些
  • 江西南昌电子商务网站建设公司百度seo查询工具
  • 基于web的网站设计与实现淘宝seo搜索引擎原理
  • 网站方案范文北京网讯百度科技有限公司
  • 宜春网站开发怎么在百度上添加自己的店铺地址
  • 云空间的网站如何做刷粉网站推广
  • 杭州外贸网站建设网站推广策划思路
  • 制作公司网站备案需要提供什么资料外链发布论坛
  • 便宜做网站价格百度排行榜