zabbix监控交换机⽂本⽇志信息
简介
  公司有台路由设备,需要每天去核对⽤户量,查看信息等。为了避免重复的⼯作量,就通过zabbix来完成这个重复性的⼯作。
  先说下思路,⾸先要创建⼀个脚本,能从zabbix-server 或者zabbi-agent 远程到路由/交换机,通过脚本,获取到⽤户量的数据并存到zabbix-server或者zabbix-agent上,然后在通过zabbix监控获取到想要的信息。
废话不多少直接上⼲货
脚本内容
1、通过服务器获取路由的信息
此脚本是通过服务器 ssh 登录到交换机/路由上,然后打印出查询信息,存到服务器的指定路径
我要获取到的是 'dis time all','dis int gig0/1/1','display access-user' 这个三个信息
#!/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 = pect(['password:', 'continue connecting (yes/no)?'], timeout=5)
if res == 0:
ssh.sendline(Password)
elif res == 1:
ssh.sendline('yes')
ssh.sendline(Password)
for cmd in Commands:
print ""
ssh.sendline(cmd)
for i in range(0,5):
ssh.sendline('')
res = file(filepath,'wb')
ssh.logfile_read = res
ssh.sendline('quit')
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=ists(filedir)
if not isExists:
os.makedirs(filedir)
filenewname=filename[1].split('.')
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/'
ssh_login(Host, Username, Password, Commands)
#filename_change(filepath)
运⾏脚本,查看获取得到的信息是否正确
[root@hz-yd-sev-zabbix-1 log]#
dis time all
Current time is2018-09-2909: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 is1500
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-0419:13:49
Last physical down time : 2018-07-0419:13:47
Current system time: 2018-09-2909:00:55
Statistics last cleared:2018-07-0317: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-1408:55:46
Output peak rate 24192822 bits/sec, Record time: 2018-09-1816: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
drop table if exists admin
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 : 28491
------------------------------------------------------------------------------
The used CID table are :
Write failed: Broken pipe
2、zabbix获取服务器上的信息
我们这个脚本是配置到zabbix server 上的,所以吧监控项也配置到zabbix server上
名称:随意填写
类型:客户端
键值:ts[/home/data/xunjian/log/lns1hz]
#⼀定要是 [绝对路径]
信息类型:⽂本
添加监控项刷新等待

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。