forked from vazic/check_mk_plugins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
junos_srx_vpn
86 lines (80 loc) · 3.93 KB
/
junos_srx_vpn
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
# +------------------------------------------------------------------+
# | ____ _ _ __ __ _ __ |
# | / ___| |__ ___ ___| | __ | \/ | |/ / |
# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
# | | |___| | | | __/ (__| < | | | | . \ |
# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
# | |
# | Copyright Mathias Kettner 2012 mk@mathias-kettner.de |
# +------------------------------------------------------------------+
#
# This file is part of Check_MK.
# The official homepage is at http://mathias-kettner.de/check_mk.
#
# check_mk is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation in version 2. check_mk is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more de-
# ails. You should have received a copy of the GNU General Public
# License along with GNU Make; see the file COPYING. If not, write
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
#Fix for 64-bit oid value
def fix_junos_srx_vpn_highspeed(info):
for line in info:
if type(line[3]) == str: # not yet converted
line[3] = saveint(line[3]) * 1000000
def inventory_junos_srx_vpn(info):
fix_junos_srx_vpn_highspeed(info)
vpn_only_info = []
for x in info:
name, type = x[1:3]
if 'st' in name and type == '53':
#Changing ifType to pass if_inventory_porttypes check in if.include
x[2] = '6'
vpn_only_info.append(x)
return inventory_if_common(vpn_only_info)
def check_junos_srx_vpn(item, params, info):
fix_junos_srx_vpn_highspeed(info)
return check_if_common(item, params, info)
check_info['junos_srx_vpn'] = (check_junos_srx_vpn, "VPN interface %s", 1, inventory_junos_srx_vpn)
check_includes['junos_srx_vpn'] = [ "if.include" ]
checkgroup_of['junos_srx_vpn'] = "if"
check_default_levels['junos_srx_vpn'] = "if_default_levels"
snmp_info['junos_srx_vpn'] = \
( ".1.3.6.1.2.1", [
"2.2.1.1", # ifIndex 0
"2.2.1.2", # ifDescr 1
"2.2.1.3", # ifType 2
"31.1.1.1.15", # ifHighSpeed .. 1000 means 1GBit
"2.2.1.8", # ifOperStatus 4
"31.1.1.1.6", # ifHCInOctets 5
"31.1.1.1.7", # ifHCInUcastPkts 6
"31.1.1.1.8", # ifHCInMulticastPkts 7
"31.1.1.1.9", # ifHCInBroadcastPkts 8
"2.2.1.13", # ifInDiscards 9
"2.2.1.14", # ifInErrors 10
"31.1.1.1.10", # ifHCOutOctets 11
"31.1.1.1.11", # ifHCOutUcastPkts 12
"31.1.1.1.12", # ifHCOutMulticastPkts 13
"31.1.1.1.13", # ifHCOutBroadcastPkts 14
"2.2.1.19", # ifOutDiscards 15
"2.2.1.20", # ifOutErrors 16
"2.2.1.21", # ifOutQLen 17
"31.1.1.1.18", # ifAlias 18
"2.2.1.6", # ifPhysAddress 19
] )
# check if number of network interfaces (IF-MIB::ifNumber.0) is at least 2
snmp_scan_functions['junos_srx_vpn'] = \
lambda oid: oid("1.3.6.1.2.1.1.2.0") in [
".1.3.6.1.4.1.2636.1.1.1.2.26",
".1.3.6.1.4.1.2636.1.1.1.2.28",
".1.3.6.1.4.1.2636.1.1.1.2.34",
".1.3.6.1.4.1.2636.1.1.1.2.35",
".1.3.6.1.4.1.2636.1.1.1.2.49",
".1.3.6.1.4.1.2636.1.1.1.2.58",
]