zabbix监控网卡流量

zabbix监控网卡流量

大家好,又见面了,我是全栈君。

1. 根据/proc/net/dev文件,获取网卡流量信息

wKioL1jIr5Gj8QO4AAAnstld0H8054.png

 

   说明:

   最左边的表示接口的名字,Receive表示收包,Transmit表示发包:

   bytes表示收发的字节数;

   packets表示收发正确的包量;

   errs表示收发错误的包量;

   drop表示收发丢弃的包量;

 


2. zabbix客户端,编辑脚本/tmp/net.sh,初始化环境

    内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/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
`   
# 流量值之差;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   
# 记录一个时间戳,放文件中,即记录d_new
    
grep 
"$eth" 
$net_file|
awk 
'{print $2}'
>>
/tmp/neti
.log   
# 将获取的流量值,放进时间戳的文件中,即记录n_new
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

    创建文件,赋予初始值:  

1
2
3
4
5
6
7
8
touch 
/tmp/neti
.log
chown 
zabbix  
/tmp/neti
.log
date 
+%s >>
/tmp/neti
.log
grep 
eth0 
/proc/net/dev 
|
awk 
'{print $2}' 
>>
/tmp/neti
.log
touch 
/tmp/neto
.log
chown 
zabbix  
/tmp/neto
.log
date 
+%s >>
/tmp/neto
.log
grep 
eth0 
/proc/net/dev 
|
awk 
'{print $10}' 
>>
/tmp/neto
.log


3. 客户端修改配置文件/etc/zabbix/zabbix_agentd.conf

    UnsafeUserParameters=1

    UserParameter=my.net.if[*], /tmp/shell/net.sh $1 $2



4. zabbix服务端测试

    zabbix_get -s 172.16.115.162 -p10050 -k “my.net.if[eth0,in]”

   wKioL1jIsQSCT93dAAALi80G_Eo440.png


5. 服务端web添加监控项,查看结果

 wKioL1jIsXqAvxMCAADm-rm8EJs183.png

wKioL1jIsbLgxLDKAACXwciav74029.png

wKiom1jIseKRq1L7AAC26dQ281o927.png










本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1906750,如需转载请自行联系原作者
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107915.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • datagridview 自定义格式_怎么用有效样式建立目录

    datagridview 自定义格式_怎么用有效样式建立目录GridView是很便利的数据控件,在MIS中的应用很广泛,其样式编写很简单,但是每次新增都要重新编写,工作很是烦琐,而且由于其本身的特性,样式并不好编写,最好的办法就是在单双行、Header、Pager、Footer等栏目引用单独的样式,如下:

    2025年11月23日
    4
  • 计算机网络的基本概念[通俗易懂]

    计算机网络的基本概念[通俗易懂]一:计算机网络的定义计算机网络的现代计算机技术与通信技术相互渗透,密切结合的产物,是随着社会对信息共享和信息传递的日益增强的需求而发展起来的,所谓计算机网络,就是利用通信设备和线路将地理位置不同的,

    2022年8月5日
    8
  • js 字符串截取(包含中英文)

    js 字符串截取(包含中英文)有一个项目中需要兼容ie6,在使用ztree中很难修改符合ie下面的字符截取样式,于是使用js方法来截取,字符串截取推荐使用: //截取字符串包含中文处理     //(串,长度,增加…)     functionsubString(str,len,hasDot){      varnewLength=0;    

    2022年6月6日
    57
  • gerrit用法

    gerrit用法

    2021年6月19日
    145
  • CSS——06扩展:高级

    CSS——06扩展:高级人生苦短,要学就只学有用的【前端教学-CSS-高阶技巧】CSS样式初始CSS高级技巧目标理解能说出元素显示隐藏最常见的写法能说出精灵图产生的目的能说出去除图片底侧空白缝隙的方法应用能写出最常见的鼠标样式能使用精灵图技术,这个技术比较重要能用滑动门做导航栏案例,这个技术比较重要1.元素的显示与隐藏目的让一个元素在页面中消失或者显示出来场景类似网站广告,当我们点击关闭就不见了,但是我们重新刷新页面,会重新出现!1.1display显示(重点)…

    2022年5月29日
    42
  • python自然语言处理情感分析_人工智能拥有感情

    python自然语言处理情感分析_人工智能拥有感情从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了CNN实现中文文本分类的过程,并与贝叶斯、决策树、逻辑回归、随机森林、KNN、SVM等分类算法进行对比。这篇文章将详细讲解通过自定义情感词典(大连理工词典)实现情感分析和情绪分类的过程,并与SnowNLP进行对比,为后续深度学习和自然语言处理(情感分析、实体识别、实体对齐、知识图谱构建、文本挖掘)结合做基础,希望对您有所帮助~

    2022年8月23日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号