博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix 批量添加聚合图形
阅读量:6086 次
发布时间:2019-06-20

本文共 5226 字,大约阅读时间需要 17 分钟。

环境为centos 脚本要在centos zabbix服务器上运行,zabbix server上运行

1.先把脚本部署到zabbix客户端,把脚本保存为nic.sh 存放路径确保zabbix可以访问

#!/bin/sh function NIC {    #变量    #网卡名    NIC=`ifconfig | grep -v ':Link' | grep -E 'Link|flags' | awk '{print $1}' | grep -vE 'lo|^$'`    #统计网卡个数    Num=`ifconfig | grep -v ':Link' | grep -E 'Link|flags' | awk '{print $1}' | grep -vE 'lo|^$' | wc -l`    #新布局的网卡名后面有冒号需要去掉    sed=`ifconfig | grep -v ':Link' | grep -E 'Link|flags' | awk '{print $1}' | grep -vE 'lo|^$'| sed 's/://g'`    #网卡总数减1    Less=`expr $Num - 1`    #用于修改key结尾的自增变量    add="0"    #存放"判断ifconfig是否为新布局"值    judgment=''    #判断ifconfig是否为新布局    if [ $add == 0 ]    then        HWaddr=`ifconfig $i | grep -E 'HWaddr'`        judgment=`echo $?`    fi    #替换NIC变量    if [ $judgment != 0 ]    then        NIC=`echo $sed| sed 's/ /\n/g'`    fi    #写key开头参数    echo -e "{
"'\n\t''"data":[' #收集ifconfig,网卡名,mac,IP,子网掩码,网关 for i in $NIC; do echo -e '\t\t''{
' if [ $judgment == 0 ] then #新布局 if [ $add == $Less ] then #当为最后一块网卡,则替换结尾逗号 ifconfig $i | grep -E 'HWaddr|inet addr|Bcast|Mask' | sed -e ':a;$!N;s/\n/ /;ta;P;D' | sed -e 's/inet addr:/inet addr /g' -e 's/Bcast:/Bcast /g' -e 's/Mask:/Mask /g' | awk '{print "\t\t\t\"{#IFNMSG}\":\""$1"\":\""$5"\":\""$8"\":\""$12"\":\""$10"\"},"}'|sed -e 's/,/]}/g' else ifconfig $i | grep -E 'HWaddr|inet addr|Bcast|Mask' | sed -e ':a;$!N;s/\n/ /;ta;P;D' | sed -e 's/inet addr:/inet addr /g' -e 's/Bcast:/Bcast /g' -e 's/Mask:/Mask /g' | awk '{print "\t\t\t\"{#IFNMSG}\":\""$1"\":\""$5"\":\""$8"\":\""$12"\":\""$10"\"},"}' fi else #旧布局 if [ $add == $Less ] then #当为最后一块网卡,则替换结尾逗号 ifconfig $i | grep -v inet6 | grep -E 'flags|inet|netmask|broadcast|ether' | sed -e ':a;$!N;s/\n/ /;ta;P;D' | sed -e 's/:://g' -e 's/inet addr:/inet addr /g' -e 's/Bcast:/Bcast /g' -e 's/Mask:/Mask /g' | awk '{print "\t\t\t\"{#IFNMSG}\":\"""'"$i"'""\":\""$12"\":\""$6"\":\""$8"\":\""$10"\"},"}'|sed -e 's/,/]}/g' else ifconfig $i | grep -v inet6 | grep -E 'flags|inet|netmask|broadcast|ether' | sed -e ':a;$!N;s/\n/ /;ta;P;D' | sed -e 's/:://g' -e 's/inet addr:/inet addr /g' -e 's/Bcast:/Bcast /g' -e 's/Mask:/Mask /g' | awk '{print "\t\t\t\"{#IFNMSG}\":\"""'"$i"'""\":\""$12"\":\""$6"\":\""$8"\":\""$10"\"},"}' fi fi #用于修改key结尾的自增变量 let add+=1 done}$1

chown zabbix:zabbix /usr/local/zabbix/scripts/nic.sh

chmod +x /usr/local/zabbix/scripts/nic.sh

修改zabbix_agentd.conf最后行添加UserParameter=nic.nic,/usr/local/zabbix/scripts/nic.sh NIC; 

重启zabbix agent

 

2.打开zabbix>配置>主机>选择群组    将页面的内容全部复制到服务器的文档上

3.执行 grep -Ev 'Windows|停用的' 文档名 | egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}\: [0-9]{5}' | sed -e 's#: #\t#g' | sort -t'.' -k1,1n -k2,2n -k3,3n -k4,4n > zabbix-ip-port

4.保存下面的代码然后执行,过滤出 ip和zabbix端口

#!/bin/bash#避免已存在,先执行删除rm -rf sh-ip-portwhile read linkdoip=`echo "$link" | awk -F '\t' '{print $1}'`port=`echo "$link" | awk -F '\t' '{print $2}'`#显示当前ip #echo ${ip} #调用客户端的脚本nic=`/usr/local/zabbix/bin/zabbix_get -s$ip -p$port -k"nic.nic" | grep -E "填写需要加到聚合图形的ip段,多个ip段 | 分隔符隔开,如: 172.17.16|172.16.16" | awk -F '\"' '{print $4}' | awk -F ':' '{print $1}' | sed -e 's/"//g' | uniq`a=`echo $?`    for i in $nic;    do        if [ i != "" ];        then            echo -e $ip"\t$i" >> sh-ip-port        fi    donedone < zabbix-ip-port

5.保存下面的代码然后执行,生成聚合图形的xml文件

 
#!/bin/bash#避免已存在,先执行删除 rm -rf sh-ip-port.xml #提示输入组名read -t 30 -p "group name:" namex=0y=0while read linkdoip=`echo "$link" | awk -F '\t' '{print $1}'`port=`echo "$link" | awk -F '\t' '{print $2}'` #显示ip与xy值#echo ${ip}#echo x=$x#echo y=$y #可以自定义width与height值cat >> sh-ip-port.xml << EOF                
0
500
100
$x
$y
1
1
0
0
0
0
0
Network traffic on $port
$ip
3
EOF   #指定一行只有3个 if [ $x -eq 2 ];then x=0 let y=$y+1; else let x=$x+1; fidone < sh-ip-port #由于第一次的列值为0但是zabbix导入时必须为总数,y值小一位所以这里要加1let y=$y+1; #添加文件头sed -i "1i
\n
\n\t
3.0
\n\t
2016-04-14T02:53:19Z
\n\t
\n\t
\n\t\t
$name
\n\t\t
3
\n\t\t
$y
\n\t\t
" sh-ip-port.xml#添加结尾 echo -e '\t\t
\n\t
\n\t
\n
' >>sh-ip-port.xml

6.将sh-ip-port.xml文件从服务器下载,然后到zabbix聚合图形导入即可

转载于:https://www.cnblogs.com/cainiaoit/p/7478890.html

你可能感兴趣的文章
Windows Phone 7 利用计时器DispatcherTimer创建时钟
查看>>
程序员最喜爱的12个Android应用开发框架二(转)
查看>>
vim学习与理解
查看>>
DIRECTSHOW在VS2005中PVOID64问题和配置问题
查看>>
MapReduce的模式,算法以及用例
查看>>
《Advanced Linux Programming》读书笔记(1)
查看>>
zabbix agent item
查看>>
一步一步学习SignalR进行实时通信_7_非代理
查看>>
AOL重组为两大业务部门 全球裁员500人
查看>>
字符设备与块设备的区别
查看>>
为什么我弃用GNOME转向KDE(2)
查看>>
Redis学习记录初篇
查看>>
爬虫案例若干-爬取CSDN博文,糗事百科段子以及淘宝的图片
查看>>
Web实时通信技术
查看>>
第三章 计算机及服务器硬件组成结合企业运维场景 总结
查看>>
IntelliJ IDEA解决Tomcal启动报错
查看>>
默认虚拟主机设置
查看>>
php中的短标签 太坑人了
查看>>
[译] 可维护的 ETL:使管道更容易支持和扩展的技巧
查看>>
### 继承 ###
查看>>