Cacti 自定义脚本监控

*************************************************

脚本内容:

[[email protected] scripts]# cat get_snmp_network_data.sh

#!/bin/bash

# ========================================================================================

# goldengate health plugin for Nagios

#

# Written by : dd

# Release : 1.0.0

# Creation date : 2015-02-11

# Description : Nagios plugin (script) to check uptime .

# This script has been designed and written on Linux System.

#

# USAGE :./get_snmp_network_data.sh -v 2c -c sinolife 172.28.0.42 .1.3.6.1.4.1.15227.1.5.1.1.1.0

#

# Exemple: ./get_snmp_network_data.sh

#

#

# HISTORY :

# Release | Date | Authors | Description

# --------------+---------------+----------------------+-----------------------------------

# 1.0.0 | 2015.05.18 | dd | Create the script

# -----------------------------------------------------------------------------------------

# NOTICE:

#-----------------------------------------------------------------------------------------

# You should have the root Permissions ,You can use sudo to realize .

# -----------------------------------------------------------------------------------------

# Nagios return codes

WARNING=

CRITICAL=

BRIEF=0

SILENT=0

#定义 nagios返回的状态变量

STATE_OK=0

STATE_WARNING=1

STATE_CRITICAL=2

STATE_UNKNOWN=3

# 插件描述信息

PROGNAME="check_network_data.sh"

RELEASE="Revision 1.0.0"

AUTHOR="(c) 2015 dudong"

# Functions plugin usage

# 插件的使用方法函数

print_release() {

echo "$RELEASE $AUTHOR"

}

print_usage() {

echo ""

echo "$PROGNAME $RELEASE - check network script for Nagios"

echo ""

echo "Usage: get_snmp_network_data.sh"

echo ""

echo " -com COMMUNITY"

echo ""

echo " -i IPADDR"

echo ""

echo " -o OID"

echo ""

echo " -w warning"

echo ""

echo " -c critical"

echo ""

echo " -h Show this page"

echo ""

echo ""

echo " -v check the version"

echo "Usage: $PROGNAME"

echo "Usage: $PROGNAME --help"

echo ""

exit 0

}

print_help() {

print_usage

echo ""

echo "This plugin will check network "

echo ""

exit 0

}

# 传递参数

# process args

while [ ! -z "$1" ]; do

case $1 in

-com) shift; COMMUNITY=$1 ;;

-i) shift; IPADDR=$1 ;;

-o) shift; OID=$1 ;;

-w) shift; WARNING=$1 ;;

-c) shift; CRITICAL=$1 ;;

-h) show_help; exit 1 ;;

esac

shift

done

#获取数据

#UPDATE=$( uptime | awk ‘{print $3}‘)

MESSAGE_1=$(snmpwalk -v 2c -c $COMMUNITY $IPADDR $OID | awk ‘{print $5}‘)

MESSAGE=$(echo $MESSAGE_1 | awk -F‘[".]‘ ‘{print $1}‘)

echo " data:$MESSAGE"

#判断

#if [[ $MESSAGE -ge $CRITICAL ]]; then

# echo "Critical - data is $MESSAGE | data=$MESSAGE"

# exit $STATE_CRITICAL

#

#elif [[ $MESSAGE -ge $WARNING ]]; then

# echo "Warning - data is $MESSAGE | data=$MESSAGE"

# exit $STATE_WARNING

#

#else

# echo "OK - data is $MESSAGE | data=$MESSAGE"

# exit $STATE_OK

#

#fi

#

#

You have mail in /var/spool/mail/root

[[email protected] scripts]#

把脚本上传至cacti的screpts目录下:/var/www/html/scripts

注意修改脚本权限

测试:[[email protected] scripts]# ./get_snmp_network_data.sh -com sinolife -i 172.28.0.41 -o .1.3.6.1.4.1.15227.1.5.1.1.2.0

data:57

脚本可以根据nagios的nrpe脚本进行修改,但cacti的输出结构更简单。

变量:值 变量:值

即可!!

创建数据输入方法:

/bin/bash <path_cacti>/scripts/get_snmp_network_data.sh -com <community> -i <hostname> -o <OID>

输入字段有3个,两个可以"从主机派生",从主机派生,需要选择一下。

不能从主机派生,则需要自己输入:

输出字段一个:

创建数据模板:查询cpu的OID,红色部分注意修改。

其他的memery, session 一样方法,只是oid不同

创建图形模板:

对象:图形类型等

创建主机,然后添加图形即可。

查看数据源:

图形文件:

/var/www/html/rra/61/664.rrd

检查是否有值传进来:

[[email protected] log]# rrdtool lastupdate /var/www/html/rra/61/664.rrd

getsessiondata

1452834361: 1221

You have mail in /var/spool/mail/root

[[email protected] log]#

[[email protected] log]#

值1221 已传入rrd图形。

查看图形:

实时图形:

时间: 2024-11-13 17:19:42

Cacti 自定义脚本监控的相关文章

Cacti自定义脚本,监测Docker信息(Script/Command方式)

一 环境背景 监控主机A:192.168.24.231:被监控主机B:192.168.24.233 A/B主机,通过公私钥建立ssh连接 [操作B主机时不需要输入密码,详见笔记:http://app.yinxiang.com/l/ACQDOta4_v1IEr_WI6aufZVFEux9o1ou6ts/] 二 监控目标及测试结果 主机 A监测主机B上以下信息: 正在运行的容器数量 (黄) 已经定义的容器数量 (绿) 崩溃的容器数量        (红) 三 整体步骤 B主机采集docker容器信息

zabbix 自定义脚本监控配置之网卡

注:要添加自定义脚本监控,必须升级zabbix agent版本至2.0.0以上, 一:配置步骤 1. 完成自定义监控脚本的编写(windows或linux脚本) 脚本要求: (1)既然是监控,那必然要有输出结果值(字符串,数字皆可) (2)必须要求zabbix用户有执行权限,当然可以直接设置所有用户都有执行权限(chmod 777 脚本文件) (3)若脚本需要传入参数,按照参数传入的顺序,在脚本中可用$1-$9来引用传入的参数 2 找到zabbix agent的配置文件zabbix_agentd

zabbix自定义脚本监控pps(Packets per Second,包转发率)

一:介绍 网络的性能通常用吞吐率(throughput)这个指标来衡量.常用的网络吞吐率的单位有:PPS(即每秒发送多少个分组数据包).BPS(Bytes Per Second;即每秒发送多少字节).bPS (bits Per Second;即每秒发送多少比特).TPS(TransactionsPer Second;即每秒完成多少次发送过程). pps:(包每秒)包转发率标志了交换机转发数据包能力的大小.一般交换机的包转发率在几十Kpps到几百Mpps.包转发速率是指交换机每秒可以转发多少百万个

zabbix3.4上使用自定义脚本监控公网tcp端口时延情况

我们搭建了***,主要是利用公网地址上tcp端口映射进行连接,从而达到访问的目的.但是有时候,网络不稳定,或者是公网地址震荡异常,导致***连接异常,所以我们很有必要监控tcp端口的连接的时延情况,当时延大于1000ms时,会严重的影响到使用体验,这时就要排查网络原因了. 如果能利用zabbix监控tcp端口的情况,并统计,当达到一定阈值的时候就告警,方便及时排查. 一.思路     1.linux上,可以使用nmap程序扫描端口之外,还可以统计大致的扫描结果,可以利用每次扫描端口的耗时来衡量网

cacti自定义脚本和图形模板

cacti自带的模板,很多时候都无法满足我们的监控需求,这时候就要求我们会自定义监控,来满足实际的监控需求,以下只是一个简单的案例,大家可学习其中的过程即可. 写一个脚本,用来实现监控无线AP的客户端连接数量. 脚本的位置放在<path_cacti>/scripts/collect_ap1600_clients.sh 注意,脚本的输出格式:clients:xxxx 添加数据输入方法 3.添加数据模板 4.添加图形模板 5.主机添加该数据源 6.主机添加图形模板 7.效果展示

zabbix通过orabbix和自定义脚本监控oracle数据库

由于公司要上oracle数据库,需要对这个东西惊醒监控,于是去网上淘资料,发现有一个套件orabbix监控oracle的效果还不错,于是拿来试验了一下.orabbix是由JAVA写的一个套件,需要在oracle服务器上面安装JAVA环境才能运行.这里为了简便,可以使用yum -y install java来安装JAVA环境. 安装完java环境之后可以通过下面命令来检测是否安装成功: [[email protected] ~]# java -version java version "1.7.0

nagios自定义脚本监控

客户端IP:192.168.1.11 服务端IP:192.168.1.12 目的:检查eip用户的java进程是否存在 客户端配置 脚本名:check_pid.sh 脚本如下: #! /bin/bash si=`ps -ef|grep java|grep eip|wc -l` if [ $si -eq 1 ];then echo "status ok" exit 0 else echo "The pro is down,plaese check!" exit 1 f

nagios自定义脚本监控&lt;检查eip用户的java进程是否存在 &gt;

客户端IP:192.168.1.11 服务端IP:192.168.1.12 目的:检查eip用户的java进程是否存在 客户端配置 脚本名:check_pid.sh 脚本如下: #! /bin/bash si=`ps -ef|grep java|grep eip|wc -l` if [ $si -eq 1 ];then echo "status ok" exit 0 else echo "The pro is down,plaese check!" exit 1 f

Nagios 利用NSClient++的check_nrpe方式使用自定义脚本监控windows

分类 NsClient++来监控windows主机有三种方式:check_nt.check_nrpe.nsca.check_nt自带很多功能,但是扩展性差,check_nrpe可以通过执行自己定义的脚本做到很好地扩展(官方推荐). 原理 监控端通过check_nrpe把要监控的指令发送给被监控端,被监控端在本机执行监控任务,并把执行的结果发送回被监控端. 实现 以NSClient++0.3为例,示例的功能是监控某个进程是否运行. 1. 编辑NSClient配置文件NSC.ini,去掉以下几行前面