简介

  公司有台路由设备,需要每天去核对用户量,查看信息等。为了避免重复的工作量,就通过zabbix来完成这个重复性的工作。
  先说下思路,首先要创建一个脚本,能从zabbix-server 或者zabbi-agent 远程到路由/交换机,通过脚本,获取到用户量的数据并存到zabbix-server或者zabbix-agent上,然后在通过zabbix监控获取到想要的信息。
 
废话不多少 直接上干货

脚本内容

1、通过服务器获取路由的信息

此脚本是通过服务器 ssh 登录到交换机/路由上,然后打印出查询信息,存到服务器的指定路径
我要获取到的是 'dis time all','dis int gig0/1/1','display access-user' 这个三个信息
cat inspection.py

#!/usr/bin/env python
# -*- coding: utf-8 -*- import pexpect
import time
import sys,os
import shutil def ssh_login(Host, Username, Password, Commands):
#ssh 登录到交换机/路由
ssh = pexpect.spawn('ssh %s@%s' %(Username, Host))
res = ssh.expect(['password:', 'continue connecting (yes/no)?'], timeout=5)
if res == 0:
ssh.sendline(Password)
elif res == 1:
ssh.sendline('yes')
ssh.expect('password:')
ssh.sendline(Password)
ssh.expect([finish,pexpect.TIMEOUT,pexpect.EOF])
for cmd in Commands:
print "finish....."
ssh.sendline(cmd)
for i in range(0,5):
ssh.sendline(' ') res = file(filepath,'wb')
ssh.logfile_read = res
ssh.sendline('quit')
ssh.read()
ssh.close()
res.close() def filename_change(filepath):
localtime=time.strftime('%Y%m%d%H%M',time.localtime(time.time()))
dirtime=time.strftime('%Y%m',time.localtime(time.time()))
filename=os.path.split(filepath)
filedir=filename[0]+'/'+dirtime
isExists=os.path.exists(filedir)
if not isExists:
os.makedirs(filedir)
filenewname=filename[1].split('.')
shutil.move(filepath, filedir)
os.chdir(filedir)
#os.rename(filename[1],filenewname[0]+'_'+localtime+'.'+filenewname[1]) if __name__=='__main__':
Host = '192.168.4.3'
Username = 'lenovoxj'
Password = 'Lenovo@123'
Commands = ['dis time all','dis int gig0/1/1','display access-user']
finish = '<HZ-YD-RT-LNS-1>'
filepath = '/home/data/xunjian/log/lns1hz.txt' ssh_login(Host, Username, Password, Commands)
#filename_change(filepath)
运行脚本,查看获取得到的信息是否正确
[root@hz-yd-sev-zabbix-1 log]# more lns1hz.txt
dis time all
Current time is 2018-09-29 09:00:55 Saturday <HZ-YD-RT-LNS-1>
<HZ-YD-RT-LNS-1>
<HZ-YD-RT-LNS-1>dis int gig0/1/1
GigabitEthernet0/1/1 current state : UP (ifindex: 9)
Line protocol current state : DOWN
Link quality grade : GOOD
Description: To:HZ-YD-RT-WW-1(0/1/1) via HZ-YD-LK-2(P1)
Route Port,The Maximum Transmit Unit is 1500
Internet protocol processing : disabled
IP Sending Frames' Format is PKTFMT_ETHNT_2, Hardware address is 506f-778c-1a9b
The Vendor PN is PT7420-81-1D-HW+
The Vendor Name is NEOPHOTONICS
Port BW: 10G, Transceiver max BW: 10G, Transceiver Mode: SingleMode
WaveLength: 1310nm, Transmission Distance: 10km
Rx Power: -2.98dBm, Warning range: [-15.003, 0.000]dBm
Tx Power: -2.92dBm, Warning range: [-5.999, 0.000]dBm
Loopback: none, LAN full-duplex mode, Pause Flowcontrol: Receive Enable and Send Enable
Last physical up time : 2018-07-04 19:13:49
Last physical down time : 2018-07-04 19:13:47
Current system time: 2018-09-29 09:00:55
Statistics last cleared:2018-07-03 17:48:46
Last 300 seconds input rate: 28785066 bits/sec, 4924 packets/sec
Last 300 seconds output rate: 8530159 bits/sec, 4894 packets/sec
Input peak rate 90891455 bits/sec, Record time: 2018-09-14 08:55:46
Output peak rate 24192822 bits/sec, Record time: 2018-09-18 16:16:26
Input: 7931483357369 bytes, 14623461505 packets
Output: 3121991957380 bytes, 16761231672 packets
Input:
Unicast: 14621812263 packets, Multicast: 1649239 packets
Broadcast: 3 packets, JumboOctets: 3391841 packets
CRC: 0 packets, Symbol: 0 packets
Overrun: 0 packets, InRangeLength: 0 packets
LongPacket: 0 packets, Jabber: 0 packets, Alignment: 0 packets
Fragment: 0 packets, Undersized Frame: 0 packets
RxPause: 0 packets
Output:
Unicast: 16759534570 packets, Multicast: 1697082 packets
Broadcast: 20 packets, JumboOctets: 1776413 packets
Lost: 0 packets, Overflow: 0 packets, Underrun: 0 packets
System: 0 packets, Overruns: 0 packets
TxPause: 0 packets
Local fault: normal, Remote fault: normal.
Last 300 seconds input utility rate: 0.28%
Last 300 seconds output utility rate: 0.08% <HZ-YD-RT-LNS-1>
<HZ-YD-RT-LNS-1>
<HZ-YD-RT-LNS-1>display access-user
------------------------------------------------------------------------------
Total users : 28494
IPv4 users : 28491
IPv6 users : 0
Dual-Stack users : 0
Lac users : 0
RUI local users : 0
RUI remote users : 0
Wait authen-ack : 1
Authentication success : 28493
Accounting ready : 46
Accounting state : 28445
Wait leaving-flow-query : 0
Wait accounting-start : 0
Wait accounting-stop : 0
Wait authorization-client : 0
Wait authorization-server : 0
------------------------------------------------------------------------------
Domain-name Online-user
------------------------------------------------------------------------------
default0 : 0
default1 : 0
default_admin : 1
huawei.com : 28491
------------------------------------------------------------------------------
The used CID table are :
Write failed: Broken pipe
 

2、zabbix获取服务器上的信息

我们这个脚本是配置到zabbix server 上的,所以吧监控项也配置到zabbix server上
 
名称:随意填写
类型:客户端
键值:vfs.file.contents[/home/data/xunjian/log/lns1hz]
#一定要是 [绝对路径]
信息类型:文本

添加监控项刷新等待

 

zabbix 监控交换机文本/日志信息的更多相关文章

  1. Zabbix监控交换机设置

    说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对交换机进行监控. 具体操作: 以下操作在被监控的交换机上进行,这里以Cisco交换机为例. 一.登录到Cisco交换机,开启snmp ...

  2. zabbix笔记_008 zabbix监控交换机路由器

    zabbix监控交换机路由器 要监控路由器交换机,需要使用到SNMP协议 SNMP是一个简单网络管理协议,他基于C/S模型实现的监控和管理. 服务器安装SNMP: yum -y install net ...

  3. zabbix监控路由器所有接口信息

    zabbix监控路由器所有接口信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1.首先在服务器端安装snmp工具 [root@bogon yinzhengjie]# yum - ...

  4. zabbix监控交换机

    zabbix可以通过snmp协议监控交换机 前提: 交换机需要开启snmp协议,通过snmpwalk 可以抓取到数据就可以了 snmpwalk -v 2c -c public *.*.*.* 1.创建 ...

  5. zabbix监控交换机、防火墙等网络设备

    zabbix3.4.4监控交换机/防火墙是非简单,只需知道交换机/防火墙的snmp密码,然后连接下自带或导入的snmp模板,就可以完成监控了.比如添加地址为172.10.11.5的交换机监控. 1)登 ...

  6. zabbix监控交换机状态

    1.在Zabbix中添加主机 输入名称.群组和交换机IP(交换机要开启snmp) 2.创建监控项 输入OID和其它信息(键值随便填,但是不能和系统内的键值重复)OID获取方法可查看上一篇文章:http ...

  7. zabbix监控web应用日志报警并发送消息到钉钉

    首先在钉钉上开启钉钉机器人功能 说明:自定义关键词是zabbix发送过来的消息内容必须含有你定义的ERROR或者error字段,否则消息无法发送过来 ip地址段:一般都是zabbix-server的I ...

  8. Zabbix监控Windows事件日志

    1.zabbix_agentd.win文件修改: LogFile=c:\zabbix\zabbix_agentd.log Server=1.16.2.4 ServerActive=1.16.2.4 H ...

  9. zabbix监控nginx日志状态码

    监控需求 监控Nginx常见的状态码并对其进行监控,对常见的错误状态码创建相对应的触发器以下按照分钟对数据进行抓取 Zabbix_Agentd创建监控脚本 1)创建脚本之前核对Nginx日志格式我这里 ...

随机推荐

  1. CSS3 拯救我的布局吧box-sizing

    一.CSS常见的两栏布局 如上图,是一个很简单的两栏布局,就是一个宽度为960px:并且页面居中显示,侧边栏栏宽度为220px:主内容宽度720px:两者有一个20px的间距,并且有页眉和页脚. 代码 ...

  2. P2444 [POI2000]病毒 AC自动机

    P2444 [POI2000]病毒 #include <bits/stdc++.h> using namespace std; ; struct Aho_Corasock_Automato ...

  3. 高版本Jenkins关闭跨站请求伪造保护(CSRF)

    前言 根据官网描述,Jenkins版本自2.204.6以来的重大变更有:删除禁用 CSRF 保护的功能. 从较旧版本的 Jenkins 升级的实例将启用 CSRF 保护和设置默认的发行者,如果之前被禁 ...

  4. Python 图像处理 OpenCV (4):图像算数运算以及修改颜色空间

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

  5. Spring @Required 注释

    @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个BeanInitializationExc ...

  6. 405 - 不允许用于访问此页的 HTTP 谓词的处理办法

    今天介绍的是针对访问html页面时出现此类错误的处理办法,如果你的问题页面是其他类型,可以参考如下信息: IIS 返回 405 - 不允许用于访问此页的 HTTP 谓词.终极解决办法!!!! 1.为什 ...

  7. thymeleaf将对象Model数据抛到HTML页面

    thymeleaf名称空间  <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymelea ...

  8. 【转】sql用逗号连接多张表对应哪个join?

    逗号连接查询(用where连接条件): select order.id, order.orderdate,employee.id,employee.name from order,employee w ...

  9. python pexpect总结

    基本使用流程 pexpect 的使用说来说去,就是围绕3个关键命令做操作: 首先用 spawn 来执行一个程序 然后用 expect 来等待指定的关键字,这个关键字是被执行的程序打印到标准输出上面的 ...

  10. 01 . Mysql简介及部署

    Mysql数据库简介 什么是数据? ​ 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材,数据是信息的表现形式和载体,可以是符号,文字,数字,语音,图 ...