shell编程之【zabbix自定义监控网卡流量脚本】

之前写了一篇文章主要介绍zabbix的搭建使用http://msiyuetian.blog.51cto.com/8637744/1705396

下面这篇文章主要介绍zabbix自定义监控网卡流量的脚本实现

前期准备



1、说明

server ip :192.168.0.115

client ip :192.168.0.114

2、开启服务

因为之前搭建过zabbix环境,这里就不重复了,直接开启服务端的所需服务:

[[email protected] ~]# /etc/init.d/httpd start

[[email protected] ~]# /etc/init.d/mysqld start

[[email protected] ~]# /etc/init.d/zabbix-server start

[[email protected] ~]# /etc/init.d/zabbix-agent start

然后在浏览器输入: http://192.168.0.115/zabbix,输入用户名密码后验证登入到zabbix主界面。

客户端也开启zabbix-agent服务:

[[email protected] ~]# /etc/init.d/zabbix-agent start

以下命令都在客户端执行



1、修改配置文件

[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf   //改动两个地方


UnsafeUserParameters=1

UserParameter=my.net.if[*], /usr/local/sbin/zabbix/net.sh $1 $2

说明:UserParameter用来自定义键值,(类似于net.if.in),自己写的脚本往往会有参数,所以需要加,这是固定写法,如果脚本压根就没有什么参数,那么这个就省了。逗号后面就是我们写的脚本的路径了,再后面就是要用到的参数,有几个就写几。

2、编写脚本

[[email protected] ~]# mkdir /usr/local/sbin/zabbix

[[email protected] ~]# vim /usr/local/sbin/zabbix/net.sh

#!/bin/bash
eth=$1
io=$2
net_file="/proc/net/dev"
if [ $2 == "in" ]
then
    n_new=`grep "$eth" $net_file|awk ‘{print $2}‘`
    n_old=`tail -1 /tmp/neti.log`
    n=`echo "$n_new-$n_old"|bc`
    d_new=`date +%s`
    d_old=`tail -2 /tmp/neti.log|head -1`
    d=`echo "$d_new-$d_old"|bc`
    if_net=`echo "$n/$d"|bc`
    echo $if_net
    date +%s>>/tmp/neti.log
    grep "$eth" $net_file|awk ‘{print $2}‘>>/tmp/neti.log
elif [ $2 == "out" ]
then
    n_new=`grep "$eth" $net_file|awk ‘{print $10}‘`
    n_old=`tail -1 /tmp/neto.log`
    n=`echo "$n_new-$n_old"|bc`
    d_new=`date +%s`
    d_old=`tail -2 /tmp/neto.log|head -1`
    d=`echo "$d_new-$d_old"|bc`
    if_net=`echo "$n/$d"|bc`
    echo $if_net
    date +%s>>/tmp/neto.log
    grep "$eth" $net_file|awk ‘{print $10}‘>>/tmp/neto.log
else
    echo 0
fi

说明:脚本的思路就是通过查看文件 /proc/net/dev 里面的数值,来计算实时网卡流量,其实我算的是一个平均值。分为进和出。如果这个脚本每隔1分钟执行一次,那么算出来的流量值就是1分钟的平均值。

3、修改权限

[[email protected] ~]# chmod a+x /usr/local/sbin/zabbix/net.sh

4、执行脚本前的操作

[[email protected] ~]# touch /tmp/net[io].log

[[email protected] ~]# date +%s >>/tmp/neti.log

[[email protected] ~]# grep eth0 /proc/net/dev |awk ‘{print $2}‘ >>/tmp/neti.log

[[email protected] ~]# date +%s >>/tmp/neto.log

[[email protected] ~]# grep eth0 /proc/net/dev |awk ‘{print $10}‘ >>/tmp/neto.log

[[email protected] ~]# chown zabbix  /tmp/net[io].log

[[email protected] ~]# /etc/init.d/zabbix-agent restart

5、执行脚本

[[email protected] ~]# /usr/local/sbin/zabbix/net.sh eth0 in   //

3                           

[[email protected] ~]# /usr/local/sbin/zabbix/net.sh eth0 out

2

6、检查脚本是否可用(在服务端执行)

[[email protected] ~]# zabbix_get -s 192.168.0.114 -p10050 -k "my.net.if[eth0,in]"

3

[[email protected] ~]# zabbix_get -s 192.168.0.114 -p10050 -k "my.net.if[eth0,out]"

2

7、在zabbix网页上配置

首先找到对应添加的主机,这里我用上篇文章做实验时候添加的主机,名为tpp,这里只修改以下几处:

添加eth0_in:


Configuration --> Hosts --> Items --> Create item

Name:eth0_net_in

Type: Zabbix agent

Key:my.net.if[eth0,in]

Update interval (in sec):30

Save

添加eth0_out:


Configuration --> Hosts --> Items --> Create item

Name:eth0_net_out

Type: Zabbix agent

Key:my.net.if[eth0,out]

Update interval (in sec):30

Save

然后我们在 Monitoring --> Latest data 找到对应的主机名,看到对应的项目

也可以点开右边的 Graph 查看图表形式。

时间: 2024-12-28 01:00:39

shell编程之【zabbix自定义监控网卡流量脚本】的相关文章

nagios 监控 网卡流量 脚本

#!/bin/bash # #Time     : 2014-06-23 #Author   : ftlynx #Function : use NET-SNMP get NIC traffic on nagios. Usage(){ echo "Usage: check_traffic.sh [options]" echo "     -H     Host IP." echo "     -P     net-snmp community string.

监控网卡流量

1 #!/bin/bash 2 #by zhangjia 3 #date:2019年2月12日14:11:14 4 #shell name:network_traffic.sh 5 #监控网卡流量 6 ##############################################333 7 while : 8 do 9 NETWORK_NAME="ens32" 10 time=`date +%F' '%T` 11 RX_before=`ifconfig ${NETWORK

zabbix自定义监控,监控网卡信息

上篇我记录了怎样自定义监控CPU<自定义监控项--监控CPU信息>,这里分享一下自定义监控网卡eth0,出战和入站流量. 自定义监控项,网卡信息 1.选择要监控的主机,按顺序打开Items ConfigurationèHostèItems 2.创建Item 3.配置Item信息 (1)监控网eth0进站流量 (2)选择应用集,Add添加保存Item (3)添加eth0进站流量监控项完成 4.通过克隆监控项配置eth0出站流量 (1)找到刚监控监控点击 (2)进入Item配置界面,下拉找到克隆.

在RedHa上安装MRTG监控网卡流量

http://os.51cto.com/art/201103/252149.htm 2011-03-30 15:05 张微波 phpchina 字号:T | T 在RedHa上安装MRTG监控网卡流量:MRTG是一个监控网络链路流量负载的工具软件,通过snmp协议得到设备的流量信息,以非常直观的形式显示流量负载.本文讲述的是在RedHa上安装MRTG监控网卡流量 AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验 在RedHat9上安装调试MRTG监控本机网卡流量 系统环

【Python运维脚本】Python监控网卡流量

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: [email protected]126.com #Python监控网卡流量 """ 1.实现原理:通过SNMP协议获取系统信息,再进行相应的计算和格式化,最后输出结果 2.特别注意:被监控的机器上需要支持snmp.yum install -y net-snmp*安装 """ #!/usr/bin/pytho

zabbix自定义监控实现思路以及自定义监控某个端口的连接数

一 zabbix自定义监控实现思路 我在前面有写到: zabbix3.x服务端安装和配置 zabbix3.x客户端安装和配置 zabbix监控memcached 实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是: 写一个脚本用于获取待监控服务的一些状态信息 在zabbix客户端的配置文件zabbix_agentd.conf中添加上自定义的"UserParameter",目的是方便zabbix调用我们上面写的那个脚本去获取待监控服务的信息 在zabbix服务端使用za

graphite,python监控网卡流量

#!/usr/bin/env python import sys,time from socket import socket def read_interface(in_file): with file(in_file) as f: return f.readlines()[2:] def set_interface(inter_msg): dic={} for i in xrange(len(inter_msg)): dic[inter_msg[i].split(":")[0].s

zabbix自定义监控mysql主从状态,并做邮件告警

 通过zabbix自定义监控mysql主从状态,并做邮件告警 分析: mysql主要是通过主从来提供安全性,一个完整的主从体系,就应该包括数据同步.开启二进制日志.全备.还有对Slave_IO_Running和Slave_SQL_Running两个线程的实时监测,并做告警,而zabbix监控软件就提供了很好的方法:对于zabbix这个监控软件,个人来说也是比较熟悉,现在的企业们都基本用的是zabbix软件来做系统的资源的监控,zabbix的强大不仅仅体现于,它自身自带的监控模板比较全面,而是通过

zabbix自定义监控脚本配置

实验环境 环境 IP 服务端 192.168.24.168 客户端 192.168.24.188 实验条件: zabbix监控服务器.客户端都已经部署完成,被监控主机已添加完成,zabbix监控运行正常.zabbix服务器设置邮箱报警运行正常. 实现目的: zabbix自定义监控客户端用户量,当用户量大于三个以上,会自动发送报警邮件到指定的邮箱. 实验步骤 1.修改客户端配置文件 [[email protected] ~]# vim /usr/local/etc/zabbix_agentd.co