Code backup
This commit is contained in:
2026-05-10 16:59:01 +02:00
commit 368d6fafea
796 changed files with 315310 additions and 0 deletions
@@ -0,0 +1,7 @@
Copyright 2022 Kalarumeth - https://github.com/Kalarumeth
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,172 @@
# Check WatchGuard
<img src="https://img.shields.io/badge/Dev by-Kalarumeth-blueviolet?style=flat-square" alt="Dev"> <img src="https://img.shields.io/badge/Code-Bash-orange?style=flat-square&logo=GNU Bash&logoColor=orange" alt="Bash"> <img src="https://img.shields.io/badge/License-MIT-blue?style=flat-square" alt="MIT License">
The following script is used to monitor the basic functions of the WatchGuard firewall via snmpwalk scripts and are processed to provide easy-to-read data. It can be run separately or integrated into Icinga2 as a monitoring plugin.
**Important**: *snmpwalk command is required for script to run correctly*
# Update Note
## 1.3 - Code improvements
+Improved the code
+Add check host alive before snmp
+Merge InfoIps, InfoGav and IpsecTunnelNum to one check
<details>
<summary>1.2 - Fix</summary>
+Fix Warning and Critical state
+Add ability to set limits for waring and critical on percentage
+Add ability to set maximum Active Connections for ActiveConns
+Set default variable warning(80)
+Set default variable critical(90)
+Set default variable maximum active connections(3300000)
</details>
<details>
<summary>1.1 - Code improvements</summary>
+Improved the code
+Add Check Memory
+Add Check Info Ips Service
+Removed unnecessary code
</details>
<details>
<summary>1.0 - Release</summary>
+Release Script
</details>
# Installation
1. Download the script and give it privilages for run
```
curl -LJO https://raw.githubusercontent.com/Kalarumeth/Check-WatchGuard/main/check_watchguard.sh
```
2. Move to Icinga Plugin Dir
```
Default location: /usr/lib/nagios/plugins
```
3. Add command to Icinga
```
object CheckCommand "check_watchguard" {
import "plugin-check-command"
command = [ PluginDir + "/check_watchguard.sh" ]
arguments += {
"-ac" = {
order = 4
value = "$watchguard_ac$"
}
"-c" = {
order = 0
required = true
value = "$snmp_community$"
}
"-cr" = {
order = 3
value = "$crit$"
}
"-h" = {
order = 1
required = true
value = "$address$"
}
"-t" = {
order = 5
required = true
value = "$watchguard_type$"
}
"-wa" = {
order = 2
value = "$warn$"
}
}
vars.snmp_community = "public"
}
```
# Functions
The Script is designed to monitor the following firewall functions:
- **[ac] ActiveConns:**
Active connections in use and total number of active connections;
```
OK! Active Connections used: 0.16%
Current Active Connections: 5.412 of 3.300.000
```
- **[cpu] Cpu:**
Cpu load;
```
OK! CPU used: 2%
```
- **[data] Transfer:**
Information of file size send and recive.
```
Send 1479 GB / Recive 1982 GB
WatchGuard transfer info:
Total Data Send: 1479 GB 1855886728 Pkg
Total Data Recive: 1982 GB 2466423320 Pkg
```
- **[info] Info:**
Information of Active VPN, Intrusion Prevention Service and Gateway Antivirus Service
```
VPN active: 7
Gateway Antivirus Service: gav_version:2022020
Last Update: Fri, Feb 04 2022 11:54:03 AM
Intrusion Prevention Service: ips_version:18.196
Last Update: Thu, Feb 03 2022 06:53:47 PM
```
- **[ram] Memory:**
Ram load;
```
OK! RAM used: 2,67 / 3,77 GB (71,00 %)
RAM free: 1,10 GB (29,13 %)
```
# How it work
Method to compose the execution string:
./check_watchguard.sh -c <SNMP community> -h <host> [-wa <value> -cr <value> -ac <value>] -t <object>
### OPTIONS:
```
-c --community SNMP v2 community string with Read access.
Default is: public.
-h --host [REQUIRED OPTION] Host name or IP address to check.
Default is: localhost.
-wa --allert-wa Defines the threshold for Warning.
Default is: 80.
-cr --allert-cr Defines the threshold for Critical.
Default is: 90.
-ac --activeconns Defines the threshold for Max ActiveConnection.
Default is: 3300000
-t --type [REQUIRED OPTION] Field for select element to check on WatchGuard Device.
{ ac | cpu | data | info | ram }.
-H --help Show script help.
-V --version Show script version.
```
# Credits
## Author
Kalarumeth - https://github.com/Kalarumeth
## GitHub Supporters
kelups
## License
MIT License - Copyright 2022 Kalarumeth
@@ -0,0 +1,275 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check WatchGuard"
AUTHOR="Kalarumeth"
VERSION="v1.4"
URL="https://github.com/Kalarumeth/Check-WatchGuard"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
SNMPVERSION="2c"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
# - Range Variables
WA=80
CR=90
maxActiveConns=3300000
# - OID
WatchGuard.OIDS() {
# - wgSystemStatisticsMIB
OID_wgSystemTotalSendBytes="1.3.6.1.4.1.3097.6.3.8"
OID_wgSystemTotalRecvBytes="1.3.6.1.4.1.3097.6.3.9"
OID_wgSystemTotalSendPackets="1.3.6.1.4.1.3097.6.3.10"
OID_wgSystemTotalRecvPackets="1.3.6.1.4.1.3097.6.3.11"
OID_wgSystemCpuUtil1="1.3.6.1.4.1.3097.6.3.77"
OID_wgSystemCurrActiveConns="1.3.6.1.4.1.3097.6.3.80"
# - wgMem
OID_wgMemTotalReal="1.3.6.1.4.1.2021.4.5.0"
OID_wgMemAvailReal="1.3.6.1.4.1.2021.4.6.0"
# - wgIpsecStats
OID_wgIpsecTunnelNum="1.3.6.1.4.1.3097.6.5.1.1"
# - wgInfoSystem
OID_wgInfoGavService="1.3.6.1.4.1.3097.6.1.3.0"
OID_wgInfoIpsService="1.3.6.1.4.1.3097.6.1.4"
}
# - MAIN CODE
Source.HostAlive() {
for host in $HOST_NAME; do
ping -c1 -W1 -q $host &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$host is unreachable"
exit $STATE_UNK
fi
done
}
Source.SNMP() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oe -c $COMMUNITY $HOST_NAME $1
}
# - WatchGuard Health Monitoring
WatchGuard.Main() {
Source.HostAlive
case $1 in
ac)
WatchGuard.ActiveConns ;;
cpu)
WatchGuard.Cpu ;;
data)
WatchGuard.TransferData ;;
info)
WatchGuard.Info ;;
ram)
WatchGuard.Ram ;;
*)
echo "Unknown Monitoring: $1"
Help.WatchGuard
STATE=$STATE_UNK ;;
esac
}
WatchGuard.GetData() {
WatchGuard.OIDS
case $1 in
data)
totalSendGb=$(Source.SNMP $OID_wgSystemTotalSendBytes | cut -d " " -f 4 | awk '{ byte = $1 /1024/1024/1024; print byte }' | xargs printf "%.0f")
totalRecvGb=$(Source.SNMP $OID_wgSystemTotalRecvBytes | cut -d " " -f 4 | awk '{ byte = $1 /1024/1024/1024; print byte }' | xargs printf "%.0f")
totalSendPackets=$(Source.SNMP $OID_wgSystemTotalSendPackets | cut -d " " -f 4)
totalRecvPackets=$(Source.SNMP $OID_wgSystemTotalRecvPackets | cut -d " " -f 4) ;;
cpu)
cpuPercentage=$(Source.SNMP $OID_wgSystemCpuUtil1 | cut -d " " -f 4 | awk '{ cpu = $1 /100; print cpu }') ;;
ram)
rawRamAll=$(Source.SNMP $OID_wgMemTotalReal | cut -d " " -f 4)
rawRamFree=$(Source.SNMP $OID_wgMemAvailReal | cut -d " " -f 4)
valueRamAllGb=$(echo "$rawRamAll" | awk '{ gbyte = $1 /1024/1024; print gbyte }' | xargs printf "%.2f")
valueRamFreeGb=$(echo "$rawRamFree" | awk '{ gbyte = $1 /1024/1024; print gbyte }' | xargs printf "%.2f")
printPercetageRam=$(echo "$rawRamFree" "$rawRamAll" | awk '{ ramp = $1 /$2 *100; print ramp }' | xargs printf "%.2f")
printPercetageRamUsed=$(echo "$printPercetageRam" | awk '{ ramup = 100 - $1; print ramup }')
rangePercetageRam=$(echo "$printPercetageRamUsed" | cut -d "." -f1)
rawRamUsed=$(echo "$rawRamAll" "$rawRamFree" | awk '{ used = $1 -$2; print used }')
valueRamUsedGb=$(echo "$rawRamUsed" | awk '{ gbyte = $1 /1024/1024; print gbyte }' | xargs printf "%.2f") ;;
ac)
rawActiveConns=$(Source.SNMP $OID_wgSystemCurrActiveConns | cut -d " " -f 4)
rawPercetageActiveConns=$(echo "$rawActiveConns $maxActiveConns" | awk '{ perc = $1 /$2 *100; print perc; }')
rangeActiveConns=$(echo "$rawPercetageActiveConns" | cut -d "." -f 1 )
printPercetageActiveConns=$(echo "$rawPercetageActiveConns" | xargs printf "%.2f")
printValueActiveConns=$(echo "$rawActiveConns" | perl -pe 's/(\d{1,3})(?=(?:\d{3}){1,5}\b)/\1./g')
printMaxActiveConns=$(echo "$maxActiveConns" | perl -pe 's/(\d{1,3})(?=(?:\d{3}){1,5}\b)/\1./g') ;;
info)
ipsecNum=$(Source.SNMP $OID_wgIpsecTunnelNum | cut -d " " -f 4)
rawInfoGav=$(Source.SNMP $OID_wgInfoGavService)
InfoGavVers=$(echo "$rawInfoGav" | cut -d "<" -f 2 | cut -d ">" -f 1)
InfoGavData=$(echo "$rawInfoGav" | cut -d "(" -f 2 | cut -d ")" -f 1)
rawInfoIps=$(snmpwalk -v $SNMPVERSION -c $COMMUNITY $HOST_NAME $OID_wgInfoIpsService 2>&1 | sed 's/Timeout: No Response.*/Idle/')
if [ "$rawInfoIps" != "Idle" ] ; then
rawInfoIps=$(echo $rawInfoIps)
fi
InfoIpsVers=$(echo "$rawInfoIps" | cut -d "<" -f 2 | cut -d ">" -f 1)
InfoIpsData=$(echo "$rawInfoIps" | cut -d "(" -f 2 | cut -d ")" -f 1) ;;
esac
}
WatchGuard.TransferData() {
WatchGuard.GetData data
printf "%s\n" "Send $totalSendGb GB / Recive $totalRecvGb GB"
printf "%s\n" "WatchGuard transfer info:"
printf "%s\t%s\t%s\n" "Total Data Send:" "$totalSendGb GB" "$totalSendPackets Pkg"
printf "%s\t%s\t%s\n" "Total Data Recive:" "$totalRecvGb GB" "$totalRecvPackets Pkg"
}
WatchGuard.Cpu() {
WatchGuard.GetData cpu
for value in $cpuPercentage; do
case 1 in
$(($value <= $WA-1)))
echo "OK! CPU used: $value% | cpu_usage=$value%" && exit $STATE_OK ;;
$(($value <= $CR-1)))
echo "WARRING! CPU used: $value | cpu_usage=$value%%" && exit $STATE_WARN ;;
$(($value > $CR-1)))
echo "CRITICAL! CPU used: $value% | cpu_usage=$value%" && exit $STATE_CRIT ;;
esac
done
}
WatchGuard.Ram() {
WatchGuard.GetData ram
case 1 in
$(($rangePercetageRam <= $WA-1)))
printf "%s\n" "OK! RAM used: $valueRamUsedGb / $valueRamAllGb GB ($printPercetageRamUsed%)" "RAM free: $valueRamFreeGb GB ($printPercetageRam%) | ram_used=$printPercetageRamUsed% ram_free=$printPercetageRam%" && exit $STATE_OK ;;
$(($rangePercetageRam <= $CR-1)))
printf "%s\n" "WARRING! RAM used: $valueRamUsedGb / $valueRamAllGb GB ($printPercetageRamUsed%)" "RAM free: $valueRamFreeGb GB ($printPercetageRam%) | ram_used=$printPercetageRamUsed% ram_free=$printPercetageRam%" && exit $STATE_WARN ;;
$(($rangePercetageRam > $CR-1)))
printf "%s\n" "CRITICAL! RAM used: $valueRamUsedGb / $valueRamAllGb GB ($printPercetageRamUsed%)" "RAM free: $valueRamFreeGb GB ($printPercetageRam%) | ram_used=$printPercetageRamUsed% ram_free=$printPercetageRam%" && exit $STATE_CRIT ;;
esac
}
WatchGuard.ActiveConns() {
WatchGuard.GetData ac
case 1 in
$(($rangeActiveConns <= $WA-1)))
printf "%s\n" "OK! Active Connections used: $printPercetageActiveConns%" "Current Active Connections: $printValueActiveConns of $printMaxActiveConns | active_connections=$printPercetageActiveConns%" && exit $STATE_OK ;;
$(($rangeActiveConns <= $CR-1)))
printf "%s\n" "WARRING! Active Connections used: $printPercetageActiveConns%" "Current Active Connections: $printValueActiveConns of $printMaxActiveConns | active_connections=$printPercetageActiveConns%" && exit $STATE_WARN ;;
$(($rangeActiveConns > $CR-1)))
printf "%s\n" "CRITICAL! Active Connections used: $printPercetageActiveConns%" "Current Active Connections: $printValueActiveConns of $printMaxActiveConns | active_connections=$printPercetageActiveConns%" && exit $STATE_CRIT ;;
esac
}
WatchGuard.Info() {
WatchGuard.GetData info
printf "%s\t%s\n\n" "VPN active:" "$ipsecNum"
printf "%s\n%s\n\n" "Gateway Antivirus Service: $InfoGavVers" " Last Update: $InfoGavData"
printf "%s\n" "Intrusion Prevention Service: $InfoIpsVers" " Last Update: $InfoIpsData"
}
# - HELP
Help.Main() {
echo "Script bash for moninitoring WatchGuard Health"
echo ''
Help.Usage
echo ''
Help.Option
echo ''
Help.WatchGuard
echo ''
Help.Support
echo ''
Help.Info
echo ''
exit $STATE_UNK
}
Help.Usage() {
printf "%s\n" "Method to compose the execution string:" "./$APPNAME -c <SNMP community> -h <host> [-wa <value> -cr <value> -ac <value>] -t <object>"
}
Help.Option() {
printf "%s\n" "OPTIONS:"
printf "%s\t%s\t%s\n\t\t\t%s\n" "-c" "--community" "SNMP v2 community string with Read access." " Default is: $COMMUNITY."
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-h" "--host" "Host name or IP address to check." " Default is: $HOST_NAME."
printf "%s\t%s\t%s\n\t\t\t%s\n" "-wa" "--allert-wa" "Defines the threshold for Warning." " Default is: $WA."
printf "%s\t%s\t%s\n\t\t\t%s\n" "-cr" "--allert-cr" "Defines the threshold for Critical." " Default is: $CR."
printf "%s\t%s\t%s\n\t\t\t%s\n" "-ac" "--activeconns" "Defines the threshold for Max ActiveConnection." " Default is: $maxActiveConns."
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-t" "--type" "[REQUIRED OPTION] Field for select element to check on WatchGuard Device." " { ac | cpu | data | info | ram }"
printf "%s\t%s\t\t%s\n" "-H" "--help" "Show script help."
printf "%s\t%s\t%s\n" "-V" "--version" "Show script version."
}
Help.WatchGuard() {
printf "\n%s\n\n" "WatchGuard Check Function"
printf "%s\t%s\n\n" "Check" "Description"
printf "%s\t%s\n" "ac" "Monitoring Active Connection."
printf "%s\t%s\n" "cpu" "Monitoring Cpu load."
printf "%s\t%s\n" "data" "Monitoring Data Tranfer."
printf "%s\t%s\n" "info" "Monitoring Ip Sec, Info Gav Service and Info Ips Service."
printf "%s\t%s\n" "ram" "Monitoring RAM load."
}
Help.Support(){
printf "%s\n" "GitHub Supporters:"
printf "\t%s\n" "kelups"
}
Help.Info() {
printf "%s\t%s\t%s\n" "INFO:" "$NAME" "$VERSION" "" "$AUTHOR" "$URL"
}
# - COMMAND LINE ENCODER
# - Prompt
while test -n "$1"; do
case "$1" in
--host|-h)
HOST_NAME=$2
shift ;;
--comunity|-c)
COMMUNITY=$2
shift ;;
--activeconns|-ac)
maxActiveConns=$2
shift ;;
--allert-wa|-wa)
WA=$2
shift ;;
--allert-cr|-cr)
CR=$2
shift ;;
--type|-t)
WatchGuard.Main $2
shift ;;
--help|-H)
Help.Main ;;
--version|-V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
Help.Main
exit $STATE_UNK ;;
esac
shift
done
exit $STATE
@@ -0,0 +1,108 @@
#! /bin/sh
# Variable
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
MAX=100
BASEURL=$(curl -s 'http://palesp02.pal.local/getValue')
# Main Code
CheckTemperature(){
COMMAND=$(echo $BASEURL | python3 -mjson.tool | grep Temperature | cut -d " " -f 10 | cut -d "." -f 1)
COMMANDS=$(echo $BASEURL | python3 -mjson.tool | grep Temperature | cut -d " " -f 10 | cut -d "," -f 1)
RESAULT=$(echo "$COMMANDS °C")
case 1 in
$(($COMMAND<= $WARNING))) echo "OK! Temperature is: $RESAULT"
exit $STATE_OK ;; # 0-79% Ok
$(($COMMAND<= $CRITICAL))) echo "WARNING! Temperature is: $RESAULT"
exit $STATE_WARN ;; # 80-89% Warring
$(($COMMAND<= $MAX))) echo "CRITICAL! Temperature is: $RESAULT"
exit $STATE_CRIT ;; # 90-100% Critical
*) echo "UNKNOWN! Temperature not found"
exit $STATE_UNK ;;
esac
}
CheckHumidity(){
COMMAND=$(echo $BASEURL | python3 -mjson.tool | grep Humidity | cut -d " " -f 10 | cut -d "." -f 1)
COMMANDS=$(echo $BASEURL | python3 -mjson.tool | grep Humidity | cut -d " " -f 10 | cut -d "," -f 1)
RESAULT=$(echo "$COMMANDS %")
case 1 in
$(($COMMAND<= $WARNING))) echo "OK! Humidity is: $RESAULT"
exit $STATE_OK ;; # 0-79% Ok
$(($COMMAND<= $CRITICAL))) echo "WARNING! Humidity is: $RESAULT"
exit $STATE_WARN ;; # 80-89% Warring
$(($COMMAND<= $MAX))) echo "CRITICAL! Humidity is: $RESAULT"
exit $STATE_CRIT ;; # 90-100% Critical
*) echo "UNKNOWN! Temperature not found"
exit $STATE_UNK ;;
esac
}
CheckPressure(){
COMMAND=$(echo $BASEURL | python3 -mjson.tool | grep Pressure | cut -d " " -f 10 | cut -d "," -f 1)
RESAULT=$(echo "$COMMAND hPa")
echo "Pressure is: $RESAULT"
exit $STATE_OK
}
while test -n "$1"; do
case "$1" in
--type|-t)
CHECK_TYPE=$2
shift
;;
--warning|-w)
WARNING=$2
shift
;;
--critical|-c)
CRICICAL=$2
shift
;;
*)
echo "Unknown argument: $1"
print_usage
exit $STATE_UNK
;;
esac
shift
done
# - Type Check
if [ ! -z $CHECK_TYPE ]; then
case "$CHECK_TYPE" in
Temperature)
CheckTemperature;;
Humidity)
CheckHumidity;;
Pressure)
CheckPressure;;
esac
else
echo "Command incomplete!"
echo ''
print_help
STATE=$STATE_UNK
fi
+7
View File
@@ -0,0 +1,7 @@
Copyright 2022 Kalarumeth - https://github.com/Kalarumeth
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+99
View File
@@ -0,0 +1,99 @@
CD-SNMP-MIB::memTotalReal.0 = INTEGER: 457656 kB 1.3.6.1.4.1.2021.4.5 RAM TOT
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 332428 kB 1.3.6.1.4.1.2021.4.11 RAM FREE
UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 27 1.3.6.1.4.1.2021.11.10 CPU LOAD
UCD-SNMP-MIB::snmperrErrorFlag.0 = INTEGER: noError(0) 1.3.6.1.4.1.2021.101.100
UCD-SNMP-MIB::snmperrErrMessage.0 = STRING: 1.3.6.1.4.1.2021.101.101
1.3.6.1.4.1.21317.1.3.1.2
SNMPv2-SMI::enterprises.21317.1.3.1.2.1 = STRING: "51.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.2 = STRING: "24.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.3 = STRING: "34.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.6 = STRING: "23.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.7 = STRING: "27.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.8 = STRING: "41.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.9 = STRING: "35.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.10 = STRING: "31.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.11 = STRING: "31.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.12 = STRING: "26.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.13 = STRING: "10080.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.14 = STRING: "10080.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.15 = STRING: "10220.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.16 = STRING: "10080.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.17 = STRING: "10080.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.18 = STRING: "10080.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.19 = STRING: "11.920"
SNMPv2-SMI::enterprises.21317.1.3.1.2.20 = STRING: "5.020"
SNMPv2-SMI::enterprises.21317.1.3.1.2.21 = STRING: "3.361"
SNMPv2-SMI::enterprises.21317.1.3.1.2.22 = STRING: "4.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.23 = STRING: "1.300"
SNMPv2-SMI::enterprises.21317.1.3.1.2.24 = STRING: "1.219"
SNMPv2-SMI::enterprises.21317.1.3.1.2.25 = STRING: "1.235"
SNMPv2-SMI::enterprises.21317.1.3.1.2.26 = STRING: "5.129"
SNMPv2-SMI::enterprises.21317.1.3.1.2.27 = STRING: "3.310"
SNMPv2-SMI::enterprises.21317.1.3.1.2.28 = STRING: "0.855"
SNMPv2-SMI::enterprises.21317.1.3.1.2.29 = STRING: "0.893"
SNMPv2-SMI::enterprises.21317.1.3.1.2.30 = STRING: "0.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.31 = STRING: "1.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.32 = STRING: "1.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.33 = STRING: "51.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.34 = STRING: "46.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.36 = STRING: "58.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.37 = STRING: "19.000"
SNMPv2-SMI::enterprises.21317.1.3.1.2.38 = STRING: "1.000"
1.3.6.1.4.1.21317.1.3.1.13
SNMPv2-SMI::enterprises.21317.1.3.1.13.1 = STRING: "CPU Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.2 = STRING: "System Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.3 = STRING: "Peripheral Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.6 = STRING: "NIC Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.7 = STRING: "VRMCpu Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.8 = STRING: "VRMSoc Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.9 = STRING: "VRMABCD Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.10 = STRING: "VRMEFGH Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.11 = STRING: "DIMMABCD Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.12 = STRING: "DIMMEFGH Temp"
SNMPv2-SMI::enterprises.21317.1.3.1.13.13 = STRING: "FAN1"
SNMPv2-SMI::enterprises.21317.1.3.1.13.14 = STRING: "FAN2"
SNMPv2-SMI::enterprises.21317.1.3.1.13.15 = STRING: "FAN3"
SNMPv2-SMI::enterprises.21317.1.3.1.13.16 = STRING: "FAN4"
SNMPv2-SMI::enterprises.21317.1.3.1.13.17 = STRING: "FAN5"
SNMPv2-SMI::enterprises.21317.1.3.1.13.18 = STRING: "FAN6"
SNMPv2-SMI::enterprises.21317.1.3.1.13.19 = STRING: "12V"
SNMPv2-SMI::enterprises.21317.1.3.1.13.20 = STRING: "5VCC"
SNMPv2-SMI::enterprises.21317.1.3.1.13.21 = STRING: "3.3VCC"
SNMPv2-SMI::enterprises.21317.1.3.1.13.22 = STRING: "VBAT"
SNMPv2-SMI::enterprises.21317.1.3.1.13.23 = STRING: "VDDCR"
SNMPv2-SMI::enterprises.21317.1.3.1.13.24 = STRING: "VMEMABCD"
SNMPv2-SMI::enterprises.21317.1.3.1.13.25 = STRING: "VMEMEFGH"
SNMPv2-SMI::enterprises.21317.1.3.1.13.26 = STRING: "VDD_5_DUAL"
SNMPv2-SMI::enterprises.21317.1.3.1.13.27 = STRING: "VDD_33_DUAL"
SNMPv2-SMI::enterprises.21317.1.3.1.13.28 = STRING: "SOCRUN"
SNMPv2-SMI::enterprises.21317.1.3.1.13.29 = STRING: "SOCDUAL"
SNMPv2-SMI::enterprises.21317.1.3.1.13.30 = STRING: "Chassis Intru"
SNMPv2-SMI::enterprises.21317.1.3.1.13.31 = STRING: "PS1 Status"
SNMPv2-SMI::enterprises.21317.1.3.1.13.32 = STRING: "PS2 Status"
SNMPv2-SMI::enterprises.21317.1.3.1.13.33 = STRING: "AOC_NIC2 Temp "
SNMPv2-SMI::enterprises.21317.1.3.1.13.34 = STRING: "AOC_NIC1 Temp "
SNMPv2-SMI::enterprises.21317.1.3.1.13.36 = STRING: "AOC_SAS1 Temp "
SNMPv2-SMI::enterprises.21317.1.3.1.13.37 = STRING: "HDD Temp "
SNMPv2-SMI::enterprises.21317.1.3.1.13.38 = STRING: "HDD Status "
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+140
View File
@@ -0,0 +1,140 @@
# Check WatchGuard
<img src="https://img.shields.io/badge/Dev by-Kalarumeth-blueviolet?style=flat-square" alt="Dev"> <img src="https://img.shields.io/badge/Code-Bash-orange?style=flat-square&logo=GNU Bash&logoColor=orange" alt="Bash"> <img src="https://img.shields.io/badge/License-MIT-blue?style=flat-square" alt="MIT License">
The following script is used to monitor the basic functions of the WatchGuard firewall via snmpwalk scripts and are processed to provide easy-to-read data. It can be run separately or integrated into Icinga2 as a monitoring plugin.
**Important**: *snmpwalk command is required for script to run correctly*
# Update Note
## 0.5 - Release
+Release
# Installation
1. Download the script and give it privilages for run
```
curl -LJO https://raw.githubusercontent.com/Kalarumeth/...
```
2. Move to Icinga Plugin Dir
```
Default location: /usr/lib/nagios/plugins
```
3. Add command to Icinga
```
object CheckCommand "check_watchguard" {
import "plugin-check-command"
command = [ PluginDir + "/check_watchguard.sh" ]
arguments += {
"-ac" = {
order = 4
value = "$watchguard_ac$"
}
"-c" = {
order = 0
required = true
value = "$snmp_community$"
}
"-cr" = {
order = 3
value = "$crit$"
}
"-h" = {
order = 1
required = true
value = "$address$"
}
"-t" = {
order = 5
required = true
value = "$watchguard_type$"
}
"-wa" = {
order = 2
value = "$warn$"
}
}
vars.snmp_community = "public"
}
```
# Functions
The Script is designed to monitor the following firewall functions:
- **[ac] ActiveConns:**
Active connections in use and total number of active connections;
```
OK! Active Connections used: 0.16%
Current Active Connections: 5.412 of 3.300.000
```
- **[cpu] Cpu:**
Cpu load;
```
OK! CPU used: 2%
```
- **[data] Transfer:**
Information of file size send and recive.
```
Send 1479 GB / Recive 1982 GB
WatchGuard transfer info:
Total Data Send: 1479 GB 1855886728 Pkg
Total Data Recive: 1982 GB 2466423320 Pkg
```
- **[info] Info:**
Information of Active VPN, Intrusion Prevention Service and Gateway Antivirus Service
```
VPN active: 7
Gateway Antivirus Service: gav_version:2022020
Last Update: Fri, Feb 04 2022 11:54:03 AM
Intrusion Prevention Service: ips_version:18.196
Last Update: Thu, Feb 03 2022 06:53:47 PM
```
- **[ram] Memory:**
Ram load;
```
OK! RAM used: 2,67 / 3,77 GB (71,00 %)
RAM free: 1,10 GB (29,13 %)
```
# How it work
Method to compose the execution string:
./check_watchguard.sh -c <SNMP community> -h <host> [-wa <value> -cr <value> -ac <value>] -t <object>
### OPTIONS:
```
-c --community SNMP v2 community string with Read access.
Default is: public.
-h --host [REQUIRED OPTION] Host name or IP address to check.
Default is: localhost.
-wa --allert-wa Defines the threshold for Warning.
Default is: 80.
-cr --allert-cr Defines the threshold for Critical.
Default is: 90.
-ac --activeconns Defines the threshold for Max ActiveConnection.
Default is: 3300000
-t --type [REQUIRED OPTION] Field for select element to check on WatchGuard Device.
{ ac | cpu | data | info | ram }.
-H --help Show script help.
-V --version Show script version.
```
# Credits
### Author
Kalarumeth - https://github.com/Kalarumeth
### License
MIT License - Copyright 2022 Kalarumeth
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,641 @@
paladmin@palicinga02:~$ snmpwalk -v 2c -c pal-ro palap024.pal.local
SNMPv2-MIB::sysDescr.0 = STRING: Linux EAP245 3.3.8 #1 Fri Sep 18 16:46:11 CST 2020 mips
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.11863.3.2.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (40561988) 4 days, 16:40:19.88
SNMPv2-MIB::sysContact.0 = STRING: root@localhost
SNMPv2-MIB::sysName.0 = STRING: EAP245
SNMPv2-MIB::sysLocation.0 = STRING: Unknown
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORID.1 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.2 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.3 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.6 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.7 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.8 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.7 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORDescr.8 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (0) 0:00:00.00
IF-MIB::ifNumber.0 = INTEGER: 19
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
IF-MIB::ifIndex.4 = INTEGER: 4
IF-MIB::ifIndex.5 = INTEGER: 5
IF-MIB::ifIndex.6 = INTEGER: 6
IF-MIB::ifIndex.7 = INTEGER: 7
IF-MIB::ifIndex.8 = INTEGER: 8
IF-MIB::ifIndex.9 = INTEGER: 9
IF-MIB::ifIndex.10 = INTEGER: 10
IF-MIB::ifIndex.11 = INTEGER: 11
IF-MIB::ifIndex.12 = INTEGER: 12
IF-MIB::ifIndex.13 = INTEGER: 13
IF-MIB::ifIndex.14 = INTEGER: 14
IF-MIB::ifIndex.15 = INTEGER: 15
IF-MIB::ifIndex.16 = INTEGER: 16
IF-MIB::ifIndex.17 = INTEGER: 17
IF-MIB::ifIndex.18 = INTEGER: 18
IF-MIB::ifIndex.19 = INTEGER: 19
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: br0
IF-MIB::ifDescr.4 = STRING: wifi0
IF-MIB::ifDescr.5 = STRING: wifi1
IF-MIB::ifDescr.6 = STRING: ath0
IF-MIB::ifDescr.7 = STRING: ath1
IF-MIB::ifDescr.8 = STRING: ath2
IF-MIB::ifDescr.9 = STRING: ath3
IF-MIB::ifDescr.10 = STRING: ath4
IF-MIB::ifDescr.11 = STRING: ath5
IF-MIB::ifDescr.12 = STRING: ath6
IF-MIB::ifDescr.13 = STRING: ath10
IF-MIB::ifDescr.14 = STRING: ath11
IF-MIB::ifDescr.15 = STRING: ath12
IF-MIB::ifDescr.16 = STRING: ath13
IF-MIB::ifDescr.17 = STRING: ath14
IF-MIB::ifDescr.18 = STRING: ath15
IF-MIB::ifDescr.19 = STRING: ath16
IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.3 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.4 = INTEGER: other(1)
IF-MIB::ifType.5 = INTEGER: other(1)
IF-MIB::ifType.6 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.7 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.8 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.9 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.10 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.11 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.12 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.13 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.14 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.15 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.16 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.17 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.18 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.19 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifMtu.1 = INTEGER: 16436
IF-MIB::ifMtu.2 = INTEGER: 1500
IF-MIB::ifMtu.3 = INTEGER: 1500
IF-MIB::ifMtu.4 = INTEGER: 1500
IF-MIB::ifMtu.5 = INTEGER: 1500
IF-MIB::ifMtu.6 = INTEGER: 1500
IF-MIB::ifMtu.7 = INTEGER: 1500
IF-MIB::ifMtu.8 = INTEGER: 1500
IF-MIB::ifMtu.9 = INTEGER: 1500
IF-MIB::ifMtu.10 = INTEGER: 1500
IF-MIB::ifMtu.11 = INTEGER: 1500
IF-MIB::ifMtu.12 = INTEGER: 1500
IF-MIB::ifMtu.13 = INTEGER: 1500
IF-MIB::ifMtu.14 = INTEGER: 1500
IF-MIB::ifMtu.15 = INTEGER: 1500
IF-MIB::ifMtu.16 = INTEGER: 1500
IF-MIB::ifMtu.17 = INTEGER: 1500
IF-MIB::ifMtu.18 = INTEGER: 1500
IF-MIB::ifMtu.19 = INTEGER: 1500
IF-MIB::ifSpeed.1 = Gauge32: 10000000
IF-MIB::ifSpeed.2 = Gauge32: 1000000000
IF-MIB::ifSpeed.3 = Gauge32: 0
IF-MIB::ifSpeed.4 = Gauge32: 0
IF-MIB::ifSpeed.5 = Gauge32: 0
IF-MIB::ifSpeed.6 = Gauge32: 0
IF-MIB::ifSpeed.7 = Gauge32: 0
IF-MIB::ifSpeed.8 = Gauge32: 0
IF-MIB::ifSpeed.9 = Gauge32: 0
IF-MIB::ifSpeed.10 = Gauge32: 0
IF-MIB::ifSpeed.11 = Gauge32: 0
IF-MIB::ifSpeed.12 = Gauge32: 0
IF-MIB::ifSpeed.13 = Gauge32: 0
IF-MIB::ifSpeed.14 = Gauge32: 0
IF-MIB::ifSpeed.15 = Gauge32: 0
IF-MIB::ifSpeed.16 = Gauge32: 0
IF-MIB::ifSpeed.17 = Gauge32: 0
IF-MIB::ifSpeed.18 = Gauge32: 0
IF-MIB::ifSpeed.19 = Gauge32: 0
IF-MIB::ifPhysAddress.1 = STRING:
IF-MIB::ifPhysAddress.2 = STRING: 1c:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.3 = STRING: 1c:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.4 = STRING: 1c:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.5 = STRING: 1c:3b:f3:be:e1:85
IF-MIB::ifPhysAddress.6 = STRING: 1c:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.7 = STRING: 22:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.8 = STRING: 26:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.9 = STRING: 2a:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.10 = STRING: 2e:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.11 = STRING: 32:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.12 = STRING: 36:3b:f3:be:e1:84
IF-MIB::ifPhysAddress.13 = STRING: 1c:3b:f3:be:e1:85
IF-MIB::ifPhysAddress.14 = STRING: 22:3b:f3:be:e1:85
IF-MIB::ifPhysAddress.15 = STRING: 26:3b:f3:be:e1:85
IF-MIB::ifPhysAddress.16 = STRING: 2a:3b:f3:be:e1:85
IF-MIB::ifPhysAddress.17 = STRING: 2e:3b:f3:be:e1:85
IF-MIB::ifPhysAddress.18 = STRING: 32:3b:f3:be:e1:85
IF-MIB::ifPhysAddress.19 = STRING: 36:3b:f3:be:e1:85
IF-MIB::ifAdminStatus.1 = INTEGER: up(1)
IF-MIB::ifAdminStatus.2 = INTEGER: up(1)
IF-MIB::ifAdminStatus.3 = INTEGER: up(1)
IF-MIB::ifAdminStatus.4 = INTEGER: up(1)
IF-MIB::ifAdminStatus.5 = INTEGER: up(1)
IF-MIB::ifAdminStatus.6 = INTEGER: up(1)
IF-MIB::ifAdminStatus.7 = INTEGER: up(1)
IF-MIB::ifAdminStatus.8 = INTEGER: up(1)
IF-MIB::ifAdminStatus.9 = INTEGER: up(1)
IF-MIB::ifAdminStatus.10 = INTEGER: up(1)
IF-MIB::ifAdminStatus.11 = INTEGER: up(1)
IF-MIB::ifAdminStatus.12 = INTEGER: up(1)
IF-MIB::ifAdminStatus.13 = INTEGER: up(1)
IF-MIB::ifAdminStatus.14 = INTEGER: up(1)
IF-MIB::ifAdminStatus.15 = INTEGER: up(1)
IF-MIB::ifAdminStatus.16 = INTEGER: up(1)
IF-MIB::ifAdminStatus.17 = INTEGER: up(1)
IF-MIB::ifAdminStatus.18 = INTEGER: up(1)
IF-MIB::ifAdminStatus.19 = INTEGER: up(1)
IF-MIB::ifOperStatus.1 = INTEGER: up(1)
IF-MIB::ifOperStatus.2 = INTEGER: up(1)
IF-MIB::ifOperStatus.3 = INTEGER: up(1)
IF-MIB::ifOperStatus.4 = INTEGER: up(1)
IF-MIB::ifOperStatus.5 = INTEGER: up(1)
IF-MIB::ifOperStatus.6 = INTEGER: up(1)
IF-MIB::ifOperStatus.7 = INTEGER: up(1)
IF-MIB::ifOperStatus.8 = INTEGER: up(1)
IF-MIB::ifOperStatus.9 = INTEGER: up(1)
IF-MIB::ifOperStatus.10 = INTEGER: up(1)
IF-MIB::ifOperStatus.11 = INTEGER: up(1)
IF-MIB::ifOperStatus.12 = INTEGER: up(1)
IF-MIB::ifOperStatus.13 = INTEGER: up(1)
IF-MIB::ifOperStatus.14 = INTEGER: up(1)
IF-MIB::ifOperStatus.15 = INTEGER: up(1)
IF-MIB::ifOperStatus.16 = INTEGER: up(1)
IF-MIB::ifOperStatus.17 = INTEGER: up(1)
IF-MIB::ifOperStatus.18 = INTEGER: up(1)
IF-MIB::ifOperStatus.19 = INTEGER: up(1)
IF-MIB::ifLastChange.1 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.2 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.3 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.4 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.5 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.6 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.7 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.8 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.9 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.10 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.11 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.12 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.13 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.14 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.15 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.16 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.17 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.18 = Timeticks: (0) 0:00:00.00
IF-MIB::ifLastChange.19 = Timeticks: (0) 0:00:00.00
IF-MIB::ifInOctets.1 = Counter32: 0
IF-MIB::ifInOctets.2 = Counter32: 3018727910
IF-MIB::ifInOctets.3 = Counter32: 56637864
IF-MIB::ifInOctets.4 = Counter32: 383407055
IF-MIB::ifInOctets.5 = Counter32: 1376381
IF-MIB::ifInOctets.6 = Counter32: 3894619
IF-MIB::ifInOctets.7 = Counter32: 628
IF-MIB::ifInOctets.8 = Counter32: 36960
IF-MIB::ifInOctets.9 = Counter32: 2479045457
IF-MIB::ifInOctets.10 = Counter32: 104428755
IF-MIB::ifInOctets.11 = Counter32: 2878891
IF-MIB::ifInOctets.12 = Counter32: 0
IF-MIB::ifInOctets.13 = Counter32: 583398
IF-MIB::ifInOctets.14 = Counter32: 0
IF-MIB::ifInOctets.15 = Counter32: 18113
IF-MIB::ifInOctets.16 = Counter32: 3144
IF-MIB::ifInOctets.17 = Counter32: 0
IF-MIB::ifInOctets.18 = Counter32: 670223
IF-MIB::ifInOctets.19 = Counter32: 0
IF-MIB::ifInUcastPkts.1 = Counter32: 0
IF-MIB::ifInUcastPkts.2 = Counter32: 37076458
IF-MIB::ifInUcastPkts.3 = Counter32: 25912288
IF-MIB::ifInUcastPkts.4 = Counter32: 136011348
IF-MIB::ifInUcastPkts.5 = Counter32: 8581
IF-MIB::ifInUcastPkts.6 = Counter32: 19763
IF-MIB::ifInUcastPkts.7 = Counter32: 4
IF-MIB::ifInUcastPkts.8 = Counter32: 226
IF-MIB::ifInUcastPkts.9 = Counter32: 6445197
IF-MIB::ifInUcastPkts.10 = Counter32: 955099
IF-MIB::ifInUcastPkts.11 = Counter32: 20720
IF-MIB::ifInUcastPkts.12 = Counter32: 0
IF-MIB::ifInUcastPkts.13 = Counter32: 2689
IF-MIB::ifInUcastPkts.14 = Counter32: 0
IF-MIB::ifInUcastPkts.15 = Counter32: 155
IF-MIB::ifInUcastPkts.16 = Counter32: 35
IF-MIB::ifInUcastPkts.17 = Counter32: 0
IF-MIB::ifInUcastPkts.18 = Counter32: 5005
IF-MIB::ifInUcastPkts.19 = Counter32: 0
IF-MIB::ifInNUcastPkts.1 = Counter32: 0
IF-MIB::ifInNUcastPkts.2 = Counter32: 0
IF-MIB::ifInNUcastPkts.3 = Counter32: 0
IF-MIB::ifInNUcastPkts.4 = Counter32: 0
IF-MIB::ifInNUcastPkts.5 = Counter32: 0
IF-MIB::ifInNUcastPkts.6 = Counter32: 0
IF-MIB::ifInNUcastPkts.7 = Counter32: 0
IF-MIB::ifInNUcastPkts.8 = Counter32: 0
IF-MIB::ifInNUcastPkts.9 = Counter32: 0
IF-MIB::ifInNUcastPkts.10 = Counter32: 0
IF-MIB::ifInNUcastPkts.11 = Counter32: 0
IF-MIB::ifInNUcastPkts.12 = Counter32: 0
IF-MIB::ifInNUcastPkts.13 = Counter32: 0
IF-MIB::ifInNUcastPkts.14 = Counter32: 0
IF-MIB::ifInNUcastPkts.15 = Counter32: 0
IF-MIB::ifInNUcastPkts.16 = Counter32: 0
IF-MIB::ifInNUcastPkts.17 = Counter32: 0
IF-MIB::ifInNUcastPkts.18 = Counter32: 0
IF-MIB::ifInNUcastPkts.19 = Counter32: 0
IF-MIB::ifInDiscards.1 = Counter32: 0
IF-MIB::ifInDiscards.2 = Counter32: 132757
IF-MIB::ifInDiscards.3 = Counter32: 4421828
IF-MIB::ifInDiscards.4 = Counter32: 0
IF-MIB::ifInDiscards.5 = Counter32: 0
IF-MIB::ifInDiscards.6 = Counter32: 3
IF-MIB::ifInDiscards.7 = Counter32: 0
IF-MIB::ifInDiscards.8 = Counter32: 0
IF-MIB::ifInDiscards.9 = Counter32: 1
IF-MIB::ifInDiscards.10 = Counter32: 0
IF-MIB::ifInDiscards.11 = Counter32: 0
IF-MIB::ifInDiscards.12 = Counter32: 0
IF-MIB::ifInDiscards.13 = Counter32: 0
IF-MIB::ifInDiscards.14 = Counter32: 0
IF-MIB::ifInDiscards.15 = Counter32: 0
IF-MIB::ifInDiscards.16 = Counter32: 0
IF-MIB::ifInDiscards.17 = Counter32: 0
IF-MIB::ifInDiscards.18 = Counter32: 0
IF-MIB::ifInDiscards.19 = Counter32: 0
IF-MIB::ifInErrors.1 = Counter32: 0
IF-MIB::ifInErrors.2 = Counter32: 0
IF-MIB::ifInErrors.3 = Counter32: 0
IF-MIB::ifInErrors.4 = Counter32: 0
IF-MIB::ifInErrors.5 = Counter32: 487
IF-MIB::ifInErrors.6 = Counter32: 3
IF-MIB::ifInErrors.7 = Counter32: 0
IF-MIB::ifInErrors.8 = Counter32: 0
IF-MIB::ifInErrors.9 = Counter32: 1
IF-MIB::ifInErrors.10 = Counter32: 0
IF-MIB::ifInErrors.11 = Counter32: 0
IF-MIB::ifInErrors.12 = Counter32: 0
IF-MIB::ifInErrors.13 = Counter32: 0
IF-MIB::ifInErrors.14 = Counter32: 0
IF-MIB::ifInErrors.15 = Counter32: 0
IF-MIB::ifInErrors.16 = Counter32: 0
IF-MIB::ifInErrors.17 = Counter32: 0
IF-MIB::ifInErrors.18 = Counter32: 0
IF-MIB::ifInErrors.19 = Counter32: 0
IF-MIB::ifInUnknownProtos.1 = Counter32: 0
IF-MIB::ifInUnknownProtos.2 = Counter32: 0
IF-MIB::ifInUnknownProtos.3 = Counter32: 0
IF-MIB::ifInUnknownProtos.4 = Counter32: 0
IF-MIB::ifInUnknownProtos.5 = Counter32: 0
IF-MIB::ifInUnknownProtos.6 = Counter32: 0
IF-MIB::ifInUnknownProtos.7 = Counter32: 0
IF-MIB::ifInUnknownProtos.8 = Counter32: 0
IF-MIB::ifInUnknownProtos.9 = Counter32: 0
IF-MIB::ifInUnknownProtos.10 = Counter32: 0
IF-MIB::ifInUnknownProtos.11 = Counter32: 0
IF-MIB::ifInUnknownProtos.12 = Counter32: 0
IF-MIB::ifInUnknownProtos.13 = Counter32: 0
IF-MIB::ifInUnknownProtos.14 = Counter32: 0
IF-MIB::ifInUnknownProtos.15 = Counter32: 0
IF-MIB::ifInUnknownProtos.16 = Counter32: 0
IF-MIB::ifInUnknownProtos.17 = Counter32: 0
IF-MIB::ifInUnknownProtos.18 = Counter32: 0
IF-MIB::ifInUnknownProtos.19 = Counter32: 0
IF-MIB::ifOutOctets.1 = Counter32: 0
IF-MIB::ifOutOctets.2 = Counter32: 2865729307
IF-MIB::ifOutOctets.3 = Counter32: 408299892
IF-MIB::ifOutOctets.4 = Counter32: 576951385
IF-MIB::ifOutOctets.5 = Counter32: 15054252
IF-MIB::ifOutOctets.6 = Counter32: 97189462
IF-MIB::ifOutOctets.7 = Counter32: 4920
IF-MIB::ifOutOctets.8 = Counter32: 313466
IF-MIB::ifOutOctets.9 = Counter32: 2840977473
IF-MIB::ifOutOctets.10 = Counter32: 218063042
IF-MIB::ifOutOctets.11 = Counter32: 33605131
IF-MIB::ifOutOctets.12 = Counter32: 0
IF-MIB::ifOutOctets.13 = Counter32: 3768939
IF-MIB::ifOutOctets.14 = Counter32: 0
IF-MIB::ifOutOctets.15 = Counter32: 69534
IF-MIB::ifOutOctets.16 = Counter32: 31015
IF-MIB::ifOutOctets.17 = Counter32: 0
IF-MIB::ifOutOctets.18 = Counter32: 12315773
IF-MIB::ifOutOctets.19 = Counter32: 0
IF-MIB::ifOutUcastPkts.1 = Counter32: 0
IF-MIB::ifOutUcastPkts.2 = Counter32: 8081425
IF-MIB::ifOutUcastPkts.3 = Counter32: 634878
IF-MIB::ifOutUcastPkts.4 = Counter32: 202178584
IF-MIB::ifOutUcastPkts.5 = Counter32: 41485
IF-MIB::ifOutUcastPkts.6 = Counter32: 194758
IF-MIB::ifOutUcastPkts.7 = Counter32: 10
IF-MIB::ifOutUcastPkts.8 = Counter32: 635
IF-MIB::ifOutUcastPkts.9 = Counter32: 11197952
IF-MIB::ifOutUcastPkts.10 = Counter32: 1942736
IF-MIB::ifOutUcastPkts.11 = Counter32: 63997
IF-MIB::ifOutUcastPkts.12 = Counter32: 0
IF-MIB::ifOutUcastPkts.13 = Counter32: 12989
IF-MIB::ifOutUcastPkts.14 = Counter32: 0
IF-MIB::ifOutUcastPkts.15 = Counter32: 115
IF-MIB::ifOutUcastPkts.16 = Counter32: 102
IF-MIB::ifOutUcastPkts.17 = Counter32: 0
IF-MIB::ifOutUcastPkts.18 = Counter32: 28279
IF-MIB::ifOutUcastPkts.19 = Counter32: 0
IF-MIB::ifOutNUcastPkts.1 = Counter32: 0
IF-MIB::ifOutNUcastPkts.2 = Counter32: 0
IF-MIB::ifOutNUcastPkts.3 = Counter32: 0
IF-MIB::ifOutNUcastPkts.4 = Counter32: 0
IF-MIB::ifOutNUcastPkts.5 = Counter32: 0
IF-MIB::ifOutNUcastPkts.6 = Counter32: 0
IF-MIB::ifOutNUcastPkts.7 = Counter32: 0
IF-MIB::ifOutNUcastPkts.8 = Counter32: 0
IF-MIB::ifOutNUcastPkts.9 = Counter32: 0
IF-MIB::ifOutNUcastPkts.10 = Counter32: 0
IF-MIB::ifOutNUcastPkts.11 = Counter32: 0
IF-MIB::ifOutNUcastPkts.12 = Counter32: 0
IF-MIB::ifOutNUcastPkts.13 = Counter32: 0
IF-MIB::ifOutNUcastPkts.14 = Counter32: 0
IF-MIB::ifOutNUcastPkts.15 = Counter32: 0
IF-MIB::ifOutNUcastPkts.16 = Counter32: 0
IF-MIB::ifOutNUcastPkts.17 = Counter32: 0
IF-MIB::ifOutNUcastPkts.18 = Counter32: 0
IF-MIB::ifOutNUcastPkts.19 = Counter32: 0
IF-MIB::ifOutDiscards.1 = Counter32: 0
IF-MIB::ifOutDiscards.2 = Counter32: 0
IF-MIB::ifOutDiscards.3 = Counter32: 0
IF-MIB::ifOutDiscards.4 = Counter32: 2389
IF-MIB::ifOutDiscards.5 = Counter32: 0
IF-MIB::ifOutDiscards.6 = Counter32: 3130886
IF-MIB::ifOutDiscards.7 = Counter32: 2980266
IF-MIB::ifOutDiscards.8 = Counter32: 275491
IF-MIB::ifOutDiscards.9 = Counter32: 401445
IF-MIB::ifOutDiscards.10 = Counter32: 9432206
IF-MIB::ifOutDiscards.11 = Counter32: 329855
IF-MIB::ifOutDiscards.12 = Counter32: 224669
IF-MIB::ifOutDiscards.13 = Counter32: 0
IF-MIB::ifOutDiscards.14 = Counter32: 0
IF-MIB::ifOutDiscards.15 = Counter32: 0
IF-MIB::ifOutDiscards.16 = Counter32: 0
IF-MIB::ifOutDiscards.17 = Counter32: 0
IF-MIB::ifOutDiscards.18 = Counter32: 0
IF-MIB::ifOutDiscards.19 = Counter32: 0
IF-MIB::ifOutErrors.1 = Counter32: 0
IF-MIB::ifOutErrors.2 = Counter32: 0
IF-MIB::ifOutErrors.3 = Counter32: 0
IF-MIB::ifOutErrors.4 = Counter32: 27854
IF-MIB::ifOutErrors.5 = Counter32: 0
IF-MIB::ifOutErrors.6 = Counter32: 0
IF-MIB::ifOutErrors.7 = Counter32: 0
IF-MIB::ifOutErrors.8 = Counter32: 0
IF-MIB::ifOutErrors.9 = Counter32: 0
IF-MIB::ifOutErrors.10 = Counter32: 0
IF-MIB::ifOutErrors.11 = Counter32: 0
IF-MIB::ifOutErrors.12 = Counter32: 0
IF-MIB::ifOutErrors.13 = Counter32: 1
IF-MIB::ifOutErrors.14 = Counter32: 0
IF-MIB::ifOutErrors.15 = Counter32: 0
IF-MIB::ifOutErrors.16 = Counter32: 0
IF-MIB::ifOutErrors.17 = Counter32: 0
IF-MIB::ifOutErrors.18 = Counter32: 11
IF-MIB::ifOutErrors.19 = Counter32: 0
IF-MIB::ifOutQLen.1 = Gauge32: 0
IF-MIB::ifOutQLen.2 = Gauge32: 0
IF-MIB::ifOutQLen.3 = Gauge32: 0
IF-MIB::ifOutQLen.4 = Gauge32: 0
IF-MIB::ifOutQLen.5 = Gauge32: 0
IF-MIB::ifOutQLen.6 = Gauge32: 0
IF-MIB::ifOutQLen.7 = Gauge32: 0
IF-MIB::ifOutQLen.8 = Gauge32: 0
IF-MIB::ifOutQLen.9 = Gauge32: 0
IF-MIB::ifOutQLen.10 = Gauge32: 0
IF-MIB::ifOutQLen.11 = Gauge32: 0
IF-MIB::ifOutQLen.12 = Gauge32: 0
IF-MIB::ifOutQLen.13 = Gauge32: 0
IF-MIB::ifOutQLen.14 = Gauge32: 0
IF-MIB::ifOutQLen.15 = Gauge32: 0
IF-MIB::ifOutQLen.16 = Gauge32: 0
IF-MIB::ifOutQLen.17 = Gauge32: 0
IF-MIB::ifOutQLen.18 = Gauge32: 0
IF-MIB::ifOutQLen.19 = Gauge32: 0
IF-MIB::ifSpecific.1 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.2 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.3 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.4 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.5 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.6 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.7 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.8 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.9 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.10 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.11 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.12 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.13 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.14 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.15 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.16 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.17 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.18 = OID: SNMPv2-SMI::zeroDotZero
IF-MIB::ifSpecific.19 = OID: SNMPv2-SMI::zeroDotZero
SNMPv2-SMI::mib-2.3.1.1.1.3.1.172.16.126.254 = INTEGER: 3
SNMPv2-SMI::mib-2.3.1.1.2.3.1.172.16.126.254 = Hex-STRING: 00 09 0F 09 00 12
SNMPv2-SMI::mib-2.3.1.1.3.3.1.172.16.126.254 = IpAddress: 172.16.126.254
IP-MIB::ipForwarding.0 = INTEGER: forwarding(1)
IP-MIB::ipDefaultTTL.0 = INTEGER: 64
IP-MIB::ipInReceives.0 = Counter32: 6354664
IP-MIB::ipInHdrErrors.0 = Counter32: 0
IP-MIB::ipInAddrErrors.0 = Counter32: 0
IP-MIB::ipForwDatagrams.0 = Counter32: 0
IP-MIB::ipInUnknownProtos.0 = Counter32: 0
IP-MIB::ipInDiscards.0 = Counter32: 0
IP-MIB::ipInDelivers.0 = Counter32: 3679386
IP-MIB::ipOutRequests.0 = Counter32: 351289
IP-MIB::ipOutDiscards.0 = Counter32: 0
IP-MIB::ipOutNoRoutes.0 = Counter32: 0
IP-MIB::ipReasmTimeout.0 = INTEGER: 3 seconds
IP-MIB::ipReasmReqds.0 = Counter32: 47110
IP-MIB::ipReasmOKs.0 = Counter32: 6661
IP-MIB::ipReasmFails.0 = Counter32: 3
IP-MIB::ipFragOKs.0 = Counter32: 0
IP-MIB::ipFragFails.0 = Counter32: 0
IP-MIB::ipFragCreates.0 = Counter32: 0
IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntAddr.172.16.126.158 = IpAddress: 172.16.126.158
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.172.16.126.158 = INTEGER: 3
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntNetMask.172.16.126.158 = IpAddress: 255.255.255.0
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
IP-MIB::ipAdEntBcastAddr.172.16.126.158 = INTEGER: 1
IP-MIB::ip.21.1.1.0.0.0.0 = IpAddress: 0.0.0.0
IP-MIB::ip.21.1.1.172.16.126.0 = IpAddress: 172.16.126.0
IP-MIB::ip.21.1.2.0.0.0.0 = INTEGER: 3
IP-MIB::ip.21.1.2.172.16.126.0 = INTEGER: 3
IP-MIB::ip.21.1.3.0.0.0.0 = INTEGER: 1
IP-MIB::ip.21.1.3.172.16.126.0 = INTEGER: 0
IP-MIB::ip.21.1.7.0.0.0.0 = IpAddress: 172.16.126.254
IP-MIB::ip.21.1.7.172.16.126.0 = IpAddress: 0.0.0.0
IP-MIB::ip.21.1.8.0.0.0.0 = INTEGER: 4
IP-MIB::ip.21.1.8.172.16.126.0 = INTEGER: 3
IP-MIB::ip.21.1.9.0.0.0.0 = INTEGER: 2
IP-MIB::ip.21.1.9.172.16.126.0 = INTEGER: 2
IP-MIB::ip.21.1.11.0.0.0.0 = IpAddress: 0.0.0.0
IP-MIB::ip.21.1.11.172.16.126.0 = IpAddress: 255.255.255.0
IP-MIB::ip.21.1.13.0.0.0.0 = OID: SNMPv2-SMI::zeroDotZero
IP-MIB::ip.21.1.13.172.16.126.0 = OID: SNMPv2-SMI::zeroDotZero
IP-MIB::ipNetToMediaIfIndex.3.172.16.126.254 = INTEGER: 3
IP-MIB::ipNetToMediaPhysAddress.3.172.16.126.254 = STRING: 0:9:f:9:0:12
IP-MIB::ipNetToMediaNetAddress.3.172.16.126.254 = IpAddress: 172.16.126.254
IP-MIB::ipNetToMediaType.3.172.16.126.254 = INTEGER: dynamic(3)
IP-MIB::ipRoutingDiscards.0 = Counter32: 0
IP-MIB::icmpInMsgs.0 = Counter32: 5996
IP-MIB::icmpInErrors.0 = Counter32: 2
IP-MIB::icmpInDestUnreachs.0 = Counter32: 613
IP-MIB::icmpInTimeExcds.0 = Counter32: 0
IP-MIB::icmpInParmProbs.0 = Counter32: 0
IP-MIB::icmpInSrcQuenchs.0 = Counter32: 0
IP-MIB::icmpInRedirects.0 = Counter32: 0
IP-MIB::icmpInEchos.0 = Counter32: 5383
IP-MIB::icmpInEchoReps.0 = Counter32: 0
IP-MIB::icmpInTimestamps.0 = Counter32: 0
IP-MIB::icmpInTimestampReps.0 = Counter32: 0
IP-MIB::icmpInAddrMasks.0 = Counter32: 0
IP-MIB::icmpInAddrMaskReps.0 = Counter32: 0
IP-MIB::icmpOutMsgs.0 = Counter32: 5381
IP-MIB::icmpOutErrors.0 = Counter32: 0
IP-MIB::icmpOutDestUnreachs.0 = Counter32: 0
IP-MIB::icmpOutTimeExcds.0 = Counter32: 0
IP-MIB::icmpOutParmProbs.0 = Counter32: 0
IP-MIB::icmpOutSrcQuenchs.0 = Counter32: 0
IP-MIB::icmpOutRedirects.0 = Counter32: 0
IP-MIB::icmpOutEchos.0 = Counter32: 0
IP-MIB::icmpOutEchoReps.0 = Counter32: 5381
IP-MIB::icmpOutTimestamps.0 = Counter32: 0
IP-MIB::icmpOutTimestampReps.0 = Counter32: 0
IP-MIB::icmpOutAddrMasks.0 = Counter32: 0
IP-MIB::icmpOutAddrMaskReps.0 = Counter32: 0
IP-MIB::icmpStatsInMsgs.ipv4 = Counter32: 5996
IP-MIB::icmpStatsInMsgs.ipv6 = Counter32: 0
IP-MIB::icmpStatsInErrors.ipv4 = Counter32: 2
IP-MIB::icmpStatsInErrors.ipv6 = Counter32: 0
IP-MIB::icmpStatsOutMsgs.ipv4 = Counter32: 5381
IP-MIB::icmpStatsOutMsgs.ipv6 = Counter32: 0
IP-MIB::icmpStatsOutErrors.ipv4 = Counter32: 0
IP-MIB::icmpStatsOutErrors.ipv6 = Counter32: 0
IP-MIB::icmpMsgStatsInPkts.ipv4.3 = Counter32: 613
IP-MIB::icmpMsgStatsInPkts.ipv4.8 = Counter32: 5383
IP-MIB::icmpMsgStatsOutPkts.ipv4.0 = Counter32: 5381
TCP-MIB::tcpRtoAlgorithm.0 = INTEGER: other(1)
TCP-MIB::tcpRtoMin.0 = INTEGER: 200 milliseconds
TCP-MIB::tcpRtoMax.0 = INTEGER: 120000 milliseconds
TCP-MIB::tcpMaxConn.0 = INTEGER: -1
TCP-MIB::tcpActiveOpens.0 = Counter32: 2
TCP-MIB::tcpPassiveOpens.0 = Counter32: 0
TCP-MIB::tcpAttemptFails.0 = Counter32: 0
TCP-MIB::tcpEstabResets.0 = Counter32: 0
TCP-MIB::tcpCurrEstab.0 = Gauge32: 1
TCP-MIB::tcpInSegs.0 = Counter32: 66977
TCP-MIB::tcpOutSegs.0 = Counter32: 120776
TCP-MIB::tcpRetransSegs.0 = Counter32: 15
TCP-MIB::tcpConnState.0.0.0.0.80.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.443.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.22080.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.0.0.0.0.22443.0.0.0.0.0 = INTEGER: listen(2)
TCP-MIB::tcpConnState.172.16.126.158.48894.172.16.94.72.29811 = INTEGER: established(5)
TCP-MIB::tcpConnLocalAddress.0.0.0.0.80.0.0.0.0.0 = IpAddress: 0.0.0.0
TCP-MIB::tcpConnLocalAddress.0.0.0.0.443.0.0.0.0.0 = IpAddress: 0.0.0.0
TCP-MIB::tcpConnLocalAddress.0.0.0.0.22080.0.0.0.0.0 = IpAddress: 0.0.0.0
TCP-MIB::tcpConnLocalAddress.0.0.0.0.22443.0.0.0.0.0 = IpAddress: 0.0.0.0
TCP-MIB::tcpConnLocalAddress.172.16.126.158.48894.172.16.94.72.29811 = IpAddress: 172.16.126.158
TCP-MIB::tcpConnLocalPort.0.0.0.0.80.0.0.0.0.0 = INTEGER: 80
TCP-MIB::tcpConnLocalPort.0.0.0.0.443.0.0.0.0.0 = INTEGER: 443
TCP-MIB::tcpConnLocalPort.0.0.0.0.22080.0.0.0.0.0 = INTEGER: 22080
TCP-MIB::tcpConnLocalPort.0.0.0.0.22443.0.0.0.0.0 = INTEGER: 22443
TCP-MIB::tcpConnLocalPort.172.16.126.158.48894.172.16.94.72.29811 = INTEGER: 48894
TCP-MIB::tcpConnRemAddress.0.0.0.0.80.0.0.0.0.0 = IpAddress: 0.0.0.0
TCP-MIB::tcpConnRemAddress.0.0.0.0.443.0.0.0.0.0 = IpAddress: 0.0.0.0
TCP-MIB::tcpConnRemAddress.0.0.0.0.22080.0.0.0.0.0 = IpAddress: 0.0.0.0
TCP-MIB::tcpConnRemAddress.0.0.0.0.22443.0.0.0.0.0 = IpAddress: 0.0.0.0
TCP-MIB::tcpConnRemAddress.172.16.126.158.48894.172.16.94.72.29811 = IpAddress: 172.16.94.72
TCP-MIB::tcpConnRemPort.0.0.0.0.80.0.0.0.0.0 = INTEGER: 0
TCP-MIB::tcpConnRemPort.0.0.0.0.443.0.0.0.0.0 = INTEGER: 0
TCP-MIB::tcpConnRemPort.0.0.0.0.22080.0.0.0.0.0 = INTEGER: 0
TCP-MIB::tcpConnRemPort.0.0.0.0.22443.0.0.0.0.0 = INTEGER: 0
TCP-MIB::tcpConnRemPort.172.16.126.158.48894.172.16.94.72.29811 = INTEGER: 29811
TCP-MIB::tcpInErrs.0 = Counter32: 0
TCP-MIB::tcpOutRsts.0 = Counter32: 0
UDP-MIB::udpInDatagrams.0 = Counter32: 611
UDP-MIB::udpNoPorts.0 = Counter32: 0
UDP-MIB::udpInErrors.0 = Counter32: 0
UDP-MIB::udpOutDatagrams.0 = Counter32: 225241
UDP-MIB::udpLocalAddress.0.0.0.0.161 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalAddress.0.0.0.0.20003 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalPort.0.0.0.0.161 = INTEGER: 161
UDP-MIB::udpLocalPort.0.0.0.0.20003 = INTEGER: 20003
SNMPv2-MIB::snmpInPkts.0 = Counter32: 586
SNMPv2-MIB::snmpOutPkts.0 = Counter32: 586
SNMPv2-MIB::snmpInBadVersions.0 = Counter32: 0
SNMPv2-MIB::snmpInBadCommunityNames.0 = Counter32: 0
SNMPv2-MIB::snmpInBadCommunityUses.0 = Counter32: 0
SNMPv2-MIB::snmpInASNParseErrs.0 = Counter32: 0
SNMPv2-MIB::snmpInTooBigs.0 = Counter32: 0
SNMPv2-MIB::snmpInNoSuchNames.0 = Counter32: 0
SNMPv2-MIB::snmpInBadValues.0 = Counter32: 0
SNMPv2-MIB::snmpInReadOnlys.0 = Counter32: 0
SNMPv2-MIB::snmpInGenErrs.0 = Counter32: 0
SNMPv2-MIB::snmpInTotalReqVars.0 = Counter32: 596
SNMPv2-MIB::snmpInTotalSetVars.0 = Counter32: 0
SNMPv2-MIB::snmpInGetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpInGetNexts.0 = Counter32: 600
SNMPv2-MIB::snmpInSetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpInGetResponses.0 = Counter32: 0
SNMPv2-MIB::snmpInTraps.0 = Counter32: 0
SNMPv2-MIB::snmpOutTooBigs.0 = Counter32: 0
SNMPv2-MIB::snmpOutNoSuchNames.0 = Counter32: 0
SNMPv2-MIB::snmpOutBadValues.0 = Counter32: 0
SNMPv2-MIB::snmpOutGenErrs.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetNexts.0 = Counter32: 0
SNMPv2-MIB::snmpOutSetRequests.0 = Counter32: 0
SNMPv2-MIB::snmpOutGetResponses.0 = Counter32: 610
SNMPv2-MIB::snmpOutTraps.0 = Counter32: 0
SNMPv2-MIB::snmpEnableAuthenTraps.0 = INTEGER: disabled(2)
SNMPv2-MIB::snmpSilentDrops.0 = Counter32: 0
SNMPv2-MIB::snmpProxyDrops.0 = Counter32: 0
IF-MIB::ifTableLastChange.0 = Timeticks: (0) 0:00:00.00
@@ -0,0 +1,509 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check TplinkAp"
AUTHOR="Kalarumeth"
VERSION="v0.1"
URL="https://github.com/Kalarumeth"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
SNMPVERSION="2c"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
# - OID
TpLink.OIDS() {
OID_nameIF="1.3.6.1.2.1.2.2.1.2"
OID_typeIF="1.3.6.1.2.1.2.2.1.3"
OID_statusIF="1.3.6.1.2.1.2.2.1.8"
OID_clientCon="1.3.6.1.4.1.11863.10.1.1.1"
OID_arrayMac="1.3.6.1.4.1.11863.10.1.1.2.1.2"
}
# - MAIN CODE
Script.HostAlive() {
for server in $HOST_NAME; do
ping -c1 -W1 -q $server &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
fi
done
}
Script.SNMP() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oe -c $COMMUNITY $HOST_NAME $1
}
Script.SNMP.Hex() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oa -c $COMMUNITY $HOST_NAME $1
}
# - TpLink AP Health Check
TpLink.Main() {
Script.HostAlive
case $1 in
client)
TpLink.ClientConnected
exit $STATE ;;
if)
TpLink.IF
exit $STATE ;;
*)
echo "Unknown check!"
Help.IPMI
exit $STATE_UNK ;;
esac
}
TpLink.GetData() {
TpLink.OIDS
case $1 in
interface)
nameIF=($(Script.SNMP $OID_nameIF | cut -d '"' -f 2 | sed "s/$//g"))
statusIF=($(Script.SNMP $OID_statusIF | cut -d ' ' -f 4 | sed "s/$//g"))
typeIF=($(Script.SNMP $OID_typeIF | cut -d ' ' -f 4 | sed "s/$//g")) ;;
client)
clientCon=$(Script.SNMP $OID_clientCon | cut -d ' ' -f 4 | sed "s/$//g")
raw_arrayMac=$(Script.SNMP.Hex $OID_arrayMac | cut -d '"' -f 2 | cut -d '.' -f 1 | sed "s/-/:/g")
readarray -t addressMac <<< $raw_arrayMac ;;
esac
}
TpLink.IF() {
TpLink.GetData interface
TpLink.IF.Header
for((i=0; i<${#nameIF[@]}; i++))
do
TpLink.IF.operStatus
printf "%s\t" "${nameIF[$i]}"
TpLink.IF.IANAifType
done
}
TpLink.IF.Header() {
WarningCounter=0
CriticalCounter=0
for((i=0; i<${#name[@]}; i++)); do
if [[ ${name[$i]} == *"wifi"* ]] ; then
for value in "${statusIF[$i]}"; do
if [[ $value != 1 ]] && [[ $value != 2 ]]; then
WarningCounter=$(( WarningCounter + 1 ))
elif [[ $value == 2 ]]; then
CriticalCounter=$(( CriticalCounter + 1 ))
fi
done
elif [[ ${name[$i]} == *"eth"* ]] ; then
for value in "${statusIF[$i]}"; do
if [[ $value != 1 ]] && [[ $value != 2 ]]; then
WarningCounter=$(( WarningCounter + 1 ))
elif [[ $value == 2 ]]; then
CriticalCounter=$(( CriticalCounter + 1 ))
fi
done
fi
done
for Error in "$(( WarningCounter + CriticalCounter ))"; do
if [[ $WarningCounter == 0 ]] && [[ $CriticalCounter == 0 ]] ; then
printf "%s\t%s\n\n" "OK!" "All interFace is Up"
elif [[ $WarningCounter != 0 ]] && [[ $CriticalCounter == 0 ]] ; then
printf "%s\t%s\n\n" "WARNING!" "$Error interFace with problem"
elif [[ $CriticalCounter != 0 ]] ; then
printf "%s\t%s\n\n" "CRITICAL!" "$Error interFace with problem"
fi
done
printf "%s\t%s\t%s\n" "STATUS" "NAME" "TYPE" "=============================="
}
TpLink.IF.operStatus() {
case ${statusIF[$i]} in
1) printf "%s\t" "Up" ;;
2) printf "%s\t" "Down" ;;
3) printf "%s\t" "Testing" ;;
4) printf "%s\t" "Unknown" ;;
5) printf "%s\t" "Dormant" ;;
6) printf "%s\t" "notPresent" ;;
7) printf "%s\t" "lowerLayerDown" ;;
esac
}
TpLink.IF.IANAifType() {
case ${typeIF[$i]} in
1) printf "%s\n" "other" ;;
2) printf "%s\n" "regular1822" ;;
3) printf "%s\n" "hdh1822" ;;
4) printf "%s\n" "ddnX25" ;;
5) printf "%s\n" "rfc877x25" ;;
6) printf "%s\n" "ethernetCsmacd" ;;
7) printf "%s\n" "iso88023Csmacd" ;;
8) printf "%s\n" "iso88024TokenBus" ;;
9) printf "%s\n" "iso88025TokenRing" ;;
10) printf "%s\n" "iso88026Man" ;;
11) printf "%s\n" "starLan" ;;
12) printf "%s\n" "proteon10Mbit" ;;
13) printf "%s\n" "proteon80Mbit" ;;
14) printf "%s\n" "hyperchannel" ;;
15) printf "%s\n" "fddi" ;;
16) printf "%s\n" "lapb" ;;
17) printf "%s\n" "sdlc" ;;
18) printf "%s\n" "ds1" ;;
19) printf "%s\n" "e1" ;;
20) printf "%s\n" "basicISDN" ;;
21) printf "%s\n" "primaryISDN" ;;
22) printf "%s\n" "propPointToPointSerial" ;;
23) printf "%s\n" "ppp" ;;
24) printf "%s\n" "softwareLoopback" ;;
25) printf "%s\n" "eon" ;;
26) printf "%s\n" "ethernet3Mbit" ;;
27) printf "%s\n" "nsip" ;;
28) printf "%s\n" "slip" ;;
29) printf "%s\n" "ultra" ;;
30) printf "%s\n" "ds3" ;;
31) printf "%s\n" "sip" ;;
32) printf "%s\n" "frameRelay" ;;
33) printf "%s\n" "rs232" ;;
34) printf "%s\n" "para" ;;
35) printf "%s\n" "arcnet" ;;
36) printf "%s\n" "arcnetPlus" ;;
37) printf "%s\n" "atm" ;;
38) printf "%s\n" "miox25" ;;
39) printf "%s\n" "sonet" ;;
40) printf "%s\n" "x25ple" ;;
41) printf "%s\n" "iso88022llc" ;;
42) printf "%s\n" "localTalk" ;;
43) printf "%s\n" "smdsDxi" ;;
44) printf "%s\n" "frameRelayService" ;;
45) printf "%s\n" "v35" ;;
46) printf "%s\n" "hssi" ;;
47) printf "%s\n" "hippi" ;;
48) printf "%s\n" "modem" ;;
49) printf "%s\n" "aal5" ;;
50) printf "%s\n" "sonetPath" ;;
51) printf "%s\n" "sonetVT" ;;
52) printf "%s\n" "smdsIcip" ;;
53) printf "%s\n" "propVirtual" ;;
54) printf "%s\n" "propMultiplexor" ;;
55) printf "%s\n" "ieee80212" ;;
56) printf "%s\n" "fibreChannel" ;;
57) printf "%s\n" "hippiInterface" ;;
58) printf "%s\n" "frameRelayInterconnect" ;;
59) printf "%s\n" "aflane8023" ;;
60) printf "%s\n" "aflane8025" ;;
61) printf "%s\n" "cctEmul" ;;
62) printf "%s\n" "fastEther" ;;
63) printf "%s\n" "isdn" ;;
64) printf "%s\n" "v11" ;;
65) printf "%s\n" "v36" ;;
66) printf "%s\n" "g703at64k" ;;
67) printf "%s\n" "g703at2mb" ;;
68) printf "%s\n" "qllc" ;;
69) printf "%s\n" "fastEtherFX" ;;
70) printf "%s\n" "channel" ;;
71) printf "%s\n" "ieee80211" ;;
72) printf "%s\n" "ibm370parChan" ;;
73) printf "%s\n" "escon" ;;
74) printf "%s\n" "dlsw" ;;
75) printf "%s\n" "isdns" ;;
76) printf "%s\n" "isdnu" ;;
77) printf "%s\n" "lapd" ;;
78) printf "%s\n" "ipSwitch" ;;
79) printf "%s\n" "rsrb" ;;
80) printf "%s\n" "atmLogical" ;;
81) printf "%s\n" "ds0" ;;
82) printf "%s\n" "ds0Bundle" ;;
83) printf "%s\n" "bsc" ;;
84) printf "%s\n" "async" ;;
85) printf "%s\n" "cnr" ;;
86) printf "%s\n" "iso88025Dtr" ;;
87) printf "%s\n" "eplrs" ;;
88) printf "%s\n" "arap" ;;
89) printf "%s\n" "propCnls" ;;
90) printf "%s\n" "hostPad" ;;
91) printf "%s\n" "termPad" ;;
92) printf "%s\n" "frameRelayMPI" ;;
93) printf "%s\n" "x213" ;;
94) printf "%s\n" "adsl" ;;
95) printf "%s\n" "radsl" ;;
96) printf "%s\n" "sdsl" ;;
97) printf "%s\n" "vdsl" ;;
98) printf "%s\n" "iso88025CRFPInt" ;;
99) printf "%s\n" "myrinet" ;;
100) printf "%s\n" "voiceEM" ;;
101) printf "%s\n" "voiceFXO" ;;
102) printf "%s\n" "voiceFXS" ;;
103) printf "%s\n" "voiceEncap" ;;
104) printf "%s\n" "voiceOverIp" ;;
105) printf "%s\n" "atmDxi" ;;
106) printf "%s\n" "atmFuni" ;;
107) printf "%s\n" "atmIma" ;;
108) printf "%s\n" "pppMultilinkBundle" ;;
109) printf "%s\n" "ipOverCdlc" ;;
110) printf "%s\n" "ipOverClaw" ;;
111) printf "%s\n" "stackToStack" ;;
112) printf "%s\n" "virtualIpAddress" ;;
113) printf "%s\n" "mpc" ;;
114) printf "%s\n" "ipOverAtm" ;;
115) printf "%s\n" "iso88025Fiber" ;;
116) printf "%s\n" "tdlc" ;;
117) printf "%s\n" "gigabitEthernet" ;;
118) printf "%s\n" "hdlc" ;;
119) printf "%s\n" "lapf" ;;
120) printf "%s\n" "v37" ;;
121) printf "%s\n" "x25mlp" ;;
122) printf "%s\n" "x25huntGroup" ;;
123) printf "%s\n" "transpHdlc" ;;
124) printf "%s\n" "interleave" ;;
125) printf "%s\n" "fast" ;;
126) printf "%s\n" "ip" ;;
127) printf "%s\n" "docsCableMaclayer" ;;
128) printf "%s\n" "docsCableDownstream" ;;
129) printf "%s\n" "docsCableUpstream" ;;
130) printf "%s\n" "a12MppSwitch" ;;
131) printf "%s\n" "tunnel" ;;
132) printf "%s\n" "coffee" ;;
133) printf "%s\n" "ces" ;;
134) printf "%s\n" "atmSubInterface" ;;
135) printf "%s\n" "l2vlan" ;;
136) printf "%s\n" "l3ipvlan" ;;
137) printf "%s\n" "l3ipxvlan" ;;
138) printf "%s\n" "digitalPowerline" ;;
139) printf "%s\n" "mediaMailOverIp" ;;
140) printf "%s\n" "dtm" ;;
141) printf "%s\n" "dcn" ;;
142) printf "%s\n" "ipForward" ;;
143) printf "%s\n" "msdsl" ;;
144) printf "%s\n" "ieee1394" ;;
145) printf "%s\n" "if-gsn" ;;
146) printf "%s\n" "dvbRccMacLayer" ;;
147) printf "%s\n" "dvbRccDownstream" ;;
148) printf "%s\n" "dvbRccUpstream" ;;
149) printf "%s\n" "atmVirtual" ;;
150) printf "%s\n" "mplsTunnel" ;;
151) printf "%s\n" "srp" ;;
152) printf "%s\n" "voiceOverAtm" ;;
153) printf "%s\n" "voiceOverFrameRelay" ;;
154) printf "%s\n" "idsl" ;;
155) printf "%s\n" "compositeLink" ;;
156) printf "%s\n" "ss7SigLink" ;;
157) printf "%s\n" "propWirelessP2P" ;;
158) printf "%s\n" "frForward" ;;
159) printf "%s\n" "rfc1483" ;;
160) printf "%s\n" "usb" ;;
161) printf "%s\n" "ieee8023adLag" ;;
162) printf "%s\n" "bgppolicyaccounting" ;;
163) printf "%s\n" "frf16MfrBundle" ;;
164) printf "%s\n" "h323Gatekeeper" ;;
165) printf "%s\n" "h323Proxy" ;;
166) printf "%s\n" "mpls" ;;
167) printf "%s\n" "mfSigLink" ;;
168) printf "%s\n" "hdsl2" ;;
169) printf "%s\n" "shdsl" ;;
170) printf "%s\n" "ds1FDL" ;;
171) printf "%s\n" "pos" ;;
172) printf "%s\n" "dvbAsiIn" ;;
173) printf "%s\n" "dvbAsiOut" ;;
174) printf "%s\n" "plc" ;;
175) printf "%s\n" "nfas" ;;
176) printf "%s\n" "tr008" ;;
177) printf "%s\n" "gr303RDT" ;;
178) printf "%s\n" "gr303IDT" ;;
179) printf "%s\n" "isup" ;;
180) printf "%s\n" "propDocsWirelessMaclayer" ;;
181) printf "%s\n" "propDocsWirelessDownstream" ;;
182) printf "%s\n" "propDocsWirelessUpstream" ;;
183) printf "%s\n" "hiperlan2" ;;
184) printf "%s\n" "propBWAp2Mp" ;;
185) printf "%s\n" "sonetOverheadChannel" ;;
186) printf "%s\n" "digitalWrapperOverheadChannel" ;;
187) printf "%s\n" "aal2" ;;
188) printf "%s\n" "radioMAC" ;;
189) printf "%s\n" "atmRadio" ;;
190) printf "%s\n" "imt" ;;
191) printf "%s\n" "mvl" ;;
192) printf "%s\n" "reachDSL" ;;
193) printf "%s\n" "frDlciEndPt" ;;
194) printf "%s\n" "atmVciEndPt" ;;
195) printf "%s\n" "opticalChannel" ;;
196) printf "%s\n" "opticalTransport" ;;
197) printf "%s\n" "propAtm" ;;
198) printf "%s\n" "voiceOverCable" ;;
199) printf "%s\n" "infiniband" ;;
200) printf "%s\n" "teLink" ;;
201) printf "%s\n" "q2931" ;;
202) printf "%s\n" "virtualTg" ;;
203) printf "%s\n" "sipTg" ;;
204) printf "%s\n" "sipSig" ;;
205) printf "%s\n" "docsCableUpstreamChannel" ;;
206) printf "%s\n" "econet" ;;
207) printf "%s\n" "pon155" ;;
208) printf "%s\n" "pon622" ;;
209) printf "%s\n" "bridge" ;;
210) printf "%s\n" "linegroup" ;;
211) printf "%s\n" "voiceEMFGD" ;;
212) printf "%s\n" "voiceFGDEANA" ;;
213) printf "%s\n" "voiceDID" ;;
214) printf "%s\n" "mpegTransport" ;;
215) printf "%s\n" "sixToFour" ;;
216) printf "%s\n" "gtp" ;;
217) printf "%s\n" "pdnEtherLoop1" ;;
218) printf "%s\n" "pdnEtherLoop2" ;;
219) printf "%s\n" "opticalChannelGroup" ;;
220) printf "%s\n" "homepna" ;;
221) printf "%s\n" "gfp" ;;
222) printf "%s\n" "ciscoISLvlan" ;;
223) printf "%s\n" "actelisMetaLOOP" ;;
224) printf "%s\n" "fcipLink" ;;
225) printf "%s\n" "rpr" ;;
226) printf "%s\n" "qam" ;;
227) printf "%s\n" "lmp" ;;
228) printf "%s\n" "cblVectaStar" ;;
229) printf "%s\n" "docsCableMCmtsDownstream" ;;
230) printf "%s\n" "adsl2" ;;
231) printf "%s\n" "macSecControlledIF" ;;
232) printf "%s\n" "macSecUncontrolledIF" ;;
233) printf "%s\n" "aviciOpticalEther" ;;
234) printf "%s\n" "atmbond" ;;
235) printf "%s\n" "voiceFGDOS" ;;
236) printf "%s\n" "mocaVersion1" ;;
237) printf "%s\n" "ieee80216WMAN" ;;
238) printf "%s\n" "adsl2plus" ;;
239) printf "%s\n" "dvbRcsMacLayer" ;;
240) printf "%s\n" "dvbTdm" ;;
241) printf "%s\n" "dvbRcsTdma" ;;
242) printf "%s\n" "x86Laps" ;;
243) printf "%s\n" "wwanPP" ;;
244) printf "%s\n" "wwanPP2" ;;
245) printf "%s\n" "voiceEBS" ;;
246) printf "%s\n" "ifPwType" ;;
247) printf "%s\n" "ilan" ;;
248) printf "%s\n" "pip" ;;
249) printf "%s\n" "aluELP" ;;
250) printf "%s\n" "gpon" ;;
251) printf "%s\n" "vdsl2" ;;
252) printf "%s\n" "capwapDot11Profile" ;;
253) printf "%s\n" "capwapDot11Bss" ;;
254) printf "%s\n" "capwapWtpVirtualRadio" ;;
255) printf "%s\n" "bits" ;;
256) printf "%s\n" "docsCableUpstreamRfPort" ;;
257) printf "%s\n" "cableDownstreamRfPort" ;;
258) printf "%s\n" "vmwareVirtualNic" ;;
259) printf "%s\n" "ieee802154" ;;
260) printf "%s\n" "otnOdu" ;;
261) printf "%s\n" "otnOtu" ;;
262) printf "%s\n" "ifVfiType" ;;
263) printf "%s\n" "g9981" ;;
264) printf "%s\n" "g9982" ;;
265) printf "%s\n" "g9983" ;;
266) printf "%s\n" "aluEpon" ;;
267) printf "%s\n" "aluEponOnu" ;;
268) printf "%s\n" "aluEponPhysicalUni" ;;
269) printf "%s\n" "aluEponLogicalLink" ;;
270) printf "%s\n" "aluGponOnu" ;;
271) printf "%s\n" "aluGponPhysicalUni" ;;
272) printf "%s\n" "vmwareNicTeam" ;;
esac
}
TpLink.ClientConnected() {
TpLink.GetData client
printf "%s\n" "Conneceted clients: $clientCon"
if [[ $clientCon != 0 ]] ; then
printf "\n"
for((i=0; i<${#addressMac[@]}; i++)); do
printf "%s\n" "$((i+1)). ${addressMac[$i]}"
done
fi
}
# - Help
Help.Main() {
echo "Check AP Status"
echo ''
Help.Usage
echo ''
Help.Option
echo ''
Help.Info
echo ''
exit $STATE_UNK
}
Help.Usage() {
printf "%s\n" "Method to compose the execution string"
printf "%s\n" "./$APPNAME -c <SNMP community> -h <host>"
}
Help.Option() {
printf "%s\n" "OPTIONS:"
printf "%s\t%s\t%s\n\t\t\t%s\n" "-c" "--community" "SNMP v2 community string with Read access." " Default is $COMMUNITY."
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-h" "--host" "Host name or IP address to check." " Default is $HOST_NAME."
printf "%s\t%s\t\t%s\n" "-H" "--help" "Show script help"
printf "%s\t%s\t%s\n" "-V" "--version" "Show script version"
}
Help.IPMI() {
printf "\n%s\n\n" "TpLink AP EAP265HD Check Function"
printf "%s\t%s\n\n" "Check" "Description"
printf "%s\t%s\n" "all" "Full monitoring check with single output"
printf "%s\t%s\n" "cpu" "Monitoring CPU load"
printf "%s\t%s\n" "err" "Monitoring system error"
printf "%s\t%s\n" "fan" "Monitoring fan speed"
printf "%s\t%s\n" "ram" "Monitoring RAM load"
printf "%s\t%s\n" "hw" "Monitoring Hardware status"
printf "%s\t%s\n" "temp" "Monitoring temperature sensor"
}
Help.Info() {
printf "%s\t%s\t%s\n" "INFO:" "$NAME" "$VERSION" "" "$AUTHOR" "$URL"
}
# - COMMAND LINE ENCODER
while test -n "$1"; do
case "$1" in
--host | -h)
HOST_NAME=$2
shift ;;
--comunity | -c)
COMMUNITY=$2
shift ;;
--type | -t)
TpLink.Main $2
shift ;;
--help | -H)
Help.Main ;;
--version | -V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
print_help
exit $STATE_UNK ;;
esac
shift
done
TpLink.Main
+214
View File
@@ -0,0 +1,214 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check ESXi vCenter"
AUTHOR="Kalarumeth"
VERSION="v1.0"
URL="https://github.com/Kalarumeth/ESXi-Monitoring"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
SNMPVERSION="2c"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
eWarning=0
eCritical=0
eUnknown=0
# - OID
ESXi.OIDS() {
OID_osName=".1.3.6.1.2.1.47.1.2.1.1.2.1"
OID_fwRev=".1.3.6.1.2.1.47.1.1.1.1.9.1"
OID_serviceTag=".1.3.6.1.2.1.47.1.1.1.1.11.1"
OID_sysManufacturer=".1.3.6.1.2.1.47.1.1.1.1.12.1"
OID_sysModel=".1.3.6.1.2.1.47.1.1.1.1.13.1"
OID_prodName=".1.3.6.1.4.1.6876.1.1.0"
OID_prodVersion=".1.3.6.1.4.1.6876.1.2.0"
OID_prodBuild=".1.3.6.1.4.1.6876.1.4.0"
OID_prodUpdate=".1.3.6.1.4.1.6876.1.5.0"
OID_prodPatch=".1.3.6.1.4.1.6876.1.6.0"
OID_vmName=".1.3.6.1.4.1.6876.2.1.1.2"
}
# - MAIN CODE
Source.HostAlive() {
for server in $HOST_NAME; do
ping -c1 -W1 -q $server &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
fi
done
}
Source.SNMP() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oe -c $COMMUNITY $HOST_NAME $1
}
Source.vSpheredb.Host() {
for host in $HOST_NAME; do
icingacli vspheredb check host --name $host
exit $?
done
}
Source.vSpheredb.Vm() {
for vm in $1; do
icingacli vspheredb check vm --name $vm
Source.e
done
}
Source.e() {
case $? in
1) eWarning=$(($eWarning + 1)) ;;
2) eCritical=$(($eCritical + 1)) ;;
3) eUnknown=$(($eUnknown + 1)) ;;
esac
}
# - ESXi vCenter Health Check
ESXi.Main() {
Source.HostAlive
case $1 in
host)
Source.vSpheredb.Host
exit $? ;;
info)
ESXi.Info
exit $STATE ;;
vm)
ESXi.VmList
exit $? ;;
*)
echo "Unknown check!"
Help.Function
exit $STATE_UNK ;;
esac
}
ESXi.GetData() {
ESXi.OIDS
case $1 in
info) osName=$(Source.SNMP $OID_osName | cut -d '"' -f 2)
fwRev=$(Source.SNMP $OID_fwRev | cut -d '"' -f 2)
serviceTag=$(Source.SNMP $OID_serviceTag | cut -d '"' -f 2)
sysManufacturer=$(Source.SNMP $OID_sysManufacturer | cut -d '"' -f 2)
sysModel=$(Source.SNMP $OID_sysModel | cut -d '"' -f 2)
prodName=$(Source.SNMP $OID_prodName | cut -d '"' -f 2)
prodVersion=$(Source.SNMP $OID_prodVersion | cut -d '"' -f 2)
prodBuild=$(Source.SNMP $OID_prodBuild | cut -d '"' -f 2)
prodUpdate=$(Source.SNMP $OID_prodUpdate | cut -d '"' -f 2)
prodPatch=$(Source.SNMP $OID_prodPatch | cut -d '"' -f 2) ;;
vm) vmList=($(Source.SNMP $OID_vmName | cut -d '"' -f 2)) ;;
esac
}
ESXi.Info() {
ESXi.GetData info
printf "%s\n" "$osName Rev. $fwRev" "$sysManufacturer" "Model: $sysModel" "Service Tag: $serviceTag" "$prodName $prodVersion" "Build: $prodBuild" "Update: $prodUpdate" "Patch: $prodPatch"
}
ESXi.VmList() {
ESXi.GetData vm
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
else
for((i=0; i<${#vmList[@]}; i++))
do
printf "%s\n" "$(($i+1)) - ${vmList[$i]}"
Source.vSpheredb.Vm ${vmList[$i]}
printf "\n"
done
if [[ $eWarning != 0 ]] && [[ $eCritical == 0 ]] ; then
exit $STATE_WARN
elif [[ $eCritical != 0 ]] && [[ $eUnknown != 0 ]] ; then
exit $STATE_CRIT
fi
fi
}
# - Help
Help.Main() {
echo "Check ESXi Status"
echo ''
Help.Usage
echo ''
Help.Option
echo ''
Help.Info
echo ''
exit $STATE_UNK
}
Help.Usage() {
printf "%s\n" "Method to compose the execution string"
printf "%s\n" "./$APPNAME -c <SNMP community> -h <host> -t [host/info/vm]"
}
Help.Option() {
printf "%s\n" "OPTIONS:"
printf "%s\t%s\t%s\n\t\t\t%s\n" "-c" "--community" "SNMP v2 community string with Read access." " Default is $COMMUNITY."
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-h" "--host" "Host name or IP address to check." " Default is $HOST_NAME."
printf "%s\t%s\t\t%s\n" "-t" "--type" "Argument for check function"
printf "%s\t%s\t\t%s\n" "-H" "--help" "Show script help"
printf "%s\t%s\t%s\n" "-V" "--version" "Show script version"
}
Help.Function() {
printf "\n%s\n\n" "ESXi vCenter Check Function"
printf "%s\t%s\n\n" "Check" "Description"
printf "%s\t%s\n" "host" "Get Host check from vsphere plugin."
printf "%s\t%s\n" "info" "Get Information from snmpwalk."
printf "%s\t%s\n" "vm" "Get Virtual Machine from vsphere plugin."
}
Help.Info() {
printf "%s\t%s\t%s\n" "INFO:" "$NAME" "$VERSION" "" "$AUTHOR" "$URL"
}
# - COMMAND LINE ENCODER
while test -n "$1"; do
case "$1" in
--host | -h)
HOST_NAME=$2
shift ;;
--comunity | -c)
COMMUNITY=$2
shift ;;
--type | -t)
ESXi.Main $2
shift ;;
--help | -H)
Help.Main ;;
--version | -V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
print_help
exit $STATE_UNK ;;
esac
shift
done
@@ -0,0 +1,175 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check ESXi vCenter"
AUTHOR="Kalarumeth"
VERSION="v0.1"
URL="https://github.com/Kalarumeth/ESXi-Monitoring"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
SNMPVERSION="2c"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
# - OID
ESXi.OIDS() {
OID_osName=".1.3.6.1.2.1.47.1.2.1.1.2.1"
OID_fwRev=".1.3.6.1.2.1.47.1.1.1.1.9.1"
OID_serviceTag=".1.3.6.1.2.1.47.1.1.1.1.11.1"
OID_sysManufacturer=".1.3.6.1.2.1.47.1.1.1.1.12.1"
OID_sysModel=".1.3.6.1.2.1.47.1.1.1.1.13.1"
OID_prodName=".1.3.6.1.4.1.6876.1.1.0"
OID_prodVersion=".1.3.6.1.4.1.6876.1.2.0"
OID_prodBuild=".1.3.6.1.4.1.6876.1.4.0"
OID_prodUpdate=".1.3.6.1.4.1.6876.1.5.0"
OID_prodPatch=".1.3.6.1.4.1.6876.1.6.0"
}
# - MAIN CODE
Source.HostAlive() {
for server in $HOST_NAME; do
ping -c1 -W1 -q $server &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
fi
done
}
Source.SNMP() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oe -c $COMMUNITY $HOST_NAME $1
}
Source.vSpheredb.Host() {
icingacli vspheredb check host --name $HOST_NAME
}
Source.vSpheredb.Vm() {
icingacli vspheredb check vm --name $VMNAME
}
# - ESXi vCenter Health Check
ESXi.Main() {
Source.HostAlive
case $1 in
info)
ESXi.Info
exit $STATE ;;
host)
Source.vSpheredb.Host
exit $? ;;
vm)
Source.vSpheredb.Vm
exit $? ;;
*)
echo "Unknown check!"
Help.Function
exit $STATE_UNK ;;
esac
}
ESXi.GetData() {
ESXi.OIDS
case $1 in
info) osName=$(Source.SNMP $OID_osName | cut -d '"' -f 2)
fwRev=$(Source.SNMP $OID_fwRev | cut -d '"' -f 2)
serviceTag=$(Source.SNMP $OID_serviceTag | cut -d '"' -f 2)
sysManufacturer=$(Source.SNMP $OID_sysManufacturer | cut -d '"' -f 2)
sysModel=$(Source.SNMP $OID_sysModel | cut -d '"' -f 2)
prodName=$(Source.SNMP $OID_prodName | cut -d '"' -f 2)
prodVersion=$(Source.SNMP $OID_prodVersion | cut -d '"' -f 2)
prodBuild=$(Source.SNMP $OID_prodBuild | cut -d '"' -f 2)
prodUpdate=$(Source.SNMP $OID_prodUpdate | cut -d '"' -f 2)
prodPatch=$(Source.SNMP $OID_prodPatch | cut -d '"' -f 2) ;;
esac
}
ESXi.Info() {
ESXi.GetData info
printf "%s\n" "$osName Rev. $fwRev" "$sysManufacturer Model: $sysModel Service Tag: $serviceTag" "$prodName $prodVersion Build: $prodBuild Update: $prodUpdate Patch: $prodPatch"
}
# - Help
Help.Main() {
echo "Check ESXi Status"
echo ''
Help.Usage
echo ''
Help.Option
echo ''
Help.Info
echo ''
exit $STATE_UNK
}
Help.Usage() {
printf "%s\n" "Method to compose the execution string"
printf "%s\n" "./$APPNAME -c <SNMP community> -h <host>"
}
Help.Option() {
printf "%s\n" "OPTIONS:"
printf "%s\t%s\t%s\n\t\t\t%s\n" "-c" "--community" "SNMP v2 community string with Read access." " Default is $COMMUNITY."
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-h" "--host" "Host name or IP address to check." " Default is $HOST_NAME."
printf "%s\t%s\t\t%s\n" "-t" "--type" "Argument for check function"
printf "%s\t%s\t\t%s\n" "-H" "--help" "Show script help"
printf "%s\t%s\t%s\n" "-V" "--version" "Show script version"
}
Help.Function() {
printf "\n%s\n\n" "ESXi vCenter Check Function"
printf "%s\t%s\n\n" "Check" "Description"
printf "%s\t%s\n" "info" "System Information"
}
Help.Info() {
printf "%s\t%s\t%s\n" "INFO:" "$NAME" "$VERSION" "" "$AUTHOR" "$URL"
}
# - COMMAND LINE ENCODER
while test -n "$1"; do
case "$1" in
--host | -h)
HOST_NAME=$2
shift ;;
--comunity | -c)
COMMUNITY=$2
shift ;;
--type | -t)
ESXi.Main $2
shift ;;
--VM | -vm)
VMNAME=$2
shift ;;
--help | -H)
Help.Main ;;
--version | -V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
print_help
exit $STATE_UNK ;;
esac
shift
done
ESXi.Main
@@ -0,0 +1,235 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check Switch HPE OfficeConnect 1920s"
AUTHOR="Kalarumeth"
VERSION="v0.1"
URL="https://github.com/Kalarumeth"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
SNMPVERSION="2c"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
# - OID
HPE.OIDS() {
#Info
OID_sysDescr="1.3.6.1.2.1.1.1.0"
OID_sysUptimeIstance="1.3.6.1.2.1.1.3"
OID_sysSerial="1.3.6.1.2.1.47.1.1.1.1.11.1"
OID_sysMacAddres="1.3.6.1.2.1.67.1.2.1.1.2.0"
#interface
OID_ifName="1.3.6.1.2.1.31.1.1.1.1"
OID_ifInErrors="1.3.6.1.2.1.2.2.1.14"
OID_ifOutErrors="1.3.6.1.2.1.2.2.1.20"
#Vlan
OID_vlanID="1.3.6.1.2.1.17.7.1.4.2.1.3.0"
OID_vlanName="1.3.6.1.2.1.17.7.1.4.3.1.1"
OID_vlanEntry="1.3.6.1.2.1.17.7.1.2.1.1.2"
}
# - MAIN CODE
Script.HostAlive() {
for server in $HOST_NAME; do
ping -c1 -W1 -q $server &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
fi
done
}
Script.SNMP() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oe -c $COMMUNITY $HOST_NAME $1
}
Script.SNMP.Hex() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oa -c $COMMUNITY $HOST_NAME $1
}
# - Switch HPE OfficeConnect 1920s Health Check
HPE.Main() {
Script.HostAlive
case $1 in
info)
HPE.Info
exit $STATE ;;
if)
HPE.Interface
exit $STATE ;;
vlan)
HPE.Vlan
exit $STATE ;;
*)
echo "Unknown check!"
Help.HPE
exit $STATE_UNK ;;
esac
}
HPE.GetData() {
HPE.OIDS
case $1 in
info)
raw_sysDescr=$(Script.SNMP $OID_sysDescr | cut -d '"' -f 2)
IFS=',' read -ra sysDescr <<< $raw_sysDescr;
sysUptimeIstance=$(Script.SNMP $OID_sysUptimeIstance | cut -d ')' -f 2 )
sysSerial=$(Script.SNMP $OID_sysSerial | cut -d '"' -f 2)
sysMacAddres=$(Script.SNMP $OID_sysMacAddres | cut -d '"' -f 2);;
interface)
raw_ifName=$(Script.SNMP $OID_ifName | cut -d ' ' -f 4)
raw_ifInErrors=$(Script.SNMP $OID_ifInErrors | cut -d ' ' -f 4)
raw_ifOutErrors=$(Script.SNMP $OID_ifOutErrors | cut -d ' ' -f 4)
readarray -t ifName <<< $raw_ifName
readarray -t ifInErrors <<< $raw_ifInErrors
readarray -t ifOutErrors <<< $raw_ifOutErrors ;;
vlan)
raw_vlanID=$(Script.SNMP $OID_vlanID | cut -d ' ' -f 4 | sed "s/$//g")
raw_vlanName=$(Script.SNMP $OID_vlanName | cut -d '"' -f 2 | sed "s/$//g")
raw_vlanEntry=$(Script.SNMP $OID_vlanEntry | cut -d ' ' -f 4 | sed "s/$//g")
readarray -t vlanID <<< $raw_vlanID
readarray -t vlanName <<< $raw_vlanName
readarray -t vlanEntry <<< $raw_vlanEntry ;;
esac
}
HPE.Info() {
HPE.GetData info
printf "%s\n\n" "${sysDescr[0]}"
printf "%s\t%s\n" "UpTime:" "$sysUptimeIstance"
printf "%s\t%s\n" "S/N:" " $sysSerial"
printf "%s\t%s\n" "Relase:" "${sysDescr[1]}"
printf "%s\t%s\n" "Os:" "${sysDescr[2]}"
printf "%s\t%s\n" "Bios:" "${sysDescr[3]}"
printf "%s\t%s\n" "Mac:" " $sysMacAddres"
}
HPE.Interface() {
HPE.GetData interface
ErrorCounter=0
for ((i=0; i<${#ifName[@]}; i++));
do
if [[ ${ifInErrors[$i]} != 0 || ${ifOutErrors[$i]} != 0 ]]; then
ErrorCounter=$((ErrorCounter + 1))
fi
done
for Error in "$ErrorCounter"; do
if [[ $Error == 0 ]] ; then
printf "%s\t%s\n\n" "OK!" "All interface operating normally."
break
else
printf "%s\n\n" "Warn! $ErrorCounter inteface have error."
printf "%s\t%s\t%s\n" "InEr" "OutEr" "If"
printf "%s\n" "========================="
for ((i=0; i<${#ifName[@]}; i++));
do
if [[ ${ifInErrors[$i]} != 0 || ${ifOutErrors[$i]} != 0 ]] ; then
printf "%s\t%s\t%s\n" "${ifInErrors[$i]}" "${ifOutErrors[$i]}" "${ifName[$i]}"
fi
done
STATE=$STATE_WARN
break
fi
done
}
HPE.Vlan() {
HPE.GetData vlan
printf "%s\n\n" "${#vlanID[@]} Exist Vlan"
printf "%s\t%s\t%s\n" "ID" "Entry" "Name"
printf "%s\n" "============================="
for ((i=0; i<${#vlanID[@]}; i++))
do
printf "%s\t%s\t%s\n" "${vlanID[$i]}" "${vlanEntry[$i]}" "${vlanName[$i]}"
done
}
# - Help
Help.Main() {
echo $NAME
echo ''
Help.Usage
echo ''
Help.Option
echo ''
Help.Info
echo ''
exit $STATE_UNK
}
Help.Usage() {
printf "%s\n" "Method to compose the execution string"
printf "%s\n" "./$APPNAME -c <SNMP community> -h <host>"
}
Help.Option() {
printf "%s\n" "OPTIONS:"
printf "%s\t%s\t%s\n\t\t\t%s\n" "-c" "--community" "SNMP v2 community string with Read access." " Default is $COMMUNITY."
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-h" "--host" "Host name or IP address to check." " Default is $HOST_NAME."
printf "%s\t%s\t\t%s\n" "-H" "--help" "Show script help"
printf "%s\t%s\t%s\n" "-V" "--version" "Show script version"
}
Help.HPE() {
printf "\n%s\n\n" "HPE OfficeConnect 1920s Check Function"
printf "%s\t%s\n\n" "Check" "Description"
printf "%s\t%s\n" "info" "Print Switch basic information"
printf "%s\t%s\n" "if" "Monitoring interface"
printf "%s\t%s\n" "vlan" "Monitoring Vlan"
}
Help.Info() {
printf "%s\t%s\t%s\n" "INFO:" "$NAME" "$VERSION" "" "$AUTHOR" "$URL"
}
# - COMMAND LINE ENCODER
while test -n "$1"; do
case "$1" in
--host | -h)
HOST_NAME=$2
shift ;;
--comunity | -c)
COMMUNITY=$2
shift ;;
--type | -t)
HPE.Main $2
shift ;;
--help | -H)
Help.Main ;;
--version | -V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
print_help
exit $STATE_UNK ;;
esac
shift
done
HPE.Main
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
Copyright 2022 Kalarumeth - https://github.com/Kalarumeth
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,172 @@
# Check AirOs
<img src="https://img.shields.io/badge/Code-Bash-orange?style=flat-square&logo=GNU%20Bash&logoColor=orange" alt="Bash"> <img src="https://img.shields.io/badge/Device-AirOs-0559C9?style=flat-square&logo=Ubiquiti" alt="Checked Device"> <img src="https://img.shields.io/badge/Release-v1.0-green?style=flat-square" alt="Release">
<img src="https://img.shields.io/badge/Dev by-Kalarumeth-blueviolet?style=flat-square" alt="Dev"> <img src="https://img.shields.io/badge/License-MIT-blue?style=flat-square" alt="MIT License">
The following script is used to monitor and display the basic information of Ubiquity AirOs via snmpwalk scripts and are processed to provide easy-to-read data. It can be run separately or integrated into Icinga2 as a monitoring plugin.
**Important**: *snmpwalk command is required for script to run correctly*
# Update Note
## 1.0 - Release
+ Release
# Installation
1. Download the script and give it privilages for run
```
curl -LJO https://raw.githubusercontent.com/Kalarumeth/Monitoring-AirOs/main/check_airos.sh
```
2. Move to Icinga Plugin Dir
```
Default location: /usr/lib/nagios/plugins
```
3. Add command to Icinga
```
object CheckCommand "check_airos" {
import "plugin-check-command"
command = [ PluginDir + "/check_airos.sh" ]
arguments += {
"-c" = {
order = 0
value = "$snmp_community$"
}
"-cr" = {
order = 3
value = "$crit$"
}
"-h" = {
order = 1
required = true
value = "$address$"
}
"-t" = {
order = 4
required = true
value = "$airos_type$"
}
"-wa" = {
order = 2
value = "$warn$"
}
}
}
```
# Functions
The Script is designed to monitor the following functions:
- **[airmax] AirMax:**
Show all airMax Statistics of device
```
AirMax Information
Enabled: On
Quality: 96 %
Capacity: 45 %
Priority: None
NoAck: Off
```
- **[info] Info:**
Show basic information
```
Device Information
Location: OUTSIDE
UpTime: 2 days, 18:03:25.00
LastChange: 17:01:14.00
Ubiquiti Networks, Inc. LiteBeam M5
airOs Ver: XW.ar934x.v6.3.6.33330.210818.1930
```
- **[radio] Radio:**
Show status and statistics of radio
```
Radio Information
Mode: AP Wireless Distribution System
Country: 380
Frequency: 5185
DFS: Off
TxPower: 0
Distance: 0
Chainmask: 1
Antenna: 11x14 - 23 dBi
```
- **[ram] Ram:**
Show ram usage
```
OK! RAM used: 25.27 / 62.14 Mb (40.67%)
RAM free: 36.86 Mb (59.33%)
Buffer: 2.99 Mb
Cache: 0 Kb
```
- **[station] Station:**
Show station information, work only on station setup
```
Station Information
Name: AP041
Signal: -41 dBm
Noise floor: -100
CCQ: 99 %
Con. Time: 2
TX/RX Rate: 150 MB / 150 MB
TX/RX Bytes: 3.39 GB / 7.88 GB
```
- **[wireless] Wireless:**
Show wireless information
```
Wireless Information
SSID: Bridge
Hide: On
Signal: -42 dBm
RSSI: 54 dBm
CCQ: 99
Noise floor: -99
TX/RX Rate: 150 MB / 150 MB
Security: WPA2
WDS: On
Ap Repeater: Off
Channel Width: 40
Station Count: 1
```
# How it work
Method to compose the execution string:
./check_airos.sh -c <SNMP community> -h <host> [-wa <value> -cr <value>] -t <object>
### OPTIONS:
```
-c --community SNMP v2 community string with Read access.
Default is: public.
-h --host [REQUIRED OPTION] Host name or IP address to check.
Default is: localhost.
-wa --allert-wa Defines the threshold for Warning.
Default is: 75.
-cr --allert-cr Defines the threshold for Critical.
Default is: 50.
-t --type [REQUIRED OPTION] Field for select element to check on WatchGuard Device.
{ airmax | info | radio | ram | station | wireless }.
-H --help Show script help.
-V --version Show script version.
```
# Credits
### Author
Kalarumeth - https://github.com/Kalarumeth
### License
MIT License - Copyright 2022 Kalarumeth
@@ -0,0 +1,89 @@
SNMPwalk on Ubiquiti LiteBeam M5
Device Information
iso.2.840.10036.3.1.2.1.2.5 = STRING: "Ubiquiti Networks, Inc." dot11manufacturerName
iso.2.840.10036.3.1.2.1.3.5 = STRING: "LiteBeam M5" dot11manufacturerProductName
iso.2.840.10036.3.1.2.1.4.5 = STRING: "XW.ar934x.v6.3.6.33330.210818.1930" dot11manufacturerPro
iso.3.6.1.2.1.1.1.0 = STRING: "Linux 2.6.32.71 #1 Wed Aug 18 19:31:33 EEST 2021 mips" sysDescr
iso.3.6.1.2.1.1.3.0 = Timeticks: (58100) 0:09:41.00 sysUpTime
iso.3.6.1.2.1.1.4.0 = STRING: "PAL" sysContact
iso.3.6.1.2.1.1.5.0 = STRING: "PALAP052" sysName
iso.3.6.1.2.1.1.6.0 = STRING: "PAL5" sysLocation
iso.3.6.1.2.1.1.7.0 = INTEGER: 79 sysServices
iso.3.6.1.2.1.1.8.0 = Timeticks: (29700) 0:04:57.00 sysORLastChange
Memory
iso.3.6.1.4.1.10002.1.1.1.1.1.0 = Gauge32: 62136 memTotal KB
iso.3.6.1.4.1.10002.1.1.1.1.2.0 = Gauge32: 40468 memFree KB
iso.3.6.1.4.1.10002.1.1.1.1.3.0 = Gauge32: 1980 memBuffer KB
iso.3.6.1.4.1.10002.1.1.1.1.4.0 = Gauge32: 0 memCache KB
Cpu
iso.3.6.1.4.1.10002.1.1.1.2.1.0 = Gauge32: 0 cpuModLoad
iso.3.6.1.4.1.10002.1.1.1.2.2.0 = Gauge32: 0 cpuModUsage
Radio status & statistics
iso.3.6.1.4.1.41112.1.4.1.1.1.1 = INTEGER: 5
iso.3.6.1.4.1.41112.1.4.1.1.2.1 = INTEGER: 1 ubntRadioMode Radio mode sta(1), ap(2), aprepeater(3), apwds(4)
iso.3.6.1.4.1.41112.1.4.1.1.3.1 = INTEGER: 380 ubntRadioCCode Country code
iso.3.6.1.4.1.41112.1.4.1.1.4.1 = INTEGER: 5180 ubntRadioFreq Operation frequency
iso.3.6.1.4.1.41112.1.4.1.1.5.1 = INTEGER: 2 ubntRadioDfsEnabled DFS status
iso.3.6.1.4.1.41112.1.4.1.1.6.1 = INTEGER: 0 ubntRadioTxPower Transmit power
iso.3.6.1.4.1.41112.1.4.1.1.7.1 = INTEGER: 0 ubntRadioDistance Distance
iso.3.6.1.4.1.41112.1.4.1.1.8.1 = INTEGER: 1 ubntRadioChainmask Chainmask
iso.3.6.1.4.1.41112.1.4.1.1.9.1 = STRING: "11x14 - 23 dBi" ubntRadioAntenna Antenna
Wireless Statistic
iso.3.6.1.4.1.41112.1.4.5.1.1.1 = INTEGER: 5 wireless index
iso.3.6.1.4.1.41112.1.4.5.1.2.1 = STRING: "PAL2-PAL5 Bridge" ubntWlStatSsid SSID
iso.3.6.1.4.1.41112.1.4.5.1.3.1 = INTEGER: 2 ubntWlStatHideSsid hide on/[off]
iso.3.6.1.4.1.41112.1.4.5.1.4.1 = Hex-STRING: 68 D7 9A 9C CC D4 ubntWlStatApMac AP MAC
iso.3.6.1.4.1.41112.1.4.5.1.5.1 = INTEGER: -47 ubntWlStatSignal Intensità del segnale, dbm
iso.3.6.1.4.1.41112.1.4.5.1.6.1 = INTEGER: 49 ubntWlStatRssi RSSI, dbm
iso.3.6.1.4.1.41112.1.4.5.1.7.1 = INTEGER: 86 ubntWlStatCcq Client Connection Quality %
iso.3.6.1.4.1.41112.1.4.5.1.8.1 = INTEGER: -98 ubntWlStatNoiseFloor Rumore di fondo dbm
iso.3.6.1.4.1.41112.1.4.5.1.9.1 = INTEGER: 150000000 ubntWlStatTxRate TX
iso.3.6.1.4.1.41112.1.4.5.1.10.1 = INTEGER: 150000000 ubntWlStatRxRate RX Mbps
iso.3.6.1.4.1.41112.1.4.5.1.11.1 = STRING: "WPA2" ubntWlStatSecurity
iso.3.6.1.4.1.41112.1.4.5.1.12.1 = INTEGER: 2 ubntWlStatWdsEnabled on/off
iso.3.6.1.4.1.41112.1.4.5.1.13.1 = INTEGER: 2 ubntWlStatApRepeater on/off
iso.3.6.1.4.1.41112.1.4.5.1.14.1 = INTEGER: 40 ubntWlStatChanWidth
iso.3.6.1.4.1.41112.1.4.5.1.15.1 = Gauge32: 1 ubntWlStatStaCount
airMax Statistic
iso.3.6.1.4.1.41112.1.4.6.1.1.1 = INTEGER: 5 airMax index
iso.3.6.1.4.1.41112.1.4.6.1.2.1 = INTEGER: 1 ubntAirMaxEnabled airMax [on]/off
iso.3.6.1.4.1.41112.1.4.6.1.3.1 = INTEGER: 97 ubntAirMaxQuality Qualità airMax %
iso.3.6.1.4.1.41112.1.4.6.1.4.1 = INTEGER: 45 ubntAirMaxCapacity Capacità airMax
iso.3.6.1.4.1.41112.1.4.6.1.5.1 = INTEGER: 2 ubntAirMaxPriority Priority none(3)/high(0)/low(2)/medium(1)
iso.3.6.1.4.1.41112.1.4.6.1.6.1 = INTEGER: 2 ubntAirMaxNoAck NoACK on/[off]
Station Statistic work only for station
iso.3.6.1.4.1.41112.1.4.7.1.1.1.104.215.154.156.204.212 = Hex-STRING: 68 D7 9A 9C CC D4 ubntStaMac Mac
iso.3.6.1.4.1.41112.1.4.7.1.2.1.104.215.154.156.204.212 = STRING: "PALAP051" ubntStaName Hostname station name
iso.3.6.1.4.1.41112.1.4.7.1.3.1.104.215.154.156.204.212 = INTEGER: -47 ubntStaSignal Signal strenght, dBm
iso.3.6.1.4.1.41112.1.4.7.1.4.1.104.215.154.156.204.212 = INTEGER: -98 ubntStaNoiseFloor Noise floor
iso.3.6.1.4.1.41112.1.4.7.1.5.1.104.215.154.156.204.212 = INTEGER: 0 ubntStaDistance Distance
iso.3.6.1.4.1.41112.1.4.7.1.6.1.104.215.154.156.204.212 = INTEGER: 88 ubntStaCcq CCQ %
iso.3.6.1.4.1.41112.1.4.7.1.7.1.104.215.154.156.204.212 = INTEGER: 3 ubntStaAmp airMax priority
iso.3.6.1.4.1.41112.1.4.7.1.8.1.104.215.154.156.204.212 = INTEGER: 0 ubntStaAmq airMax Quality
iso.3.6.1.4.1.41112.1.4.7.1.9.1.104.215.154.156.204.212 = INTEGER: 0 ubntStaAmc airMax Capacity
iso.3.6.1.4.1.41112.1.4.7.1.10.1.104.215.154.156.204.212 = IpAddress: 172.16.252.4 ubntStaLastIp last ip
iso.3.6.1.4.1.41112.1.4.7.1.11.1.104.215.154.156.204.212 = INTEGER: 150000000 ubntStaTxRate TX rate
iso.3.6.1.4.1.41112.1.4.7.1.12.1.104.215.154.156.204.212 = INTEGER: 150000000 ubntStaRxRate RX rate
iso.3.6.1.4.1.41112.1.4.7.1.13.1.104.215.154.156.204.212 = Counter64: 51875 ubntStaTxBytes TX Bytes
iso.3.6.1.4.1.41112.1.4.7.1.14.1.104.215.154.156.204.212 = Counter64: 23356 ubntStaRxBytes RX Bytes
iso.3.6.1.4.1.41112.1.4.7.1.15.1.104.215.154.156.204.212 = Timeticks: (19800) 0:03:18.00 ubntStaConnTime Connection time
End of MIB
the selected device is not a station
@@ -0,0 +1,448 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check Ubiquiti LiteBeam M5"
AUTHOR="Kalarumeth"
VERSION="v0.1"
URL="https://github.com/Kalarumeth"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
SNMPVERSION="1"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
# - Range Variables
WA=75
CR=50
# - OID
UBNT.GetOIDS() {
#Device Information
OID_dot11manufacturerName="1.2.840.10036.3.1.2.1.2.5"
OID_dot11manufacturerProductName="1.2.840.10036.3.1.2.1.3.5"
OID_dot11manufacturerProductVersion="1.2.840.10036.3.1.2.1.4.5"
OID_sysDescr="1.3.6.1.2.1.1.1.0"
OID_sysUpTime="1.3.6.1.2.1.1.3.0"
OID_sysContact="1.3.6.1.2.1.1.4.0"
OID_sysName="1.3.6.1.2.1.1.5.0"
OID_sysLocation="1.3.6.1.2.1.1.6.0"
OID_sysORLastChange="1.3.6.1.2.1.1.8.0"
#Memory
OID_memTotal="1.3.6.1.4.1.10002.1.1.1.1.1.0"
OID_memFree="1.3.6.1.4.1.10002.1.1.1.1.2.0"
OID_memBuffer="1.3.6.1.4.1.10002.1.1.1.1.3.0"
OID_memCache="1.3.6.1.4.1.10002.1.1.1.1.4.0"
#Radio status & statistics
OID_ubntRadioMode="1.3.6.1.4.1.41112.1.4.1.1.2.1"
OID_ubntRadioCCode="1.3.6.1.4.1.41112.1.4.1.1.3.1"
OID_ubntRadioFreq="1.3.6.1.4.1.41112.1.4.1.1.4.1"
OID_ubntRadioDfsEnabled="1.3.6.1.4.1.41112.1.4.1.1.5.1"
OID_ubntRadioTxPower="1.3.6.1.4.1.41112.1.4.1.1.6.1"
OID_ubntRadioDistance="1.3.6.1.4.1.41112.1.4.1.1.7.1"
OID_ubntRadioChainmask="1.3.6.1.4.1.41112.1.4.1.1.8.1"
OID_ubntRadioAntenna="1.3.6.1.4.1.41112.1.4.1.1.9.1"
#Wireless statistics
OID_ubntWlStatSsid="1.3.6.1.4.1.41112.1.4.5.1.2.1"
OID_ubntWlStatHideSsid="1.3.6.1.4.1.41112.1.4.5.1.3.1"
OID_ubntWlStatApMac="1.3.6.1.4.1.41112.1.4.5.1.4.1"
OID_ubntWlStatSignal="1.3.6.1.4.1.41112.1.4.5.1.5.1"
OID_ubntWlStatRssi="1.3.6.1.4.1.41112.1.4.5.1.6.1"
OID_ubntWlStatCcq="1.3.6.1.4.1.41112.1.4.5.1.7.1"
OID_ubntWlStatNoiseFloor="1.3.6.1.4.1.41112.1.4.5.1.8.1"
OID_ubntWlStatTxRate="1.3.6.1.4.1.41112.1.4.5.1.9.1"
OID_ubntWlStatRxRate="1.3.6.1.4.1.41112.1.4.5.1.10.1"
OID_ubntWlStatSecurity="1.3.6.1.4.1.41112.1.4.5.1.11.1"
OID_ubntWlStatWdsEnabled="1.3.6.1.4.1.41112.1.4.5.1.12.1"
OID_ubntWlStatApRepeater="1.3.6.1.4.1.41112.1.4.5.1.13.1"
OID_ubntWlStatChanWidth="1.3.6.1.4.1.41112.1.4.5.1.14.1"
OID_ubntWlStatStaCount="1.3.6.1.4.1.41112.1.4.5.1.15.1"
#AirMax Statistics
OID_ubntAirMaxEnabled="1.3.6.1.4.1.41112.1.4.6.1.2.1"
OID_ubntAirMaxQuality="1.3.6.1.4.1.41112.1.4.6.1.3.1"
OID_ubntAirMaxCapacity="1.3.6.1.4.1.41112.1.4.6.1.4.1"
OID_ubntAirMaxPriority="1.3.6.1.4.1.41112.1.4.6.1.5.1"
OID_ubntAirMaxNoAck="1.3.6.1.4.1.41112.1.4.6.1.6.1"
#Station Statistics
OID_ubntStaName="1.3.6.1.4.1.41112.1.4.7.1.2.1.104.215.154.156.204.212"
OID_ubntStaSignal="1.3.6.1.4.1.41112.1.4.7.1.3.1.104.215.154.156.204.212"
OID_ubntStaNoiseFloor="1.3.6.1.4.1.41112.1.4.7.1.4.1.104.215.154.156.204.212"
OID_ubntStaDistance="1.3.6.1.4.1.41112.1.4.7.1.5.1.104.215.154.156.204.212"
OID_ubntStaCcq="1.3.6.1.4.1.41112.1.4.7.1.6.1.104.215.154.156.204.212"
OID_ubntStaAmp="1.3.6.1.4.1.41112.1.4.7.1.7.1.104.215.154.156.204.212"
OID_ubntStaAmq="1.3.6.1.4.1.41112.1.4.7.1.8.1.104.215.154.156.204.212"
OID_ubntStaAmc="1.3.6.1.4.1.41112.1.4.7.1.9.1.104.215.154.156.204.212"
OID_ubntStaLastIp="1.3.6.1.4.1.41112.1.4.7.1.10.1.104.215.154.156.204.212"
OID_ubntStaTxRate="1.3.6.1.4.1.41112.1.4.7.1.11.1.104.215.154.156.204.212"
OID_ubntStaRxRate="1.3.6.1.4.1.41112.1.4.7.1.12.1.104.215.154.156.204.212"
OID_ubntStaTxBytes="1.3.6.1.4.1.41112.1.4.7.1.13.1.104.215.154.156.204.212"
OID_ubntStaRxBytes="1.3.6.1.4.1.41112.1.4.7.1.14.1.104.215.154.156.204.212"
OID_ubntStaConnTime="1.3.6.1.4.1.41112.1.4.7.1.15.1.104.215.154.156.204.212"
}
UBNT.GetData() {
UBNT.GetOIDS
case $1 in
airmax)
ubntAirMaxEnabled=$(Source.SNMP $OID_ubntAirMaxEnabled | cut -d ' ' -f 4)
ubntAirMaxQuality=$(Source.SNMP $OID_ubntAirMaxQuality | cut -d ' ' -f 4)
ubntAirMaxCapacity=$(Source.SNMP $OID_ubntAirMaxCapacity | cut -d ' ' -f 4)
ubntAirMaxPriority=$(Source.SNMP $OID_ubntAirMaxPriority | cut -d ' ' -f 4)
ubntAirMaxNoAck=$(Source.SNMP $OID_ubntAirMaxNoAck | cut -d ' ' -f 4)
;;
info)
dot11manufacturerName=$(Source.SNMP $OID_dot11manufacturerName | cut -d '"' -f 2)
dot11manufacturerProductName=$(Source.SNMP $OID_dot11manufacturerProductName | cut -d '"' -f 2)
dot11manufacturerProductVersion=$(Source.SNMP $OID_dot11manufacturerProductVersion | cut -d '"' -f 2)
sysDescr=$(Source.SNMP $OID_sysDescr | cut -d '"' -f 2)
sysUpTime=$(Source.SNMP $OID_sysUpTime | cut -d ' ' -f 5)
sysLocation=$(Source.SNMP $OID_sysLocation | cut -d '"' -f 2)
sysORLastChange=$(Source.SNMP $OID_sysORLastChange | cut -d ' ' -f 5)
;;
radio)
ubntRadioMode=$(Source.SNMP $OID_ubntRadioMode | cut -d ' ' -f 4)
ubntRadioCCode=$(Source.SNMP $OID_ubntRadioCCode | cut -d ' ' -f 4)
ubntRadioFreq=$(Source.SNMP $OID_ubntRadioFreq | cut -d ' ' -f 4)
ubntRadioDfsEnabled=$(Source.SNMP $OID_ubntRadioDfsEnabled | cut -d ' ' -f 4)
ubntRadioTxPower=$(Source.SNMP $OID_ubntRadioTxPower | cut -d ' ' -f 4)
ubntRadioDistance=$(Source.SNMP $OID_ubntRadioDistance | cut -d ' ' -f 4)
ubntRadioChainmask=$(Source.SNMP $OID_ubntRadioChainmask | cut -d ' ' -f 4)
ubntRadioAntenna=$(Source.SNMP $OID_ubntRadioAntenna | cut -d '"' -f 2)
;;
ram)
rawRamAll=$(Source.SNMP $OID_memTotal | cut -d ' ' -f 4)
rawRamFree=$(Source.SNMP $OID_memFree | cut -d ' ' -f 4)
valueRamAllMb=$(echo "$rawRamAll" | awk '{ mbyte = $1 /1000; print mbyte }' | xargs printf "%.2f")
valueRamFreeMb=$(echo "$rawRamFree" | awk '{ mbyte = $1 /1000; print mbyte }' | xargs printf "%.2f")
printPercetageRam=$(echo "$rawRamFree" "$rawRamAll" | awk '{ ramp = $1 /$2 *100; print ramp }' | xargs printf "%.2f")
printPercetageRamUsed=$(echo "$printPercetageRam" | awk '{ ramup = 100 - $1; print ramup }')
rangePercetageRam=$(echo "$printPercetageRamUsed" | cut -d "." -f1)
rawRamUsed=$(echo "$rawRamAll" "$rawRamFree" | awk '{ used = $1 -$2; print used }')
valueRamUsedMb=$(echo "$rawRamUsed" | awk '{ mbyte = $1 /1000; print mbyte }' | xargs printf "%.2f")
rawmemBuffer=$(Source.SNMP $OID_memBuffer | cut -d ' ' -f 4)
memBuffer=$(echo "$rawmemBuffer" | awk '{ mbyte = $1 /1000; print mbyte }' | xargs printf "%.2f")
memCache=$(Source.SNMP $OID_memCache | cut -d ' ' -f 4)
;;
station)
mode=$(Source.SNMP $OID_ubntRadioMode | cut -d ' ' -f 4)
ubntStaName=$(Source.SNMP $OID_ubntStaName | cut -d '"' -f 2)
ubntStaSignal=$(Source.SNMP $OID_ubntStaSignal | cut -d ' ' -f 4)
ubntStaNoiseFloor=$(Source.SNMP $OID_ubntStaNoiseFloor | cut -d ' ' -f 4)
ubntStaCcq=$(Source.SNMP $OID_ubntStaCcq | cut -d ' ' -f 4)
ubntStaTxRate=$(Source.SNMP $OID_ubntStaTxRate | cut -d ' ' -f 4)
ubntStaRxRate=$(Source.SNMP $OID_ubntStaRxRate | cut -d ' ' -f 4)
ubntStaTxBytes=$(Source.SNMP $OID_ubntStaTxBytes | cut -d ' ' -f 4)
ubntStaRxBytes=$(Source.SNMP $OID_ubntStaRxBytes | cut -d ' ' -f 4)
ubntStaConnTime=$(Source.SNMP $OID_ubntStaConnTime | cut -d ' ' -f 5)
;;
wireless)
ubntWlStatSsid=$(Source.SNMP $OID_ubntWlStatSsid | cut -d '"' -f 2)
ubntWlStatHideSsid=$(Source.SNMP $OID_ubntWlStatHideSsid | cut -d ' ' -f 4)
ubntWlStatApMac=$(Source.SNMP $OID_ubntWlStatApMac | cut -d ' ' -f 4)
ubntWlStatSignal=$(Source.SNMP $OID_ubntWlStatSignal | cut -d ' ' -f 4)
ubntWlStatRssi=$(Source.SNMP $OID_ubntWlStatRssi | cut -d ' ' -f 4)
ubntWlStatCcq=$(Source.SNMP $OID_ubntWlStatCcq | cut -d ' ' -f 4)
ubntWlStatNoiseFloor=$(Source.SNMP $OID_ubntWlStatNoiseFloor | cut -d ' ' -f 4)
ubntWlStatTxRate=$(Source.SNMP $OID_ubntWlStatTxRate | cut -d ' ' -f 4)
ubntWlStatRxRate=$(Source.SNMP $OID_ubntWlStatRxRate | cut -d ' ' -f 4)
ubntWlStatSecurity=$(Source.SNMP $OID_ubntWlStatSecurity | cut -d '"' -f 2)
ubntWlStatWdsEnabled=$(Source.SNMP $OID_ubntWlStatWdsEnabled | cut -d ' ' -f 4)
ubntWlStatApRepeater=$(Source.SNMP $OID_ubntWlStatApRepeater | cut -d ' ' -f 4)
ubntWlStatChanWidth=$(Source.SNMP $OID_ubntWlStatChanWidth | cut -d ' ' -f 4)
ubntWlStatStaCount=$(Source.SNMP $OID_ubntWlStatStaCount | cut -d ' ' -f 4)
;;
esac
}
# - MAIN CODE
Source.HostAlive() {
for server in $HOST_NAME; do
ping -c1 -W1 -q $server &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
fi
done
}
Source.SNMP() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oe -c $COMMUNITY $HOST_NAME $1
}
Source.SNMP.Hex() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oa -c $COMMUNITY $HOST_NAME $1
}
# - Ubiquiti Status Variables
GetStatus.OnOff() {
case $1 in
1) local sED="On" ;;
2) local sED="Off" ;;
esac
echo $sED
}
GetStatus.BToMB() {
local value=$(echo "$1" | awk '{ mbyte = $1 /1000/1000; print mbyte }' | xargs printf "%.f")
echo "$value MB"
}
GetStatus.BToGB() {
local value=$(echo "$1" | awk '{ gbyte = $1 /1000/1000/1000; print gbyte }' | xargs printf "%.2f")
echo "$value GB"
}
GetStatus.RadioMode() {
case $1 in
1) local sRM="Station" ;;
2) local sRM="Access Point" ;;
3) local sRM="AP Repeater" ;;
4) local sRM="AP Wireless Distribution System" ;;
esac
echo $sRM
}
GetStatus.CheckStaMode() {
if [[ $1 != "1" ]]; then
printf "%s\n%s\n%s\n" "The following device isn't set to Station." "Is setted on '$(GetStatus.RadioMode $1)'," "disable the following service for this device." && exit $STATE_UNK
fi
}
GetStatus.AMQuality() {
if [[ $1 < $CR-1 ]]; then
local sQuality="CRIT!"
STATE=$STATE_CRIT
elif [[ $1 < $WA-1 ]]; then
local sQuality="WARN!"
STATE=$STATE_WARN
fi
echo "$1" "%" "$sQuality"
}
GetStatus.AMPriority() {
case $1 in
0) local sAMP="High" ;;
1) local sAMP="Medium" ;;
2) local sAMP="Low" ;;
3) local sAMP="None" ;;
esac
echo $sAMP
}
# - Ubiquiti Monitoring
UBNT.Main() {
Source.HostAlive
case $1 in
airmax)
UBNT.AirMax
exit $STATE ;;
info)
UBNT.Info
exit $STATE ;;
radio)
UBNT.Radio
exit $STATE ;;
ram)
UBNT.Ram
exit $STATE ;;
station)
UBNT.Station
exit $STATE ;;
wireless)
UBNT.Wireless
exit $STATE ;;
*)
echo "Unknown check!"
Help.UBNT
exit $STATE_UNK ;;
esac
}
UBNT.AirMax() {
UBNT.GetData airmax
printf "%s\n\n" "AirMax Information"
printf "%s\t%s\n" "Enabled:" "$(GetStatus.OnOff $ubntAirMaxEnabled)"
printf "%s\t%s\n" "Quality:" "$(GetStatus.AMQuality $ubntAirMaxQuality)"
printf "%s\t%s\n" "Capacity:" "$ubntAirMaxCapacity %"
printf "%s\t%s\n" "Priority:" "$(GetStatus.AMPriority $ubntAirMaxPriority)"
printf "%s\t\t%s\n" "NoAck:" "$(GetStatus.OnOff $ubntAirMaxNoAck)"
}
UBNT.Info() {
UBNT.GetData info
printf "%s\n\n" "Device Information"
printf "%s\t%s\n" "Location:" "$sysLocation"
printf "%s\t\t%s\n" "UpTime:" "$sysUpTime"
printf "%s\t%s\n\n" "LastChange:" "$sysORLastChange"
printf "%s%s\n" "$dot11manufacturerProductName" "$dot11manufacturerName"
printf "%s\t%s\n" "airOs Ver:" "$dot11manufacturerProductVersion"
}
UBNT.Radio() {
UBNT.GetData radio
printf "%s\n\n" "Radio Information"
printf "%s\t\t%s\n" "Mode:" "$(GetStatus.RadioMode $ubntRadioMode)"
printf "%s\t%s\n" "Country:" "$ubntRadioCCode"
printf "%s\t%s\n" "Frequency:" "$ubntRadioFreq"
printf "%s\t\t%s\n" "DFS:" "$(GetStatus.OnOff $ubntRadioDfsEnabled)"
printf "%s\t%s\n" "TxPower:" "$ubntRadioTxPower"
printf "%s\t%s\n" "Distance:" "$ubntRadioDistance"
printf "%s\t%s\n" "Chainmask:" "$ubntRadioChainmask"
printf "%s\t%s\n" "Antenna:" "$ubntRadioAntenna"
}
UBNT.Ram() {
UBNT.GetData ram
case 1 in
$(($rangePercetageRam <= $WA-1)))
printf "%s\n" "OK! RAM used: $valueRamUsedMb / $valueRamAllMb Mb ($printPercetageRamUsed%)" "RAM free: $valueRamFreeMb Mb ($printPercetageRam%)" "Buffer: $memBuffer Mb" "Cache: $memCache Kb" && exit $STATE_OK ;;
$(($rangePercetageRam <= $CR-1)))
printf "%s\n" "WARRING! RAM used: $valueRamUsedMb / $valueRamAllMb Mb ($printPercetageRamUsed%)" "RAM free: $valueRamFreeMb Mb ($printPercetageRam%)" "Buffer: $memBuffer Mb" "Cache: $memCache Kb" && exit $STATE_WARN ;;
$(($rangePercetageRam > $CR-1)))
printf "%s\n" "CRITICAL! RAM used: $valueRamUsedMb / $valueRamAllMb Mb ($printPercetageRamUsed%)" "RAM free: $valueRamFreeMb Mb ($printPercetageRam%)" "Buffer: $memBuffer Mb" "Cache: $memCache Kb" && exit $STATE_CRIT ;;
esac
}
UBNT.Station() {
UBNT.GetData station
GetStatus.CheckStaMode $mode
printf "%s\n\n" "Station Information"
printf "%s\t\t%s\n" "Name:" "$ubntStaName"
printf "%s\t\t%s\n" "Signal:" "$ubntStaSignal dBm"
printf "%s\t%s\n" "Noise floor:" "$ubntStaNoiseFloor"
printf "%s\t\t%s\n" "CCQ:" "$ubntStaCcq %"
printf "%s\t%s\n\n" "Con. Time:" "$(echo $ubntStaConnTime)"
printf "%s\t%s\n" "TX/RX Rate:" "$(GetStatus.BToMB $ubntStaTxRate) / $(GetStatus.BToMB $ubntStaRxRate)"
printf "%s\t%s\n" "TX/RX Bytes:" "$(GetStatus.BToGB $ubntStaTxBytes) / $(GetStatus.BToGB $ubntStaRxBytes)"
}
UBNT.Wireless() {
UBNT.GetData wireless
printf "%s\n\n" "Wireless Information"
printf "%s\t\t%s\n" "SSID:" "$ubntWlStatSsid"
printf "%s\t\t%s\n" "Hide:" "$(GetStatus.OnOff $ubntWlStatHideSsid)"
printf "%s\t\t%s\n" "Signal:" "$ubntWlStatSignal dBm"
printf "%s\t\t%s\n" "RSSI:" "$ubntWlStatRssi dBm"
printf "%s\t\t%s\n" "CCQ:" "$ubntWlStatCcq"
printf "%s\t%s\n" "Noise floor:" "$ubntWlStatNoiseFloor"
printf "%s\t%s\n" "TX/RX Rate:" "$(GetStatus.BToMB $ubntWlStatTxRate) / $(GetStatus.BToMB $ubntWlStatRxRate)"
printf "%s\t%s\n" "Security:" "$ubntWlStatSecurity"
printf "%s\t\t%s\n" "WDS:" "$(GetStatus.OnOff $ubntWlStatWdsEnabled)"
printf "%s\t%s\n" "Ap Repeater:" "$(GetStatus.OnOff $ubntWlStatApRepeater)"
printf "%s\t%s\n" "Channel Width:" "$ubntWlStatChanWidth"
printf "%s\t%s\n" "Station Count:" "$ubntWlStatStaCount"
}
# - Help
Help.Main() {
echo $NAME
echo ''
Help.Usage
echo ''
Help.Option
echo ''
Help.Info
echo ''
exit $STATE_UNK
}
Help.Usage() {
printf "%s\n" "Method to compose the execution string"
printf "%s\n" "./$APPNAME -c <SNMP community> -h <host> -t <check>"
}
Help.Option() {
printf "%s\n" "OPTIONS:"
printf "%s\t%s\t%s\n\t\t\t%s\n" "-c" "--community" "SNMP v2 community string with Read access." " Default is $COMMUNITY."
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-h" "--host" "Host name or IP address to check." " Default is $HOST_NAME."
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-t" "--type" "[REQUIRED OPTION] Field for select element to check on AirOs Device." "{ airmax | info | radio | ram | station | wireless }"
printf "%s\t%s\t\t%s\n" "-H" "--help" "Show Script help"
printf "%s\t%s\t%s\n" "-V" "--version" "Show Script version"
}
Help.UBNT() {
printf "\n%s\n\n" "Ubiquiti airOs Check Function"
printf "%s\t%s\n\n" "Check" "Description"
printf "%s\t%s\n" "airmax" "Show all airMax Statistics of device"
printf "%s\t%s\n" "info" "Show basic information"
printf "%s\t%s\n" "radio" "Show status and statistics of radio"
printf "%s\t%s\n" "ram" "Show ram usage"
printf "%s\t%s\n" "station" "Show station information, work only on station setup"
printf "%s\t%s\n" "wireless" "Show wireless information"
}
Help.Info() {
printf "%s\t%s\t%s\n" "INFO:" "$NAME" "$VERSION" "" "$AUTHOR" "$URL"
}
# - COMMAND LINE ENCODER
while test -n "$1"; do
case "$1" in
--host | -h)
HOST_NAME=$2
shift ;;
--comunity | -c)
COMMUNITY=$2
shift ;;
--allert-wa|-wa)
WA=$2
shift ;;
--allert-cr|-cr)
CR=$2
shift ;;
--type | -t)
UBNT.Main $2
shift ;;
--help | -H)
Help.Main ;;
--version | -V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
print_help
exit $STATE_UNK ;;
esac
shift
done
UBNT.Main
@@ -0,0 +1,74 @@
#!/bin/bash
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
CURL_RETURN_CODE=0
Main(){
SITE="${PROTOCOL}://${URL}"
if [ ! -z $PORT ]; then
SITE+=":${PORT}"
fi
if [ ! -z $SUBDIRECTORY ]; then
SITE+="/${SUBDIRECTORY}"
fi
if [ -z $USR ]; then
CURL_OUTPUT="$(curl -s -k -w '\n%{http_code}' -m 100 --url $SITE | tail -n 1)"
else
CREDENTIAL="${USR}:${PSW}"
CURL_OUTPUT="$(curl -s -k -w '\n%{http_code}' -m 100 --ntlm --user $CREDENTIAL --url $SITE | tail -n 1)"
fi
if [ ${CURL_OUTPUT} -ne 200 ]; then
echo "Curl operation/command failed due to server return code - ${CURL_OUTPUT}"
STATE=$STATE_CRIT
else
echo "Connection success"
fi
}
while test -n "$1"; do
case "$1" in
--protocol | -p)
PROTOCOL=$2
shift ;;
--url | -u)
URL=$2
shift ;;
--user | -usr)
USR=$2
shift ;;
--password | -psw)
PSW=$2
shift;;
--port )
PORT=$2
shift;;
--subdirectory )
SUBDIRECTORY=$2
shift;;
*)
echo "Unknown argument: $1"
exit $STATE_UNK ;;
esac
shift
done
Main
exit $STATE
@@ -0,0 +1,418 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check Switch Huawei"
AUTHOR="Kalarumeth"
VERSION="v0.1"
URL="https://github.com/Kalarumeth"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
AP="authPriv"
AUTH="SHA-256"
PRIV="AES"
SNMPVERSION="3"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
# - OID
Huawei.OIDS() {
#Info
OID_sysDescr="1.3.6.1.2.1.1.1.0"
OID_sysUptimeIstance="1.3.6.1.2.1.1.3"
#Fan
OID_fanSlot="1.3.6.1.4.1.2011.5.25.31.1.1.10.1.1"
OID_fanSn="1.3.6.1.4.1.2011.5.25.31.1.1.10.1.2"
OID_fanReg="1.3.6.1.4.1.2011.5.25.31.1.1.10.1.3"
OID_fanMode="1.3.6.1.4.1.2011.5.25.31.1.1.10.1.4"
OID_fanSpeed="1.3.6.1.4.1.2011.5.25.31.1.1.10.1.5"
OID_fanPresent="1.3.6.1.4.1.2011.5.25.31.1.1.10.1.6"
OID_fanState="1.3.6.1.4.1.2011.5.25.31.1.1.10.1.7"
OID_fanDesc="1.3.6.1.4.1.2011.5.25.31.1.1.10.1.8"
#Power
OID_pwrSlot="1.3.6.1.4.1.2011.5.25.31.1.1.18.1.1"
OID_pwrSn="1.3.6.1.4.1.2011.5.25.31.1.1.18.1.2"
OID_pwrReg="1.3.6.1.4.1.2011.5.25.31.1.1.18.1.3"
OID_pwrMode="1.3.6.1.4.1.2011.5.25.31.1.1.18.1.4"
OID_pwrPresent="1.3.6.1.4.1.2011.5.25.31.1.1.18.1.5"
OID_pwrState="1.3.6.1.4.1.2011.5.25.31.1.1.18.1.6"
OID_pwrCurrent="1.3.6.1.4.1.2011.5.25.31.1.1.18.1.7"
OID_pwrVoltage="1.3.6.1.4.1.2011.5.25.31.1.1.18.1.8"
OID_pwrDesc="1.3.6.1.4.1.2011.5.25.31.1.1.18.1.9"
#Stack
OID_stkRun="1.3.6.1.4.1.2011.5.25.183.1.1"
OID_stkType="1.3.6.1.4.1.2011.5.25.183.1.2"
OID_stkPriority="1.3.6.1.4.1.2011.5.25.183.1.20.1.2"
OID_stkRole="1.3.6.1.4.1.2011.5.25.183.1.20.1.3"
OID_stkMac="1.3.6.1.4.1.2011.5.25.183.1.20.1.4"
OID_stkDevice="1.3.6.1.4.1.2011.5.25.183.1.20.1.5"
OID_stkId="1.3.6.1.4.1.2011.5.25.183.1.20.1.6"
}
# - MAIN CODE
Script.HostAlive() {
for server in $HOST_NAME; do
ping -c1 -W1 -q $server &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
fi
done
}
Script.SNMP() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oen -l $AP -u $USER -e $ENGINEID -a $AUTH -A $PHAUTH -x $PRIV -X $PHPRIV $HOST_NAME $1
}
Huawei.Main() {
Script.HostAlive
case $1 in
info)
Huawei.Info
exit $STATE ;;
uptime)
Huawei.UpTime
exit $STATE ;;
fan)
Huawei.Fan
exit $STATE ;;
power)
Huawei.Power
exit $STATE ;;
stack)
Huawei.Stack
exit $STATE ;;
*)
echo "Unknown check!"
Help.Huawei
exit $STATE_UNK ;;
esac
}
Huawei.GetData() {
Huawei.OIDS
case $1 in
description)
sysDescr=$(Script.SNMP $OID_sysDescr | cut -d ':' -f 2);;
uptime)
sysUptimeIstance=$(Script.SNMP $OID_sysUptimeIstance | cut -d ')' -f 2 );;
fan)
fanSlot=($(Script.SNMP $OID_fanSlot | cut -d ' ' -f 4 ))
fanSn=($(Script.SNMP $OID_fanSn | cut -d ' ' -f 4 ))
fanReg=($(Script.SNMP $OID_fanReg | cut -d ' ' -f 4 ))
fanMode=($(Script.SNMP $OID_fanMode | cut -d ' ' -f 4 ))
fanSpeed=($(Script.SNMP $OID_fanSpeed | cut -d ' ' -f 4 ))
fanPresent=($(Script.SNMP $OID_fanPresent | cut -d ' ' -f 4 ))
fanState=($(Script.SNMP $OID_fanState | cut -d ' ' -f 4 ))
fanDesc=($(Script.SNMP $OID_fanDesc | cut -d '"' -f 2))
;;
power)
pwrSlot=($(Script.SNMP $OID_pwrSlot | cut -d ' ' -f 4 ))
pwrSn=($(Script.SNMP $OID_pwrSn | cut -d ' ' -f 4 ))
pwrReg=($(Script.SNMP $OID_pwrReg | cut -d ' ' -f 4 ))
pwrMode=($(Script.SNMP $OID_pwrMode | cut -d ' ' -f 4 ))
pwrPresent=($(Script.SNMP $OID_pwrPresent | cut -d ' ' -f 4 ))
pwrState=($(Script.SNMP $OID_pwrState | cut -d ' ' -f 4 ))
pwrCurrent=($(Script.SNMP $OID_pwrCurrent | cut -d ' ' -f 4 ))
pwrVoltage=($(Script.SNMP $OID_pwrVoltage | cut -d ' ' -f 4))
pwrDesc=($(Script.SNMP $OID_pwrDesc | cut -d '"' -f 2))
;;
stack)
stkRun=$(Script.SNMP $OID_stkRun | cut -d ' ' -f 4 )
stkType=$(Script.SNMP $OID_stkType | cut -d ' ' -f 4 )
stkPriority=($(Script.SNMP $OID_stkPriority | cut -d ' ' -f 4 ))
stkRole=($(Script.SNMP $OID_stkRole | cut -d ' ' -f 4 ))
stkMac=($(Script.SNMP $OID_stkMac | cut -d '"' -f 2 ))
stkDevice=($(Script.SNMP $OID_stkDevice | cut -d '"' -f 2 ))
stkId=($(Script.SNMP $OID_stkId | cut -d ' ' -f 4 ))
;;
esac
}
Huawei.ErrorCounter() {
for Error in "$(( WarningCounter + CriticalCounter ))"; do
if [[ $WarningCounter == 0 ]] && [[ $CriticalCounter == 0 ]] ; then
printf "%s\t%s\n\n" "OK!" "All $1 is Up"
elif [[ $WarningCounter != 0 ]] && [[ $CriticalCounter == 0 ]] ; then
printf "%s\t%s\n\n" "WARNING!" "$Error $1 with problem"
STATE=$STATE_WARN
elif [[ $CriticalCounter != 0 ]] ; then
printf "%s\t%s\n\n" "CRITICAL!" "$Error $1 with problem"
STATE=$STATE_CRIT
fi
done
}
# Device Information
Huawei.Info() {
Huawei.GetData description
printf "%s\n" "$sysDescr"
}
# UpTime
Huawei.UpTime() {
Huawei.GetData uptime
printf "%s\n" "$sysUptimeIstance"
}
# Fan
Huawei.Fan() {
Huawei.GetData fan
Huawei.Fan.Header
for((i=0; i<${#fanSlot[@]}; i++))
do
Huawei.Fan.Desc
printf "%s\t" "${fanSlot[$i]}"
printf "%s\t" "${fanSn[$i]}"
Huawei.Fan.Reg
Huawei.Fan.Mode
printf "%s\t" "${fanSpeed[$i]}"
Huawei.Fan.Present
Huawei.Fan.State
printf "\n"
done
}
Huawei.Fan.Header() {
WarningCounter=0
CriticalCounter=0
for((i=0; i<${#fanSlot[@]}; i++)); do
for value in "${fanState[$i]}"; do
if [[ $value == 2 ]]; then
CriticalCounter=$(( CriticalCounter + 1 ))
fi
done
done
Huawei.ErrorCounter "Fan"
if [[ $HOST_NAME == *"core"* ]] ; then
printf "%s\t\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" "Desc" "Unit" "Slot" "Reg" "Mode" "Speed" "Present" "State" "========================================================================"
elif [[ $HOST_NAME == *"acc"* ]] ; then
printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\n" "Unit" "Slot" "Reg" "Mode" "Speed" "Present" "State" "========================================================"
fi
}
Huawei.Fan.Desc() {
if [[ $HOST_NAME == *"core"* ]] ; then
printf "%s\t" "${fanDesc[$i]}"
fi
}
Huawei.Fan.Reg() {
case ${fanReg[$i]} in
1) printf "%s\t" "Yes" ;;
2) printf "%s\t" "No" ;;
esac
}
Huawei.Fan.Mode() {
case ${fanMode[$i]} in
1) printf "%s\t" "Auto" ;;
2) printf "%s\t" "Manual" ;;
3) printf "%s\t" "Unknown" ;;
4) printf "%s\t" "Silent" ;;
esac
}
Huawei.Fan.Present() {
case ${fanPresent[$i]} in
1) printf "%s\t" "Present" ;;
2) printf "%s\t" "absent" ;;
esac
}
Huawei.Fan.State() {
case ${fanState[$i]} in
1) printf "%s\t" "Normal" ;;
2) printf "%s\t" "Abnormal" ;;
esac
}
# Power
Huawei.Power() {
Huawei.GetData power
Huawei.Power.Header
for((i=0; i<${#pwrSlot[@]}; i++))
do
printf "%s\t" "${pwrDesc[$i]}"
printf "%s\t" "${pwrSlot[$i]}"
printf "%s\t" "${pwrSn[$i]}"
Huawei.Power.Reg
Huawei.Power.Mode
Huawei.Power.Present
Huawei.Power.State
printf "%s\t" "${pwrCurrent[$i]} mA"
printf "%s\t" "${pwrVoltage[$i]} mV"
printf "\n"
done
}
Huawei.Power.Header() {
WarningCounter=0
CriticalCounter=0
for((i=0; i<${#pwrSlot[@]}; i++)); do
for value in "${pwrState[$i]}"; do
if [[ $value == 2 ]]; then
CriticalCounter=$(( CriticalCounter + 1 ))
fi
done
done
Huawei.ErrorCounter "Power Supply"
printf "%s\t\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" "Desc" "Unit" "Slot" "Reg" "Mode" "Present" "State" "Current" "Voltage" "=================================================================================="
}
Huawei.Power.Reg() {
case ${pwrReg[$i]} in
1) printf "%s\t" "Yes" ;;
2) printf "%s\t" "No" ;;
esac
}
Huawei.Power.Mode() {
case ${pwrMode[$i]} in
1) printf "%s\t" "Unknown" ;;
2) printf "%s\t" "DC" ;;
3) printf "%s\t" "AC" ;;
4) printf "%s\t" "hvdc" ;;
esac
}
Huawei.Power.Present() {
case ${pwrPresent[$i]} in
1) printf "%s\t" "Present" ;;
2) printf "%s\t" "Absent" ;;
esac
}
Huawei.Power.State() {
case ${pwrState[$i]} in
1) printf "%s\t" "Supply" ;;
2) printf "%s\t" "NotSupply" ;;
3) printf "%s\t" "Sleep" ;;
4) printf "%s\t" "Unknown" ;;
esac
}
# Stack
Huawei.Stack() {
Huawei.GetData stack
Huawei.Stack.Header
for((i=0; i<${#stkDevice[@]}; i++))
do
printf "%s\t" "${stkId[$i]}"
printf "%s\t" "${stkDevice[$i]}"
printf "%s\t" "${stkMac[$i]}"
Huawei.Stack.Role
printf "%s\t" "${stkPriority[$i]}"
printf "\n"
done
}
Huawei.Stack.Header() {
if [[ $stkRun == 1 ]] ; then
Huawei.Stack.Status
printf "%s\t%s\t\t%s\t\t%s\t\t%s\n" "Id" "Device" "Mac Address" "Role" "Priority" "=========================================================================="
elif [[ $stkRun == 2 ]] ; then
printf "%s\t%s\n\n" "CRITICAL!" "Stack is disable"
exit $STATE_CRIT
fi
}
Huawei.Stack.Status() {
printf "%s" "OK! Stack is "
case $stkRun in
1) printf "%s" "Enable" ;;
2) printf "%s" "Disable" ;;
esac
if [[ $HOST_NAME == *"acc"* ]] ; then
printf "%s" " and topology type is "
case $stkType in
1) printf "%s" "Ring" ;;
2) printf "%s" "Link" ;;
esac
fi
printf "\n\n"
}
Huawei.Stack.Role() {
if [[ $HOST_NAME == *"acc"* ]] ; then
printf "\t"
fi
case ${stkRole[$i]} in
1) printf "%s\t" "Master Switch" ;;
2) printf "%s\t" "Backup Switch" ;;
3) printf "%s\t" "Slave Switch" ;;
esac
}
# - COMMAND LINE ENCODER
while test -n "$1"; do
case "$1" in
--host | -h)
HOST_NAME=$2
shift ;;
--user | -u)
USER=$2
shift ;;
--engineId | -e)
ENGINEID=$2
shift ;;
--phAuth | -pa)
PHAUTH=$2
shift ;;
--phPriv | -pp)
PHPRIV=$2
shift ;;
--type | -t)
Huawei.Main $2
shift ;;
--help | -H)
Help.Main ;;
--version | -V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
print_help
exit $STATE_UNK ;;
esac
shift
done
Huawei.Main
@@ -0,0 +1,44 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2023/08/25
# v: 1.0
# Reason: Emission
#-------------------------
##########################
$Services = Get-WmiObject win32_service -Filter "startmode = 'auto' AND state != 'running'"
$i = 0
$objs = $null
if ($Services){
foreach ($Service in $Services) {
# Exclude Triggered
if(!(Test-Path -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$($Service.Name)\TriggerInfo\"))
{
$i++
$objs += @(New-Object -TypeName PSObject -Property @{
Name = $Service.Name
Status = $Service.State
StartMode = $Service.StartMode
} | Select-Object Name, Status, StartMode)
}
}
}
if ($i -ne 0){
Write-Output "$($i) Services is not running!"
Write-Output $objs
$exitcode = 2
} else {
Write-Output "All Services are up and running!"
$exitcode = 0
}
exit $exitcode
@@ -0,0 +1,38 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2023/08/25
# v: 1.0
# Reason: Emission
#-------------------------
##########################
$exclusions=$args[0]
$tempServices = Get-Service | Where-Object { `
($_.starttype -eq 'Automatic') `
-and ($_.status -ne 'Running') `
-and ($exclusions.split(',') -notcontains $_.name)
}
$Services = @()
if ($tempServices){
foreach ($Service in $tempServices) {
# Exclude Triggered
if(!(Test-Path -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$($Service.Name)\TriggerInfo\"))
{
$Services += $Service | Select-Object name, displayname, status
}
}
}
$exitState = 0
if ($Services.Count -gt 0){
Write-Output "CRITICAL - $($Services.Count) Services are not running!"
Write-Output $Services
$exitState = 2
} else {
Write-Output "OK - All Services are up and running!"
}
exit $exitState
@@ -0,0 +1,341 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check FireWall Fortinet"
AUTHOR="Kalarumeth"
VERSION="v0.1"
URL="https://github.com/Kalarumeth"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
AP="authPriv"
AUTH="SHA-256"
PRIV="AES"
SNMPVERSION="3"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
# - OID
Fortinet.OIDS() {
#Info
OID_sysDescr="1.3.6.1.2.1.1.5"
OID_sysUptimeIstance="1.3.6.1.2.1.1.3"
#CPU
OID_fgProcessorUsage="1.3.6.1.4.1.12356.101.4.4.2.1.2" # Gauge32 '%'
#Memory
OID_fgProcModMemCapacity="1.3.6.1.4.1.12356.101.4.5.3.1.6" # Kb
OID_fgProcModMemUsage="1.3.6.1.4.1.12356.101.4.5.3.1.7"
#Sensors
OID_fgHwSensorEntIndex="1.3.6.1.4.1.12356.101.4.3.2.1.1"
OID_fgHwSensorEntName="1.3.6.1.4.1.12356.101.4.3.2.1.2"
OID_fgHwSensorEntValue="1.3.6.1.4.1.12356.101.4.3.2.1.3"
OID_fgHwSensorEntAlarmStatus="1.3.6.1.4.1.12356.101.4.3.2.1.4"
#HA
OID_fgHaStatsIndex="1.3.6.1.4.1.12356.101.13.2.1.1.1"
OID_fgHaStatsSerial="1.3.6.1.4.1.12356.101.13.2.1.1.2"
OID_fgHaStatsCpuUsage="1.3.6.1.4.1.12356.101.13.2.1.1.3"
OID_fgHaStatsMemUsage="1.3.6.1.4.1.12356.101.13.2.1.1.4"
OID_fgHaStatsNetUsage="1.3.6.1.4.1.12356.101.13.2.1.1.5"
OID_fgHaStatsSesCount="1.3.6.1.4.1.12356.101.13.2.1.1.6"
OID_fgHaStatsPktCount="1.3.6.1.4.1.12356.101.13.2.1.1.7"
OID_fgHaStatsByteCount="1.3.6.1.4.1.12356.101.13.2.1.1.8"
OID_fgHaStatsIdsCount="1.3.6.1.4.1.12356.101.13.2.1.1.9"
OID_fgHaStatsAvCount="1.3.6.1.4.1.12356.101.13.2.1.1.10"
OID_fgHaStatsHostname="1.3.6.1.4.1.12356.101.13.2.1.1.11"
OID_fgHaStatsSyncStatus="1.3.6.1.4.1.12356.101.13.2.1.1.12"
OID_fgHaStatsSyncDatimeSucc="1.3.6.1.4.1.12356.101.13.2.1.1.13"
OID_fgHaStatsSyncDatimeUnsucc="1.3.6.1.4.1.12356.101.13.2.1.1.14"
OID_fgHaStatsGlobalChecksum="1.3.6.1.4.1.12356.101.13.2.1.1.15"
OID_fgHaStatsMasterSerial="1.3.6.1.4.1.12356.101.13.2.1.1.16"
}
# - MAIN CODE
Script.HostAlive() {
for server in $HOST_NAME; do
ping -c1 -W1 -q $server &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
fi
done
}
Script.SNMP() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oev -l $AP -u $USER -a $AUTH -A $PHAUTH -x $PRIV -X $PHPRIV $HOST_NAME $1
}
Script.SNMP.Hex() {
snmpwalk -v $SNMPVERSION -r 1 -t 10 -Oav -l $AP -u $USER -a $AUTH -A $PHAUTH -x $PRIV -X $PHPRIV $HOST_NAME $1
}
Fortinet.Main() {
Script.HostAlive
case $1 in
uptime)
Fortinet.UpTime
exit $STATE ;;
cpu)
Fortinet.CPU
exit $STATE ;;
memory)
Fortinet.Memory
exit $STATE ;;
sensors)
Fortinet.Sensors
exit $STATE ;;
ha)
Fortinet.HAStatus
exit $STATE ;;
*)
echo "Unknown check!"
Help.Fortinet
exit $STATE_UNK ;;
esac
}
Fortinet.GetData() {
Fortinet.OIDS
case $1 in
uptime)
sysUptimeIstance=$(Script.SNMP $OID_sysUptimeIstance | cut -d ')' -f 2 )
;;
cpu)
sysCpuPerc=($(Script.SNMP $OID_fgProcessorUsage | cut -d ' ' -f 2))
;;
memory)
ramUsage=$(Script.SNMP $OID_fgProcModMemUsage | cut -d ' ' -f 2)
;;
sensors)
sensIndex=($(Script.SNMP $OID_fgHwSensorEntIndex | cut -d ' ' -f 2))
sensName=($(Script.SNMP $OID_fgHwSensorEntName | tr ' ' '_' | cut -d '"' -f 2))
sensValue=($(Script.SNMP $OID_fgHwSensorEntValue | cut -d '"' -f 2))
sensStatus=($(Script.SNMP $OID_fgHwSensorEntAlarmStatus | cut -d ' ' -f 2))
;;
ha)
fgHaStatsIndex=($(Script.SNMP $OID_fgHaStatsIndex | cut -d ' ' -f 2))
fgHaStatsSerial=($(Script.SNMP $OID_fgHaStatsSerial | cut -d '"' -f 2))
fgHaStatsCpuUsage=($(Script.SNMP $OID_fgHaStatsCpuUsage | cut -d ' ' -f 2))
fgHaStatsMemUsage=($(Script.SNMP $OID_fgHaStatsMemUsage | cut -d ' ' -f 2))
fgHaStatsNetUsage=($(Script.SNMP $OID_fgHaStatsNetUsage | cut -d ' ' -f 2))
fgHaStatsSesCount=($(Script.SNMP $OID_fgHaStatsSesCount | cut -d ' ' -f 2))
fgHaStatsPktCount=($(Script.SNMP $OID_fgHaStatsPktCount | cut -d ' ' -f 2))
fgHaStatsByteCount=($(Script.SNMP $OID_fgHaStatsByteCount | cut -d ' ' -f 2))
fgHaStatsIdsCount=($(Script.SNMP $OID_fgHaStatsIdsCount | cut -d ' ' -f 2))
fgHaStatsAvCount=($(Script.SNMP $OID_fgHaStatsAvCount | cut -d ' ' -f 2))
fgHaStatsHostname=($(Script.SNMP $OID_fgHaStatsHostname | cut -d '"' -f 2))
fgHaStatsSyncStatus=($(Script.SNMP $OID_fgHaStatsSyncStatus | cut -d ' ' -f 2))
fgHaStatsGlobalChecksum=($(Script.SNMP $OID_fgHaStatsGlobalChecksum | cut -d '"' -f 2))
fgHaStatsMasterSerial=($(Script.SNMP $OID_fgHaStatsMasterSerial | cut -d '"' -f 2))
;;
esac
}
Fortinet.ErrorCounter() {
for Error in "$(( WarningCounter + CriticalCounter ))"; do
if [[ $WarningCounter == 0 ]] && [[ $CriticalCounter == 0 ]] ; then
printf "%s\t%s\n\n" "OK!" "All $1 are on range"
elif [[ $WarningCounter != 0 ]] && [[ $CriticalCounter == 0 ]] ; then
printf "%s\t%s\n\n" "WARNING!" "$Error $1 with problem"
STATE=$STATE_WARN
elif [[ $CriticalCounter != 0 ]] ; then
printf "%s\t%s\n\n" "CRITICAL!" "$Error $1 with problem"
STATE=$STATE_CRIT
fi
done
}
# Device Information
Fortinet.UpTime() {
Fortinet.GetData uptime
printf "%s\n" "$sysUptimeIstance"
}
# CPU
Fortinet.CPU() {
Fortinet.GetData cpu
Fortinet.CPU.Header
for((i=0; i<${#sysCpuPerc[@]}; i++))
do
printf "%s\t" "${i} CPU" "${sysCpuPerc[$i]}%"
printf "\n"
done
}
Fortinet.CPU.Header() {
WarningCounter=0
CriticalCounter=0
for((i=0; i<${#sysCpuPerc[@]}; i++)); do
if [[ ${sysCpuPerc[$i]} > 80 ]]; then
WarningCounter=$(( WarningCounter + 1 ))
elif [[ ${sysCpuPerc[$i]} > 90 ]]; then
CriticalCounter=$(( CriticalCounter + 1 ))
fi
done
Fortinet.ErrorCounter "CPU"
printf "%s\t%s\n%s\n" "Id CPU" "Percentage" "======================"
}
# Memory
Fortinet.Memory() {
Fortinet.GetData memory
case 1 in
$(($ramUsage <= 85-1)))
printf "%s\n" "OK! RAM used: $ramUsage%" && exit $STATE_OK ;;
$(($ramUsage <= 95-1)))
printf "%s\n" "WARRING! RAM used: $ramUsage%" && exit $STATE_WARN ;;
$(($ramUsage > 95-1)))
printf "%s\n" "CRITICAL! RAM used: $ramUsage%"&& exit $STATE_CRIT ;;
esac
}
# Sensors
Fortinet.Sensors() {
Fortinet.GetData sensors
Fortinet.Sensors.Header
for((i=0; i<${#sensName[@]}; i++)); do
Fortinet.Sensors.Status
Fortinet.Sensors.Value
Fortinet.Sensors.Name
printf "\n"
done
}
Fortinet.Sensors.Value() {
value=$(echo ${sensValue[$i]} | cut -d "." -f 1)
printf "%s\t" "${value}"
}
Fortinet.Sensors.Status() {
case ${sensStatus[$i]} in
0) printf "%s\t" "Ok" ;;
1) printf "%s\t" "Crit!" ;;
esac
}
Fortinet.Sensors.Name() {
name=$(echo ${sensName[$i]} | tr '_' ' ')
printf "%s\t" "${name}"
}
Fortinet.Sensors.Header() {
WarningCounter=0
CriticalCounter=0
for((i=0; i<${#sensStatus[@]}; i++)); do
if [[ ${sensStatus[$i]} != 0 ]]; then
CriticalCounter=$(( CriticalCounter + 1 ))
fi
done
Fortinet.ErrorCounter "Sensors"
printf "%s\t%s\t%s\n%s\n" "Status" "Value" "Name" "==============================="
}
# HA
Fortinet.HAStatus(){
Fortinet.GetData ha
Fortinet.HAStatus.Header
for((i=0; i<${#fgHaStatsIndex[@]}; i++)); do
printf "%s\t%s\n" "Index :" ${fgHaStatsIndex[$i]}
printf "%s\t%s\n" "HostName :" ${fgHaStatsHostname[$i]}
printf "%s\t%s\n" "Serial :" ${fgHaStatsSerial[$i]}
printf "%s\t%s\n" "CPUUsage :" "${fgHaStatsCpuUsage[$i]} %"
printf "%s\t%s\n" "RamUsage :" "${fgHaStatsMemUsage[$i]} %"
printf "%s\t%s\n" "NetUsage :" "${fgHaStatsNetUsage[$i]} kbs"
printf "%s\t%s\n" "Session :" ${fgHaStatsSesCount[$i]}
printf "%s\t%s\n" "PktCount :" ${fgHaStatsPktCount[$i]}
printf "%s\t%s\n" "ByteCount :" ${fgHaStatsByteCount[$i]}
printf "%s\t%s\n" "IdsCount :" ${fgHaStatsIdsCount[$i]}
printf "%s\t%s\n" "AvCount :" ${fgHaStatsAvCount[$i]}
Fortinet.HAStatus.SyncStatus
printf "%s\t%s\n" "GlobalChecksum :" ${fgHaStatsGlobalChecksum[$i]}
printf "%s\t%s\n" "MasterSerial :" ${fgHaStatsMasterSerial[$i]}
printf '\n'
done
}
Fortinet.HAStatus.Header(){
WarningCounter=0
CriticalCounter=0
for((i=0; i<${#fgHaStatsSyncStatus[@]}; i++)); do
if [[ ${fgHaStatsSyncStatus[$i]} == 0 ]]; then
CriticalCounter=$(( CriticalCounter + 1 ))
fi
done
Fortinet.ErrorCounter "HA value"
printf "%s\n" "=================================="
}
Fortinet.HAStatus.SyncStatus(){
case ${fgHaStatsSyncStatus[$i]} in
0) printf "%s\t%s\n" "SyncStatus :" "unsynchronized" ;;
1) printf "%s\t%s\n" "SyncStatus :" "synchronized" ;;
esac
}
# - COMMAND LINE ENCODER
while test -n "$1"; do
case "$1" in
--host | -h)
HOST_NAME=$2
shift ;;
--user | -u)
USER=$2
shift ;;
--phAuth | -pa)
PHAUTH=$2
shift ;;
--phPriv | -pp)
PHPRIV=$2
shift ;;
--type | -t)
Fortinet.Main $2
shift ;;
--help | -H)
Help.Main ;;
--version | -V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
print_help
exit $STATE_UNK ;;
esac
shift
done
Fortinet.Main
Submodule Icinga2/Monitoring/012 - SolarEdge/console_solaredge added at 33977d5047
@@ -0,0 +1,121 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2024/02/20
# v: 1.0
# Reason: Emission
#-------------------------
##########################
Param(
[string] $ApplicationId = "",
[string] $Secured = "",
[string] $tenantID = "",
[Int64] $warn = 30,
[Int64] $crit = 15
)
if ("" -eq $ApplicationId){
Write-Host "First param - ApplicationId not set" -ForegroundColor red
exit (2)
} elseif ("" -eq $Secured){
Write-Host "Second param - SecuredId not set" -ForegroundColor red
exit (2)
} elseif ("" -eq $TenantID){
Write-Host "Third param - TenantID not set" -ForegroundColor red
exit (2)
}
$ExitCode = 0
$SecuredPasswordPassword = ConvertTo-SecureString -String $Secured -AsPlainText -Force
$ClientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecuredPasswordPassword
Connect-MgGraph -TenantId $tenantID -ClientSecretCredential $ClientSecretCredential -NoWelcome
$Applications = Get-MgApplication -all
$Logs = @()
$ExpiredSecrets = @()
$Res = @()
foreach ($App in $Applications) {
$AppName = $App.DisplayName
$AppID = $App.Id
$ApplID = $App.AppId
if ($null -eq $AppID) { continue }
$AppCreds = Get-MgApplication -ApplicationId $AppID | Select-Object PasswordCredentials, KeyCredentials
$Secrets = $AppCreds.PasswordCredentials
foreach ($Secret in $Secrets) {
$StartDate = $Secret.StartDateTime
$EndDate = $Secret.EndDateTime
$SecretName = $Secret.DisplayName
$RemainingDaysCount = ($EndDate - (Get-Date)).Days
if($RemainingDaysCount -le $warn -and $RemainingDaysCount -ge 0){
$Logs += [PSCustomObject]@{
ApplicationName = $AppName
ApplicationID = $ApplID
SecretName = $SecretName
SecretStartDate = $StartDate
SecretEndDate = ($EndDate).ToString("dd/MM/yyyy")
RemainingDaysCount = $RemainingDaysCount
}
} elseif ($null -ne $EndDate -and $RemainingDaysCount -lt -1) {
$ExpiredSecrets += [PSCustomObject]@{
ApplicationName = $AppName
EndDate = ($EndDate).ToString("dd/MM/yyyy")
ApplicationID = $ApplID
}
}
}
}
if ($Logs.Length -gt 0) {
Write-Host 'WARN!' $Logs.Length ' Secret need attention!'
} else {
Write-Host 'OK! All secret are in range'
}
if ($ExpiredSecrets.Length -gt 0) {
Write-Host $ExpiredSecrets.Length ' Secret expired!'
Write-Host ''
Write-Host 'Expired:'
$ExpiredSecrets | Sort-Object -Property 'ApplicationName' | Format-Table
}
if ($Logs.Length -gt 0) {
Write-Host 'Expiring:'
Write-Host ''
}
foreach ($GLog in $Logs | Sort-Object -Property 'ApplicationName' | Group-Object -Property 'ApplicationName'){
Write-Host '/!\' $GLog.Name -ForegroundColor yellow
foreach ($Log in $GLog.Group){
if ($null -ne $Log.SecretEndDate){
if ($Log.RemainingDaysCount -cle $crit) {
$ExitCode = 2
} elseif($Log.RemainingDaysCount -cle $warn){
if($ExitCode -ne 2){
$ExitCode = 1
}
}
$Res = [PSCustomObject]@{
DaysLeft = $Log.RemainingDaysCount
SecretName = $Log.SecretName
EndDate = $Log.SecretEndDate
}
}
}
$Res | Format-Table
}
exit ($ExitCode)
@@ -0,0 +1,43 @@
$Devices = @()
$Resultes = @()
$LogOutPut = @()
$DeviceCount = 0
$exitState = 0
$Devices = Get-ADComputer -Properties * -Filter { OperatingSystem -like "Windows*"} |
Where-Object { $_.Enabled -eq $true } | Select-Object Name, DNSHostName, OperatingSystem, OperatingSystemVersion | Sort-Object Name
foreach ($Device in $Devices){
if (Test-Connection -ComputerName $Device.DNSHostName -Quiet){
$DeviceCount += 1
$Resultes = Get-WmiObject Win32_LogicalDisk -ComputerName $Device.DNSHostName -Filter "DriveType=3" -ErrorAction SilentlyContinue | Select-Object DeviceID, Size, Freespace
foreach ($Result in $Resultes | Where-Object {$_.DeviceID -like "C:"}){
$Percentage = "{0:P0}" -f ($Result.Freespace / $Result.Size)
if(($Result.DeviceID -eq "C:") -and ([int]$Percentage.Split("%")[0] -cle 10)){
$LogOutPut += [PSCustomObject]@{
HostName = $Device.DNSHostName
TotCapacity = "{0:N1}" -f ($Result.Size / 1gb) + " GB"
FreeSpace = "{0:N1}" -f ($Result.Freespace / 1gb ) + " GB"
FreePercentage = $Percentage
}
}
}
}
}
if ($LogOutPut.Count -eq 0){
Write-Output "OK - All devices are in range!"
Write-Output " Devices found: $($Devices.Count)"
Write-Output " Analyzed devices: $($DeviceCount)"
} else {
$exitState = 2
Write-Output "CRITICAL! - $($LogOutPut.Count) Devices with space issue!"
Write-Output " Devices found: $($Devices.Count)"
Write-Output " Analyzed devices: $($DeviceCount)"
$LogOutPut | Format-Table
}
Exit $exitState
@@ -0,0 +1,59 @@
<#
.SYNOPSIS
Get-DiskSpaceReport.ps1
.DESCRIPTION
Export all enabled Windows Servers disk space to CSV file.
.LINK
www.alitajran.com/check-free-disk-space-windows-powershell-script
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 02/17/2022 - Initial version
V1.10, 11/03/2023 - Added OS name and OS version
#>
Import-Module ActiveDirectory
# Delete reports older than 60 days
$OldReports = (Get-Date).AddDays(-60)
# Location for disk reports
Get-ChildItem "C:\Temp\*.*" |
Where-Object { $_.LastWriteTime -le $OldReports } |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
# Create variable for log date
$LogDate = Get-Date -Format yyyyMMddhhmm
# Get all systems
$Systems = Get-ADComputer -Properties * -Filter { OperatingSystem -like "Windows 11 Enterprise" } |
Where-Object { $_.Enabled -eq $true } | Select-Object Name, DNSHostName, OperatingSystem, OperatingSystemVersion | Sort-Object Name
# Loop through each system
$DiskReport = ForEach ($System in $Systems) {
$OperatingSystem = $System.OperatingSystem
$OperatingSystemVersion = $System.OperatingSystemVersion
Get-WmiObject Win32_LogicalDisk `
-ComputerName $System.DNSHostName -Filter "DriveType=3" `
-ErrorAction SilentlyContinue |
Select-Object `
@{Label = "HostName"; Expression = { $_.SystemName } },
@{Label = "DriveLetter"; Expression = { $_.DeviceID } },
@{Label = "DriveName"; Expression = { $_.VolumeName } },
@{Label = "Total Capacity (GB)"; Expression = { "{0:N1}" -f ($_.Size / 1gb) } },
@{Label = "Free Space (GB)"; Expression = { "{0:N1}" -f ($_.Freespace / 1gb ) } },
@{Label = 'Free Space (%)'; Expression = { "{0:P0}" -f ($_.Freespace / $_.Size) } },
@{Label = "Operating System"; Expression = { $OperatingSystem } },
@{Label = "Operating System Version"; Expression = { $OperatingSystemVersion } }
}
# Create disk report
$DiskReport |
Export-Csv -Path "C:\Temp\DiskReport.csv" -NoTypeInformation #-Delimiter ";"
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,718 @@
.1.3.6.1.2.1.1.1.0 = STRING: "Spectralink IP-DECT Base Station"
.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.8072.3.2.10
.1.3.6.1.2.1.1.3.0 = Timeticks: (525221) 1:27:32.21
.1.3.6.1.2.1.1.4.0 = STRING: "root@localhost"
.1.3.6.1.2.1.1.5.0 = STRING: "rpn-00.pal.local"
.1.3.6.1.2.1.1.6.0 = STRING: "Unknown"
.1.3.6.1.2.1.1.8.0 = Timeticks: (12) 0:00:00.12
.1.3.6.1.2.1.1.9.1.2.1 = OID: .1.3.6.1.6.3.1
.1.3.6.1.2.1.1.9.1.2.2 = OID: .1.3.6.1.6.3.16.2.2.1
.1.3.6.1.2.1.1.9.1.2.3 = OID: .1.3.6.1.2.1.49
.1.3.6.1.2.1.1.9.1.2.4 = OID: .1.3.6.1.2.1.50
.1.3.6.1.2.1.1.9.1.2.5 = OID: .1.3.6.1.2.1.4
.1.3.6.1.2.1.1.9.1.2.6 = OID: .1.3.6.1.6.3.10.3.1.1
.1.3.6.1.2.1.1.9.1.2.7 = OID: .1.3.6.1.6.3.11.3.1.1
.1.3.6.1.2.1.1.9.1.2.8 = OID: .1.3.6.1.6.3.15.2.1.1
.1.3.6.1.2.1.1.9.1.3.1 = STRING: "The MIB module for SNMPv2 entities"
.1.3.6.1.2.1.1.9.1.3.2 = STRING: "View-based Access Control Model for SNMP."
.1.3.6.1.2.1.1.9.1.3.3 = STRING: "The MIB module for managing TCP implementations"
.1.3.6.1.2.1.1.9.1.3.4 = STRING: "The MIB module for managing UDP implementations"
.1.3.6.1.2.1.1.9.1.3.5 = STRING: "The MIB module for managing IP and ICMP implementations"
.1.3.6.1.2.1.1.9.1.3.6 = STRING: "The SNMP Management Architecture MIB."
.1.3.6.1.2.1.1.9.1.3.7 = STRING: "The MIB for Message Processing and Dispatching."
.1.3.6.1.2.1.1.9.1.3.8 = STRING: "The management information definitions for the SNMP User-based Security Model."
.1.3.6.1.2.1.1.9.1.4.1 = Timeticks: (10) 0:00:00.10
.1.3.6.1.2.1.1.9.1.4.2 = Timeticks: (10) 0:00:00.10
.1.3.6.1.2.1.1.9.1.4.3 = Timeticks: (11) 0:00:00.11
.1.3.6.1.2.1.1.9.1.4.4 = Timeticks: (11) 0:00:00.11
.1.3.6.1.2.1.1.9.1.4.5 = Timeticks: (12) 0:00:00.12
.1.3.6.1.2.1.1.9.1.4.6 = Timeticks: (12) 0:00:00.12
.1.3.6.1.2.1.1.9.1.4.7 = Timeticks: (12) 0:00:00.12
.1.3.6.1.2.1.1.9.1.4.8 = Timeticks: (12) 0:00:00.12
.1.3.6.1.2.1.2.1.0 = INTEGER: 2
.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
.1.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
.1.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"
.1.3.6.1.2.1.2.2.1.2.2 = STRING: "eth0"
.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 24
.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: 6
.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 65536
.1.3.6.1.2.1.2.2.1.4.2 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.5.2 = Gauge32: 100000000
.1.3.6.1.2.1.2.2.1.6.1 = ""
.1.3.6.1.2.1.2.2.1.6.2 = Hex-STRING: 00 13 D1 91 EC 70
.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: 1
.1.3.6.1.2.1.2.2.1.7.2 = INTEGER: 1
.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1
.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: 1
.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.2 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 32411612
.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.11.2 = Counter32: 534065
.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.12.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.2 = Counter32: 817223
.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.17.2 = Counter32: 8661
.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.21.2 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.22.1 = OID: .0.0
.1.3.6.1.2.1.2.2.1.22.2 = OID: .0.0
.1.3.6.1.2.1.3.1.1.1.2.1.172.16.78.7 = INTEGER: 2
.1.3.6.1.2.1.3.1.1.1.2.1.172.16.78.254 = INTEGER: 2
.1.3.6.1.2.1.3.1.1.2.2.1.172.16.78.7 = Hex-STRING: 00 50 56 BA C1 A9
.1.3.6.1.2.1.3.1.1.2.2.1.172.16.78.254 = Hex-STRING: 00 09 0F 09 00 12
.1.3.6.1.2.1.3.1.1.3.2.1.172.16.78.7 = IpAddress: 172.16.78.7
.1.3.6.1.2.1.3.1.1.3.2.1.172.16.78.254 = IpAddress: 172.16.78.254
.1.3.6.1.2.1.4.1.0 = INTEGER: 2
.1.3.6.1.2.1.4.2.0 = INTEGER: 64
.1.3.6.1.2.1.4.3.0 = Counter32: 9184
.1.3.6.1.2.1.4.4.0 = Counter32: 0
.1.3.6.1.2.1.4.5.0 = Counter32: 0
.1.3.6.1.2.1.4.6.0 = Counter32: 0
.1.3.6.1.2.1.4.7.0 = Counter32: 0
.1.3.6.1.2.1.4.8.0 = Counter32: 0
.1.3.6.1.2.1.4.9.0 = Counter32: 9184
.1.3.6.1.2.1.4.10.0 = Counter32: 8482
.1.3.6.1.2.1.4.11.0 = Counter32: 0
.1.3.6.1.2.1.4.12.0 = Counter32: 0
.1.3.6.1.2.1.4.13.0 = INTEGER: 0
.1.3.6.1.2.1.4.14.0 = Counter32: 0
.1.3.6.1.2.1.4.15.0 = Counter32: 0
.1.3.6.1.2.1.4.16.0 = Counter32: 0
.1.3.6.1.2.1.4.17.0 = Counter32: 0
.1.3.6.1.2.1.4.18.0 = Counter32: 0
.1.3.6.1.2.1.4.19.0 = Counter32: 0
.1.3.6.1.2.1.4.20.1.1.127.0.0.1 = IpAddress: 127.0.0.1
.1.3.6.1.2.1.4.20.1.1.172.16.78.30 = IpAddress: 172.16.78.30
.1.3.6.1.2.1.4.20.1.2.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.20.1.2.172.16.78.30 = INTEGER: 2
.1.3.6.1.2.1.4.20.1.3.127.0.0.1 = IpAddress: 255.0.0.0
.1.3.6.1.2.1.4.20.1.3.172.16.78.30 = IpAddress: 255.255.255.0
.1.3.6.1.2.1.4.20.1.4.127.0.0.1 = INTEGER: 0
.1.3.6.1.2.1.4.20.1.4.172.16.78.30 = INTEGER: 1
.1.3.6.1.2.1.4.21.1.1.0.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.21.1.1.172.16.78.0 = IpAddress: 172.16.78.0
.1.3.6.1.2.1.4.21.1.1.224.0.0.0 = IpAddress: 224.0.0.0
.1.3.6.1.2.1.4.21.1.2.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.21.1.2.172.16.78.0 = INTEGER: 2
.1.3.6.1.2.1.4.21.1.2.224.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.21.1.3.0.0.0.0 = INTEGER: 1
.1.3.6.1.2.1.4.21.1.3.172.16.78.0 = INTEGER: 0
.1.3.6.1.2.1.4.21.1.3.224.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.21.1.7.0.0.0.0 = IpAddress: 172.16.78.254
.1.3.6.1.2.1.4.21.1.7.172.16.78.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.21.1.7.224.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.21.1.8.0.0.0.0 = INTEGER: 4
.1.3.6.1.2.1.4.21.1.8.172.16.78.0 = INTEGER: 3
.1.3.6.1.2.1.4.21.1.8.224.0.0.0 = INTEGER: 3
.1.3.6.1.2.1.4.21.1.9.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.21.1.9.172.16.78.0 = INTEGER: 2
.1.3.6.1.2.1.4.21.1.9.224.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.21.1.11.0.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.21.1.11.172.16.78.0 = IpAddress: 255.255.255.0
.1.3.6.1.2.1.4.21.1.11.224.0.0.0 = IpAddress: 240.0.0.0
.1.3.6.1.2.1.4.21.1.13.0.0.0.0 = OID: .0.0
.1.3.6.1.2.1.4.21.1.13.172.16.78.0 = OID: .0.0
.1.3.6.1.2.1.4.21.1.13.224.0.0.0 = OID: .0.0
.1.3.6.1.2.1.4.22.1.1.2.172.16.78.7 = INTEGER: 2
.1.3.6.1.2.1.4.22.1.1.2.172.16.78.254 = INTEGER: 2
.1.3.6.1.2.1.4.22.1.2.2.172.16.78.7 = Hex-STRING: 00 50 56 BA C1 A9
.1.3.6.1.2.1.4.22.1.2.2.172.16.78.254 = Hex-STRING: 00 09 0F 09 00 12
.1.3.6.1.2.1.4.22.1.3.2.172.16.78.7 = IpAddress: 172.16.78.7
.1.3.6.1.2.1.4.22.1.3.2.172.16.78.254 = IpAddress: 172.16.78.254
.1.3.6.1.2.1.4.22.1.4.2.172.16.78.7 = INTEGER: 3
.1.3.6.1.2.1.4.22.1.4.2.172.16.78.254 = INTEGER: 3
.1.3.6.1.2.1.4.23.0 = Counter32: 0
.1.3.6.1.2.1.4.24.4.1.1.0.0.0.0.0.0.0.0.0.172.16.78.254 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.24.4.1.1.172.16.78.0.255.255.255.0.0.0.0.0.0 = IpAddress: 172.16.78.0
.1.3.6.1.2.1.4.24.4.1.1.224.0.0.0.240.0.0.0.0.0.0.0.0 = IpAddress: 224.0.0.0
.1.3.6.1.2.1.4.24.4.1.2.0.0.0.0.0.0.0.0.0.172.16.78.254 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.24.4.1.2.172.16.78.0.255.255.255.0.0.0.0.0.0 = IpAddress: 255.255.255.0
.1.3.6.1.2.1.4.24.4.1.2.224.0.0.0.240.0.0.0.0.0.0.0.0 = IpAddress: 240.0.0.0
.1.3.6.1.2.1.4.24.4.1.3.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: 0
.1.3.6.1.2.1.4.24.4.1.3.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.24.4.1.3.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.24.4.1.4.0.0.0.0.0.0.0.0.0.172.16.78.254 = IpAddress: 172.16.78.254
.1.3.6.1.2.1.4.24.4.1.4.172.16.78.0.255.255.255.0.0.0.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.24.4.1.4.224.0.0.0.240.0.0.0.0.0.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.24.4.1.5.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: 2
.1.3.6.1.2.1.4.24.4.1.5.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.24.4.1.5.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.24.4.1.6.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: 4
.1.3.6.1.2.1.4.24.4.1.6.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: 3
.1.3.6.1.2.1.4.24.4.1.6.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: 3
.1.3.6.1.2.1.4.24.4.1.7.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: 2
.1.3.6.1.2.1.4.24.4.1.7.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.24.4.1.7.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.24.4.1.9.0.0.0.0.0.0.0.0.0.172.16.78.254 = OID: .0.0
.1.3.6.1.2.1.4.24.4.1.9.172.16.78.0.255.255.255.0.0.0.0.0.0 = OID: .0.0
.1.3.6.1.2.1.4.24.4.1.9.224.0.0.0.240.0.0.0.0.0.0.0.0 = OID: .0.0
.1.3.6.1.2.1.4.24.4.1.10.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: 0
.1.3.6.1.2.1.4.24.4.1.10.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.24.4.1.10.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.24.4.1.11.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: 0
.1.3.6.1.2.1.4.24.4.1.11.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.24.4.1.11.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.24.4.1.12.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.12.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.12.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.13.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.13.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.13.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.14.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.14.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.14.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.15.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.15.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.15.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.4.1.16.0.0.0.0.0.0.0.0.0.172.16.78.254 = INTEGER: 1
.1.3.6.1.2.1.4.24.4.1.16.172.16.78.0.255.255.255.0.0.0.0.0.0 = INTEGER: 1
.1.3.6.1.2.1.4.24.4.1.16.224.0.0.0.240.0.0.0.0.0.0.0.0 = INTEGER: 1
.1.3.6.1.2.1.4.24.6.0 = Gauge32: 4
.1.3.6.1.2.1.4.24.7.1.7.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.7.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.7.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.7.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = INTEGER: 1
.1.3.6.1.2.1.4.24.7.1.8.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = INTEGER: 4
.1.3.6.1.2.1.4.24.7.1.8.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = INTEGER: 3
.1.3.6.1.2.1.4.24.7.1.8.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = INTEGER: 3
.1.3.6.1.2.1.4.24.7.1.8.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = INTEGER: 3
.1.3.6.1.2.1.4.24.7.1.9.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.9.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.9.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.9.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.10.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.10.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.10.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.10.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.11.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.11.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.11.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.11.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.12.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = INTEGER: 0
.1.3.6.1.2.1.4.24.7.1.12.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.24.7.1.12.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.24.7.1.12.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.4.24.7.1.13.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.13.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.13.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.13.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.14.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.14.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.14.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.14.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.15.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.15.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.15.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.15.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.16.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.16.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.16.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.16.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.17.1.4.0.0.0.0.0.2.0.0.1.4.172.16.78.254 = INTEGER: 1
.1.3.6.1.2.1.4.24.7.1.17.1.4.172.16.78.0.24.3.0.0.2.1.4.0.0.0.0 = INTEGER: 1
.1.3.6.1.2.1.4.24.7.1.17.1.4.224.0.0.0.4.3.0.0.2.1.4.0.0.0.0 = INTEGER: 1
.1.3.6.1.2.1.4.24.7.1.17.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.3.0.0.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 = INTEGER: 1
.1.3.6.1.2.1.4.25.0 = INTEGER: 2
.1.3.6.1.2.1.4.26.0 = INTEGER: 64
.1.3.6.1.2.1.4.27.0 = Timeticks: (27) 0:00:00.27
.1.3.6.1.2.1.4.28.1.2.1 = INTEGER: 65535
.1.3.6.1.2.1.4.28.1.2.2 = INTEGER: 65535
.1.3.6.1.2.1.4.28.1.3.1 = INTEGER: 1
.1.3.6.1.2.1.4.28.1.3.2 = INTEGER: 1
.1.3.6.1.2.1.4.28.1.4.1 = Gauge32: 1000
.1.3.6.1.2.1.4.28.1.4.2 = Gauge32: 1000
.1.3.6.1.2.1.4.29.0 = Timeticks: (27) 0:00:00.27
.1.3.6.1.2.1.4.30.1.2.1 = Gauge32: 65535
.1.3.6.1.2.1.4.30.1.3.1 = ""
.1.3.6.1.2.1.4.30.1.5.1 = INTEGER: 1
.1.3.6.1.2.1.4.30.1.6.1 = Gauge32: 30000
.1.3.6.1.2.1.4.30.1.7.1 = Gauge32: 1000
.1.3.6.1.2.1.4.30.1.8.1 = INTEGER: 2
.1.3.6.1.2.1.4.31.1.1.3.1 = Counter32: 9088
.1.3.6.1.2.1.4.31.1.1.3.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.4.1 = Counter64: 9088
.1.3.6.1.2.1.4.31.1.1.4.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.5.1 = Counter32: 784488
.1.3.6.1.2.1.4.31.1.1.5.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.6.1 = Counter64: 784488
.1.3.6.1.2.1.4.31.1.1.6.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.7.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.7.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.8.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.8.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.9.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.9.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.10.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.10.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.11.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.11.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.12.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.12.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.13.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.13.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.14.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.14.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.15.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.15.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.16.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.16.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.17.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.17.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.18.1 = Counter32: 9088
.1.3.6.1.2.1.4.31.1.1.18.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.19.1 = Counter64: 9088
.1.3.6.1.2.1.4.31.1.1.19.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.20.1 = Counter32: 8397
.1.3.6.1.2.1.4.31.1.1.20.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.21.1 = Counter64: 8397
.1.3.6.1.2.1.4.31.1.1.21.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.22.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.22.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.23.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.23.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.24.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.24.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.25.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.25.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.26.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.26.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.27.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.27.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.28.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.28.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.29.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.29.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.30.1 = Counter32: 8397
.1.3.6.1.2.1.4.31.1.1.30.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.31.1 = Counter64: 8397
.1.3.6.1.2.1.4.31.1.1.31.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.32.1 = Counter32: 683537
.1.3.6.1.2.1.4.31.1.1.32.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.33.1 = Counter64: 683537
.1.3.6.1.2.1.4.31.1.1.33.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.34.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.34.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.35.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.35.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.36.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.36.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.37.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.37.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.38.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.38.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.39.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.39.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.40.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.40.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.41.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.41.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.42.1 = Counter32: 731
.1.3.6.1.2.1.4.31.1.1.43.1 = Counter64: 731
.1.3.6.1.2.1.4.31.1.1.44.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.45.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.46.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.31.1.1.46.2 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.31.1.1.47.1 = Gauge32: 60000
.1.3.6.1.2.1.4.31.1.1.47.2 = Gauge32: 60000
.1.3.6.1.2.1.4.31.2.0 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.31.3.1.3.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.3.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.4.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.4.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.5.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.5.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.6.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.6.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.7.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.7.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.8.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.8.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.9.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.9.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.10.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.10.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.11.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.11.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.12.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.12.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.13.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.13.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.14.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.14.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.15.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.15.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.16.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.16.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.17.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.17.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.18.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.18.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.19.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.19.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.20.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.20.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.21.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.21.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.23.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.23.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.24.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.24.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.25.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.25.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.26.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.26.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.27.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.27.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.28.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.28.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.29.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.29.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.30.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.30.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.31.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.31.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.32.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.32.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.33.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.33.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.34.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.34.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.35.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.35.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.36.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.36.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.37.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.37.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.38.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.38.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.39.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.39.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.40.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.40.2.2 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.41.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.41.2.2 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.46.2.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.31.3.1.46.2.2 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.31.3.1.47.2.1 = Gauge32: 60000
.1.3.6.1.2.1.4.31.3.1.47.2.2 = Gauge32: 60000
.1.3.6.1.2.1.4.32.1.5.1.1.4.127.0.0.0.8 = INTEGER: 2
.1.3.6.1.2.1.4.32.1.5.1.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128 = INTEGER: 2
.1.3.6.1.2.1.4.32.1.5.2.1.4.172.16.78.0.24 = INTEGER: 2
.1.3.6.1.2.1.4.32.1.6.1.1.4.127.0.0.0.8 = INTEGER: 1
.1.3.6.1.2.1.4.32.1.6.1.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128 = INTEGER: 1
.1.3.6.1.2.1.4.32.1.6.2.1.4.172.16.78.0.24 = INTEGER: 1
.1.3.6.1.2.1.4.32.1.7.1.1.4.127.0.0.0.8 = INTEGER: 2
.1.3.6.1.2.1.4.32.1.7.1.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128 = INTEGER: 2
.1.3.6.1.2.1.4.32.1.7.2.1.4.172.16.78.0.24 = INTEGER: 2
.1.3.6.1.2.1.4.32.1.8.1.1.4.127.0.0.0.8 = Gauge32: 4294967295
.1.3.6.1.2.1.4.32.1.8.1.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128 = Gauge32: 4294967295
.1.3.6.1.2.1.4.32.1.8.2.1.4.172.16.78.0.24 = Gauge32: 4294967295
.1.3.6.1.2.1.4.32.1.9.1.1.4.127.0.0.0.8 = Gauge32: 4294967295
.1.3.6.1.2.1.4.32.1.9.1.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128 = Gauge32: 4294967295
.1.3.6.1.2.1.4.32.1.9.2.1.4.172.16.78.0.24 = Gauge32: 4294967295
.1.3.6.1.2.1.4.33.0 = INTEGER: 1443286718
.1.3.6.1.2.1.4.34.1.3.1.4.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.3.1.4.172.16.78.30 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.3.1.4.172.16.78.255 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.3.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.4.1.4.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.4.1.4.172.16.78.30 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.4.1.4.172.16.78.255 = INTEGER: 3
.1.3.6.1.2.1.4.34.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.5.1.4.127.0.0.1 = OID: .1.3.6.1.2.1.4.32.1.5.1.1.4.127.0.0.0.8
.1.3.6.1.2.1.4.34.1.5.1.4.172.16.78.30 = OID: .1.3.6.1.2.1.4.32.1.5.2.1.4.172.16.78.0.24
.1.3.6.1.2.1.4.34.1.5.1.4.172.16.78.255 = OID: .1.3.6.1.2.1.4.32.1.5.2.1.4.172.16.78.0.24
.1.3.6.1.2.1.4.34.1.5.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = OID: .1.3.6.1.2.1.4.32.1.5.1.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128
.1.3.6.1.2.1.4.34.1.6.1.4.127.0.0.1 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.6.1.4.172.16.78.30 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.6.1.4.172.16.78.255 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.6.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.7.1.4.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.7.1.4.172.16.78.30 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.7.1.4.172.16.78.255 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.7.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.8.1.4.127.0.0.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.8.1.4.172.16.78.30 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.8.1.4.172.16.78.255 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.8.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.9.1.4.127.0.0.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.9.1.4.172.16.78.30 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.9.1.4.172.16.78.255 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.9.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.10.1.4.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.10.1.4.172.16.78.30 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.10.1.4.172.16.78.255 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.10.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.11.1.4.127.0.0.1 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.11.1.4.172.16.78.30 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.11.1.4.172.16.78.255 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.11.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: 2
.1.3.6.1.2.1.4.35.1.4.2.1.4.172.16.78.7 = Hex-STRING: 00 50 56 BA C1 A9
.1.3.6.1.2.1.4.35.1.4.2.1.4.172.16.78.254 = Hex-STRING: 00 09 0F 09 00 12
.1.3.6.1.2.1.4.35.1.5.2.1.4.172.16.78.7 = Timeticks: (525275) 1:27:32.75
.1.3.6.1.2.1.4.35.1.5.2.1.4.172.16.78.254 = Timeticks: (525275) 1:27:32.75
.1.3.6.1.2.1.4.35.1.6.2.1.4.172.16.78.7 = INTEGER: 3
.1.3.6.1.2.1.4.35.1.6.2.1.4.172.16.78.254 = INTEGER: 3
.1.3.6.1.2.1.4.35.1.7.2.1.4.172.16.78.7 = INTEGER: 1
.1.3.6.1.2.1.4.35.1.7.2.1.4.172.16.78.254 = INTEGER: 3
.1.3.6.1.2.1.4.35.1.8.2.1.4.172.16.78.7 = INTEGER: 1
.1.3.6.1.2.1.4.35.1.8.2.1.4.172.16.78.254 = INTEGER: 1
.1.3.6.1.2.1.4.37.1.4.1.4.172.16.78.254.2 = Gauge32: 65535
.1.3.6.1.2.1.4.37.1.5.1.4.172.16.78.254.2 = INTEGER: 0
.1.3.6.1.2.1.5.1.0 = Counter32: 14
.1.3.6.1.2.1.5.2.0 = Counter32: 0
.1.3.6.1.2.1.5.3.0 = Counter32: 12
.1.3.6.1.2.1.5.4.0 = Counter32: 0
.1.3.6.1.2.1.5.5.0 = Counter32: 0
.1.3.6.1.2.1.5.6.0 = Counter32: 0
.1.3.6.1.2.1.5.7.0 = Counter32: 0
.1.3.6.1.2.1.5.8.0 = Counter32: 2
.1.3.6.1.2.1.5.9.0 = Counter32: 0
.1.3.6.1.2.1.5.10.0 = Counter32: 0
.1.3.6.1.2.1.5.11.0 = Counter32: 0
.1.3.6.1.2.1.5.12.0 = Counter32: 0
.1.3.6.1.2.1.5.13.0 = Counter32: 0
.1.3.6.1.2.1.5.14.0 = Counter32: 2
.1.3.6.1.2.1.5.15.0 = Counter32: 0
.1.3.6.1.2.1.5.16.0 = Counter32: 0
.1.3.6.1.2.1.5.17.0 = Counter32: 0
.1.3.6.1.2.1.5.18.0 = Counter32: 0
.1.3.6.1.2.1.5.19.0 = Counter32: 0
.1.3.6.1.2.1.5.20.0 = Counter32: 0
.1.3.6.1.2.1.5.21.0 = Counter32: 0
.1.3.6.1.2.1.5.22.0 = Counter32: 2
.1.3.6.1.2.1.5.23.0 = Counter32: 0
.1.3.6.1.2.1.5.24.0 = Counter32: 0
.1.3.6.1.2.1.5.25.0 = Counter32: 0
.1.3.6.1.2.1.5.26.0 = Counter32: 0
.1.3.6.1.2.1.5.29.1.2.1 = Counter32: 14
.1.3.6.1.2.1.5.29.1.2.2 = Counter32: 0
.1.3.6.1.2.1.5.29.1.3.1 = Counter32: 0
.1.3.6.1.2.1.5.29.1.3.2 = Counter32: 0
.1.3.6.1.2.1.5.29.1.4.1 = Counter32: 2
.1.3.6.1.2.1.5.29.1.4.2 = Counter32: 0
.1.3.6.1.2.1.5.29.1.5.1 = Counter32: 0
.1.3.6.1.2.1.5.29.1.5.2 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.0 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.3 = Counter32: 12
.1.3.6.1.2.1.5.30.1.3.1.4 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.5 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.8 = Counter32: 2
.1.3.6.1.2.1.5.30.1.3.1.11 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.12 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.13 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.14 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.17 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.18 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.1 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.2 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.3 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.4 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.128 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.129 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.130 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.131 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.132 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.133 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.134 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.135 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.136 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.137 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.0 = Counter32: 2
.1.3.6.1.2.1.5.30.1.4.1.3 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.4 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.5 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.8 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.11 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.12 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.13 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.14 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.17 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.18 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.1 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.2 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.3 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.4 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.128 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.129 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.131 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.132 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.133 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.135 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.136 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.137 = Counter32: 0
.1.3.6.1.2.1.6.1.0 = INTEGER: 1
.1.3.6.1.2.1.6.2.0 = INTEGER: 200
.1.3.6.1.2.1.6.3.0 = INTEGER: 120000
.1.3.6.1.2.1.6.4.0 = INTEGER: -1
.1.3.6.1.2.1.6.5.0 = Counter32: 1
.1.3.6.1.2.1.6.6.0 = Counter32: 4
.1.3.6.1.2.1.6.7.0 = Counter32: 0
.1.3.6.1.2.1.6.8.0 = Counter32: 1
.1.3.6.1.2.1.6.9.0 = Gauge32: 1
.1.3.6.1.2.1.6.10.0 = Counter32: 908
.1.3.6.1.2.1.6.11.0 = Counter32: 938
.1.3.6.1.2.1.6.12.0 = Counter32: 0
.1.3.6.1.2.1.6.13.1.1.0.0.0.0.80.0.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.6.13.1.1.0.0.0.0.443.0.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.6.13.1.1.127.0.0.1.2002.0.0.0.0.0 = INTEGER: 2
.1.3.6.1.2.1.6.13.1.1.172.16.78.30.52270.172.16.78.7.56001 = INTEGER: 5
.1.3.6.1.2.1.6.13.1.2.0.0.0.0.80.0.0.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.6.13.1.2.0.0.0.0.443.0.0.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.6.13.1.2.127.0.0.1.2002.0.0.0.0.0 = IpAddress: 127.0.0.1
.1.3.6.1.2.1.6.13.1.2.172.16.78.30.52270.172.16.78.7.56001 = IpAddress: 172.16.78.30
.1.3.6.1.2.1.6.13.1.3.0.0.0.0.80.0.0.0.0.0 = INTEGER: 80
.1.3.6.1.2.1.6.13.1.3.0.0.0.0.443.0.0.0.0.0 = INTEGER: 443
.1.3.6.1.2.1.6.13.1.3.127.0.0.1.2002.0.0.0.0.0 = INTEGER: 2002
.1.3.6.1.2.1.6.13.1.3.172.16.78.30.52270.172.16.78.7.56001 = INTEGER: 52270
.1.3.6.1.2.1.6.13.1.4.0.0.0.0.80.0.0.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.6.13.1.4.0.0.0.0.443.0.0.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.6.13.1.4.127.0.0.1.2002.0.0.0.0.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.6.13.1.4.172.16.78.30.52270.172.16.78.7.56001 = IpAddress: 172.16.78.7
.1.3.6.1.2.1.6.13.1.5.0.0.0.0.80.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.6.13.1.5.0.0.0.0.443.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.6.13.1.5.127.0.0.1.2002.0.0.0.0.0 = INTEGER: 0
.1.3.6.1.2.1.6.13.1.5.172.16.78.30.52270.172.16.78.7.56001 = INTEGER: 56001
.1.3.6.1.2.1.6.14.0 = Counter32: 0
.1.3.6.1.2.1.6.15.0 = Counter32: 35
.1.3.6.1.2.1.6.19.1.7.1.4.172.16.78.30.52270.1.4.172.16.78.7.56001 = INTEGER: 5
.1.3.6.1.2.1.6.19.1.8.1.4.172.16.78.30.52270.1.4.172.16.78.7.56001 = Gauge32: 230
.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.80 = Gauge32: 215
.1.3.6.1.2.1.6.20.1.4.1.4.0.0.0.0.443 = Gauge32: 215
.1.3.6.1.2.1.6.20.1.4.1.4.127.0.0.1.2002 = Gauge32: 188
.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.80 = Gauge32: 215
.1.3.6.1.2.1.6.20.1.4.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.443 = Gauge32: 215
.1.3.6.1.2.1.7.1.0 = Counter32: 8041
.1.3.6.1.2.1.7.2.0 = Counter32: 0
.1.3.6.1.2.1.7.3.0 = Counter32: 0
.1.3.6.1.2.1.7.4.0 = Counter32: 8062
.1.3.6.1.2.1.7.5.1.1.0.0.0.0.161 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.7.5.1.2.0.0.0.0.161 = INTEGER: 161
.1.3.6.1.2.1.7.7.1.8.1.4.0.0.0.0.161.1.4.0.0.0.0.0.3280 = Gauge32: 211
.1.3.6.1.2.1.7.7.1.8.1.4.172.16.78.30.33878.1.4.172.16.94.87.12203.3295 = Gauge32: 188
.1.3.6.1.2.1.7.7.1.8.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.161.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3281 = Gauge32: 211
dot3
.1.3.6.1.2.1.10.7.2.1.1.2 = INTEGER: 2
.1.3.6.1.2.1.10.7.2.1.3.2 = Counter32: 0
.1.3.6.1.2.1.10.7.2.1.7.2 = Counter32: 0
.1.3.6.1.2.1.10.7.2.1.10.2 = Counter32: 0
.1.3.6.1.2.1.10.7.2.1.11.2 = Counter32: 0
.1.3.6.1.2.1.10.7.2.1.13.2 = Counter32: 0
.1.3.6.1.2.1.10.7.2.1.16.2 = Counter32: 0
.1.3.6.1.2.1.10.7.2.1.19.2 = INTEGER: 3
snmp
.1.3.6.1.2.1.11.1.0 = Counter32: 1323
.1.3.6.1.2.1.11.2.0 = Counter32: 1323
.1.3.6.1.2.1.11.3.0 = Counter32: 0
.1.3.6.1.2.1.11.4.0 = Counter32: 0
.1.3.6.1.2.1.11.5.0 = Counter32: 0
.1.3.6.1.2.1.11.6.0 = Counter32: 0
.1.3.6.1.2.1.11.8.0 = Counter32: 0
.1.3.6.1.2.1.11.9.0 = Counter32: 0
.1.3.6.1.2.1.11.10.0 = Counter32: 0
.1.3.6.1.2.1.11.11.0 = Counter32: 0
.1.3.6.1.2.1.11.12.0 = Counter32: 0
.1.3.6.1.2.1.11.13.0 = Counter32: 1333
.1.3.6.1.2.1.11.14.0 = Counter32: 0
.1.3.6.1.2.1.11.15.0 = Counter32: 0
.1.3.6.1.2.1.11.16.0 = Counter32: 1337
.1.3.6.1.2.1.11.17.0 = Counter32: 0
.1.3.6.1.2.1.11.18.0 = Counter32: 0
.1.3.6.1.2.1.11.19.0 = Counter32: 0
.1.3.6.1.2.1.11.20.0 = Counter32: 0
.1.3.6.1.2.1.11.21.0 = Counter32: 0
.1.3.6.1.2.1.11.22.0 = Counter32: 0
.1.3.6.1.2.1.11.24.0 = Counter32: 0
.1.3.6.1.2.1.11.25.0 = Counter32: 0
.1.3.6.1.2.1.11.26.0 = Counter32: 0
.1.3.6.1.2.1.11.27.0 = Counter32: 0
.1.3.6.1.2.1.11.28.0 = Counter32: 1347
.1.3.6.1.2.1.11.29.0 = Counter32: 0
.1.3.6.1.2.1.11.30.0 = INTEGER: 2
.1.3.6.1.2.1.11.31.0 = Counter32: 0
.1.3.6.1.2.1.11.32.0 = Counter32: 0
.1.3.6.1.2.1.16.1.1.1.1.2 = INTEGER: 2
ifXEntry
.1.3.6.1.2.1.31.1.1.1.1.1 = STRING: "lo"
.1.3.6.1.2.1.31.1.1.1.1.2 = STRING: "eth0"
.1.3.6.1.2.1.31.1.1.1.2.1 = Counter32: 0
.1.3.6.1.2.1.31.1.1.1.2.2 = Counter32: 0
.1.3.6.1.2.1.31.1.1.1.3.1 = Counter32: 0
.1.3.6.1.2.1.31.1.1.1.3.2 = Counter32: 0
.1.3.6.1.2.1.31.1.1.1.4.1 = Counter32: 0
.1.3.6.1.2.1.31.1.1.1.4.2 = Counter32: 0
.1.3.6.1.2.1.31.1.1.1.5.1 = Counter32: 0
.1.3.6.1.2.1.31.1.1.1.5.2 = Counter32: 0
.1.3.6.1.2.1.31.1.1.1.6.1 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.6.2 = Counter64: 32411612
.1.3.6.1.2.1.31.1.1.1.7.1 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.7.2 = Counter64: 534065
.1.3.6.1.2.1.31.1.1.1.8.1 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.8.2 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.9.1 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.9.2 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.10.1 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.10.2 = Counter64: 817223
.1.3.6.1.2.1.31.1.1.1.11.1 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.11.2 = Counter64: 8661
.1.3.6.1.2.1.31.1.1.1.12.1 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.12.2 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.13.1 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.13.2 = Counter64: 0
.1.3.6.1.2.1.31.1.1.1.15.1 = Gauge32: 10
.1.3.6.1.2.1.31.1.1.1.15.2 = Gauge32: 100
.1.3.6.1.2.1.31.1.1.1.16.1 = INTEGER: 2
.1.3.6.1.2.1.31.1.1.1.16.2 = INTEGER: 2
.1.3.6.1.2.1.31.1.1.1.17.1 = INTEGER: 2
.1.3.6.1.2.1.31.1.1.1.17.2 = INTEGER: 1
.1.3.6.1.2.1.31.1.1.1.18.1 = ""
.1.3.6.1.2.1.31.1.1.1.18.2 = ""
.1.3.6.1.2.1.31.1.1.1.19.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.31.1.1.1.19.2 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.31.1.5.0 = Timeticks: (0) 0:00:00.00
IPv6
.1.3.6.1.2.1.55.1.1.0 = INTEGER: 2
.1.3.6.1.2.1.55.1.2.0 = INTEGER: 64
.1.3.6.1.2.1.55.1.3.0 = Gauge32: 1
.1.3.6.1.2.1.55.1.5.1.2.1 = STRING: "lo"
.1.3.6.1.2.1.55.1.5.1.3.1 = OID: .0.0
.1.3.6.1.2.1.55.1.5.1.4.1 = Gauge32: 65536
.1.3.6.1.2.1.55.1.5.1.8.1 = ""
.1.3.6.1.2.1.55.1.5.1.9.1 = INTEGER: 1
.1.3.6.1.2.1.55.1.5.1.10.1 = INTEGER: 1
.1.3.6.1.4.1.9749.1.3.1.1.1.0 = Gauge32: 9563248
.1.3.6.1.4.1.9749.1.3.1.1.4.0 = Gauge32: 14218700
.1.3.6.1.4.1.9749.1.3.1.1.5.0 = STRING: "11A_"
.1.3.6.1.4.1.9749.1.3.1.1.6.0 = Gauge32: 14218500
.1.3.6.1.4.1.9749.1.3.1.1.7.0 = STRING: "PCS24Bb"
.1.3.6.1.4.1.9749.1.3.1.1.8.0 = Gauge32: 126538
@@ -0,0 +1,110 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check SpectraLink"
AUTHOR="Kalarumeth"
VERSION="v0.1"
URL="https://github.com/Kalarumeth"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
SNMPVERSION="2c"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
# - OID
SL.OIDS() {
OID_pUptime="1.3.6.1.2.1.1.3.0" #String The uptime of SL.
}
# - MAIN CODE
Script.HostAlive() {
for server in $HOST_NAME; do
ping -c1 -W1 -q $server &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
fi
done
}
Script.SNMP() {
snmpwalk -v $SNMPVERSION -c $COMMUNITY -r 1 -t 10 -Oev $HOST_NAME $1
}
SL.Main() {
Script.HostAlive
case $1 in
uptime)
SL.UpTime
exit $STATE ;;
*)
echo "Unknown check!"
Help.SL
exit $STATE_UNK ;;
esac
}
SL.GetData() {
SL.OIDS
case $1 in
uptime)
sysUptimeIstance=$(Script.SNMP $OID_pUptime | cut -d ')' -f 2 )
;;
esac
}
# Device Information
SL.UpTime() {
SL.GetData uptime
printf "%s\n" "UpTime: $sysUptimeIstance"
}
# - HELP
Help.Main(){
printf "%s\n" "OPTIONS:"
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-t" "--type" "[REQUIRED OPTION] Field for select element to check." " { uptime } "
}
# - COMMAND LINE ENCODER
while test -n "$1"; do
case "$1" in
--host | -h)
HOST_NAME=$2
shift ;;
--community | -c)
COMMUNITY=$2
shift ;;
--type | -t)
SL.Main $2
shift ;;
--help | -H)
Help.Main ;;
--version | -V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
print_help
exit $STATE_UNK ;;
esac
shift
done
SL.Main
@@ -0,0 +1,100 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2024/02/20
# v: 1.0
# Reason: Emission
#-------------------------
##########################
$exitState = 0
$numero = 0
$numeroErrori = 0
$filePathApplication = "C:\Program Files\Microsoft Dynamics AX\60\Server\AX2012R2_PAL_DEV\bin\XppIL\Dynamics.Ax.Application.dll.log"
$filePathAxCompileAll = "C:\Program Files\Microsoft Dynamics AX\60\Server\AX2012R2_PAL_DEV\Log\AxCompileAll.html"
Get-Content $filePathApplication | ForEach-Object {
if ($_ -match "Errors:\s+(\d+)") {
$numero = $matches[1]
}
}
if ($numero -notlike 0) {
Write-Output "Errors Ax Application: $numero"
$exitState = 2
}
$content = Get-Content $filePathAxCompileAll
foreach ($row in $content) {
if ($row -match "Errors\s*:\s*(\d+)") {
$numeroErrori = $matches[1]
}
}
if ($numeroErrori -notlike 0) {
Write-Output "Errors Ax Compile: $numeroErrori"
$exitState = 2
$errorDetails = @()
$recordStart = $false
$currentRecord = @{}
foreach ($row in $content) {
if ($row -match '<Table:Record name="TmpCompilerOutput"') {
$recordStart = $true
$currentRecord = @{}
}
if ($recordStart) {
if ($row -match '<Table:Field name="TreeNodePath">(.+?)</Table:Field>') {
$currentRecord["PercorsoErrore"] = $matches[1]
}
if ($row -match '<Table:Field name="Column">(\d+)</Table:Field>') {
$currentRecord["Colonna"] = $matches[1]
}
if ($row -match '<Table:Field name="Line">(\d+)</Table:Field>') {
$currentRecord["Linea"] = $matches[1]
}
if ($row -match '<Table:Field name="CompileErrorCode">(\d+)</Table:Field>') {
$currentRecord["CodiceErrore"] = $matches[1]
}
if ($row -match '<Table:Field name="CompileErrorString"><!\[CDATA\[(.+?)\]\]></Table:Field>') {
$currentRecord["MessaggioErrore"] = $matches[1]
}
if ($row -match '<Table:Field name="SysCompilerSeverity">0</Table:Field>') {
$currentRecord["Severità"] = "Errore"
}
}
if ($row -match "</Table:Record>" -and $recordStart) {
$recordStart = $false
if ($currentRecord["Severità"] -eq "Errore") {
$errorDetails += [PSCustomObject]@{
Severity = $currentRecord["Severità"]
ErrorPath = $currentRecord["PercorsoErrore"]
Line = $currentRecord["Linea"]
Colomn = $currentRecord["Colonna"]
ErrorMessage = $currentRecord["MessaggioErrore"]
ErrorCode = $currentRecord["CodiceErrore"]
}
}
}
}
Write-Output $errorDetails | Format-Table -Autosize
}
if ($exitState -eq 0) {
Write-Output "OK! No errors found"
}
Exit $exitState
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,6 @@
Finished pass 1 at 11/14/2024 9:11:05 AM
Finished pass 2 at 11/14/2024 9:11:05 AM
Finished pass 3 at 11/14/2024 9:11:07 AM
Finished creating types at 11/14/2024 9:11:07 AM
Errors: 15
Warnings: 0
@@ -0,0 +1,100 @@
#!/bin/bash
# - VAR
# - Bash info
APPNAME=$(basename $0)
NAME="Check MGE Galaxy ups"
AUTHOR="Kalarumeth"
VERSION="v0.1"
URL="https://github.com/Kalarumeth"
# - Default settings for connection
COMMUNITY="public"
HOST_NAME="localhost"
SNMPVERSION="2c"
# - State Variables
STATE_OK=0
STATE_WARN=1
STATE_CRIT=2
STATE_UNK=3
STATE=$STATE_OK
# - OID
MGE.OIDS() {
OID_sysInfo="1.3.6.1.2.1.1.1.0"
OID_curTemp="1.3.6.1.4.1.318.1.1.10.2.3.2.1.4.1"
OID_=""
}
# - MAIN CODE
Script.HostAlive() {
for server in $HOST_NAME; do
ping -c1 -W1 -q $server &>/dev/null
if [[ $? != 0 ]] ; then
printf "%s\n" "$server is unreachable"
exit $STATE_UNK
fi
done
}
Script.SNMP() {
snmpwalk -v $SNMPVERSION -c $COMMUNITY -r 1 -t 10 -Oev $HOST_NAME $1
}
MGE.Main() {
Script.HostAlive
MGE.GetData
exit $STATE
}
MGE.GetData() {
MGE.OIDS
sysInfo=$(Script.SNMP $OID_sysInfo | cut -d ' ' -f 2 )
curTemp=$(Script.SNMP $OID_curTemp | cut -d ' ' -f 2 )
}
# Device Information
# MGE.UpTime() {
# MGE.GetData uptime
# printf "%s\n" "UpTime: $sysUptimeIstance"
# }
# - HELP
Help.Main(){
printf "%s\n" "OPTIONS:"
printf "%s\t%s\t\t%s\n\t\t\t%s\n" "-t" "--type" "[REQUIRED OPTION] Field for select element to check." " { uptime } "
}
# - COMMAND LINE ENCODER
while test -n "$1"; do
case "$1" in
--host | -h)
HOST_NAME=$2
shift ;;
--community | -c)
COMMUNITY=$2
shift ;;
--help | -H)
Help.Main ;;
--version | -V)
Help.Info
exit $STATE ;;
*)
echo "Unknown argument: $1"
print_help
exit $STATE_UNK ;;
esac
shift
done
MGE.Main
@@ -0,0 +1,623 @@
.1.3.6.1.2.1.1.1.0 = STRING: APC Web/SNMP Management Card (MB:v4.1.0 PF:v7.1.8 PN:apc_hw05_aos_718.bin AF1:v7.1.8 AN1:apc_hw05_sy_718.bin MN:AP9631CH HR:05 SN: 5A1728T31174 MD:07/11/2017) (Embedded PowerNet SNMP Agent SW v2.2 compatible)
.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.318
.1.3.6.1.2.1.1.3.0 = Timeticks: (199275220) 23 days, 1:32:32.20
.1.3.6.1.2.1.1.4.0 = STRING: Unknown
.1.3.6.1.2.1.1.5.0 = STRING: apcDE38EC
.1.3.6.1.2.1.1.6.0 = STRING: Unknown
.1.3.6.1.2.1.1.7.0 = INTEGER: 72
.1.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.1.9.1.2.1 = OID: .1.3.6.1.6.3.1
.1.3.6.1.2.1.1.9.1.2.2 = OID: .1.3.6.1.6.3.10.3.1.1
.1.3.6.1.2.1.1.9.1.2.3 = OID: .1.3.6.1.6.3.11.3.1.1
.1.3.6.1.2.1.1.9.1.2.4 = OID: .1.3.6.1.6.3.15.2.1.1
.1.3.6.1.2.1.1.9.1.2.5 = OID: .1.3.6.1.6.3.16.2.1.1
.1.3.6.1.2.1.1.9.1.3.1 = STRING: The MIB Module from SNMPv2 entities
.1.3.6.1.2.1.1.9.1.3.2 = STRING: SNMP Management Architecture MIB
.1.3.6.1.2.1.1.9.1.3.3 = STRING: Message Processing and Dispatching MIB
.1.3.6.1.2.1.1.9.1.3.4 = STRING: USM User MIB
.1.3.6.1.2.1.1.9.1.3.5 = STRING: VACM MIB
.1.3.6.1.2.1.1.9.1.4.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.1.9.1.4.2 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.1.9.1.4.3 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.1.9.1.4.4 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.1.9.1.4.5 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.1.0 = INTEGER: 2
.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
.1.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
.1.3.6.1.2.1.2.2.1.2.1 = STRING: LOOPBACK
.1.3.6.1.2.1.2.2.1.2.2 = STRING: vmac0
.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: softwareLoopback(24)
.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.4.2 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.2 = Gauge32: 100000000
.1.3.6.1.2.1.2.2.1.6.1 = STRING:
.1.3.6.1.2.1.2.2.1.6.2 = STRING: 0:c0:b7:de:38:ec
.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.7.2 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.2 = Timeticks: (25) 0:00:00.25
.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 28370495
.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.11.2 = Counter32: 228312
.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.12.2 = Counter32: 66570
.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.2 = Counter32: 32716607
.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.17.2 = Counter32: 227736
.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.2 = Counter32: 4
.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.21.1 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.21.2 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.22.1 = OID: .0.0
.1.3.6.1.2.1.2.2.1.22.2 = OID: .0.0
.1.3.6.1.2.1.3.1.1.1.2.1.172.16.127.35 = INTEGER: 2
.1.3.6.1.2.1.3.1.1.1.2.1.172.16.127.36 = INTEGER: 2
.1.3.6.1.2.1.3.1.1.1.2.1.172.16.127.46 = INTEGER: 2
.1.3.6.1.2.1.3.1.1.1.2.1.172.16.127.47 = INTEGER: 2
.1.3.6.1.2.1.3.1.1.1.2.1.172.16.127.48 = INTEGER: 2
.1.3.6.1.2.1.3.1.1.1.2.1.172.16.127.254 = INTEGER: 2
.1.3.6.1.2.1.3.1.1.2.2.1.172.16.127.35 = Hex-STRING: E0 DA 90 AC CE E8
.1.3.6.1.2.1.3.1.1.2.2.1.172.16.127.36 = Hex-STRING: E0 DA 90 AC CF 68
.1.3.6.1.2.1.3.1.1.2.2.1.172.16.127.46 = Hex-STRING: 08 2F E9 C2 6B D8
.1.3.6.1.2.1.3.1.1.2.2.1.172.16.127.47 = Hex-STRING: E0 DA 90 AC CF 18
.1.3.6.1.2.1.3.1.1.2.2.1.172.16.127.48 = Hex-STRING: E0 DA 90 AC CE 28
.1.3.6.1.2.1.3.1.1.2.2.1.172.16.127.254 = Hex-STRING: 00 09 0F 09 00 12
.1.3.6.1.2.1.3.1.1.3.2.1.172.16.127.35 = IpAddress: 172.16.127.35
.1.3.6.1.2.1.3.1.1.3.2.1.172.16.127.36 = IpAddress: 172.16.127.36
.1.3.6.1.2.1.3.1.1.3.2.1.172.16.127.46 = IpAddress: 172.16.127.46
.1.3.6.1.2.1.3.1.1.3.2.1.172.16.127.47 = IpAddress: 172.16.127.47
.1.3.6.1.2.1.3.1.1.3.2.1.172.16.127.48 = IpAddress: 172.16.127.48
.1.3.6.1.2.1.3.1.1.3.2.1.172.16.127.254 = IpAddress: 172.16.127.254
.1.3.6.1.2.1.4.1.0 = INTEGER: notForwarding(2)
.1.3.6.1.2.1.4.2.0 = INTEGER: 64
.1.3.6.1.2.1.4.3.0 = Counter32: 265847
.1.3.6.1.2.1.4.4.0 = Counter32: 0
.1.3.6.1.2.1.4.5.0 = Counter32: 29
.1.3.6.1.2.1.4.6.0 = Counter32: 0
.1.3.6.1.2.1.4.7.0 = Counter32: 0
.1.3.6.1.2.1.4.8.0 = Counter32: 0
.1.3.6.1.2.1.4.9.0 = Counter32: 265824
.1.3.6.1.2.1.4.10.0 = Counter32: 182060
.1.3.6.1.2.1.4.11.0 = Counter32: 0
.1.3.6.1.2.1.4.12.0 = Counter32: 0
.1.3.6.1.2.1.4.13.0 = INTEGER: 64 seconds
.1.3.6.1.2.1.4.14.0 = Counter32: 0
.1.3.6.1.2.1.4.15.0 = Counter32: 0
.1.3.6.1.2.1.4.16.0 = Counter32: 0
.1.3.6.1.2.1.4.17.0 = Counter32: 0
.1.3.6.1.2.1.4.18.0 = Counter32: 0
.1.3.6.1.2.1.4.19.0 = Counter32: 0
.1.3.6.1.2.1.4.20.1.1.127.0.0.1 = IpAddress: 127.0.0.1
.1.3.6.1.2.1.4.20.1.1.172.16.127.127 = IpAddress: 172.16.127.127
.1.3.6.1.2.1.4.20.1.2.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.20.1.2.172.16.127.127 = INTEGER: 2
.1.3.6.1.2.1.4.20.1.3.127.0.0.1 = IpAddress: 255.255.255.255
.1.3.6.1.2.1.4.20.1.3.172.16.127.127 = IpAddress: 255.255.255.0
.1.3.6.1.2.1.4.20.1.4.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.20.1.4.172.16.127.127 = INTEGER: 1
.1.3.6.1.2.1.4.20.1.5.127.0.0.1 = INTEGER: 1500
.1.3.6.1.2.1.4.20.1.5.172.16.127.127 = INTEGER: 1500
.1.3.6.1.2.1.4.21.1.1.127.0.0.1 = IpAddress: 127.0.0.1
.1.3.6.1.2.1.4.21.1.1.172.16.127.0 = IpAddress: 172.16.127.0
.1.3.6.1.2.1.4.21.1.2.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.21.1.2.172.16.127.0 = INTEGER: 2
.1.3.6.1.2.1.4.21.1.3.127.0.0.1 = INTEGER: 0
.1.3.6.1.2.1.4.21.1.3.172.16.127.0 = INTEGER: 0
.1.3.6.1.2.1.4.21.1.4.127.0.0.1 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.4.172.16.127.0 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.5.127.0.0.1 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.5.172.16.127.0 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.6.127.0.0.1 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.6.172.16.127.0 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.7.127.0.0.1 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.21.1.7.172.16.127.0 = IpAddress: 0.0.0.0
.1.3.6.1.2.1.4.21.1.8.127.0.0.1 = INTEGER: 3
.1.3.6.1.2.1.4.21.1.8.172.16.127.0 = INTEGER: 3
.1.3.6.1.2.1.4.21.1.9.127.0.0.1 = INTEGER: 2
.1.3.6.1.2.1.4.21.1.9.172.16.127.0 = INTEGER: 2
.1.3.6.1.2.1.4.21.1.10.127.0.0.1 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.10.172.16.127.0 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.11.127.0.0.1 = IpAddress: 255.255.255.255
.1.3.6.1.2.1.4.21.1.11.172.16.127.0 = IpAddress: 255.255.255.255
.1.3.6.1.2.1.4.21.1.12.127.0.0.1 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.12.172.16.127.0 = INTEGER: 65535
.1.3.6.1.2.1.4.21.1.13.127.0.0.1 = OID: .0.0
.1.3.6.1.2.1.4.21.1.13.172.16.127.0 = OID: .0.0
.1.3.6.1.2.1.4.22.1.1.2.172.16.127.35 = INTEGER: 2
.1.3.6.1.2.1.4.22.1.1.2.172.16.127.36 = INTEGER: 2
.1.3.6.1.2.1.4.22.1.1.2.172.16.127.46 = INTEGER: 2
.1.3.6.1.2.1.4.22.1.1.2.172.16.127.47 = INTEGER: 2
.1.3.6.1.2.1.4.22.1.1.2.172.16.127.48 = INTEGER: 2
.1.3.6.1.2.1.4.22.1.1.2.172.16.127.254 = INTEGER: 2
.1.3.6.1.2.1.4.22.1.2.2.172.16.127.35 = STRING: e0:da:90:ac:ce:e8
.1.3.6.1.2.1.4.22.1.2.2.172.16.127.36 = STRING: e0:da:90:ac:cf:68
.1.3.6.1.2.1.4.22.1.2.2.172.16.127.46 = STRING: 8:2f:e9:c2:6b:d8
.1.3.6.1.2.1.4.22.1.2.2.172.16.127.47 = STRING: e0:da:90:ac:cf:18
.1.3.6.1.2.1.4.22.1.2.2.172.16.127.48 = STRING: e0:da:90:ac:ce:28
.1.3.6.1.2.1.4.22.1.2.2.172.16.127.254 = STRING: 0:9:f:9:0:12
.1.3.6.1.2.1.4.22.1.3.2.172.16.127.35 = IpAddress: 172.16.127.35
.1.3.6.1.2.1.4.22.1.3.2.172.16.127.36 = IpAddress: 172.16.127.36
.1.3.6.1.2.1.4.22.1.3.2.172.16.127.46 = IpAddress: 172.16.127.46
.1.3.6.1.2.1.4.22.1.3.2.172.16.127.47 = IpAddress: 172.16.127.47
.1.3.6.1.2.1.4.22.1.3.2.172.16.127.48 = IpAddress: 172.16.127.48
.1.3.6.1.2.1.4.22.1.3.2.172.16.127.254 = IpAddress: 172.16.127.254
.1.3.6.1.2.1.4.22.1.4.2.172.16.127.35 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.22.1.4.2.172.16.127.36 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.22.1.4.2.172.16.127.46 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.22.1.4.2.172.16.127.47 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.22.1.4.2.172.16.127.48 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.22.1.4.2.172.16.127.254 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.23.0 = Counter32: 0
.1.3.6.1.2.1.4.24.6.0 = Gauge32: 5
.1.3.6.1.2.1.4.24.7.1.7.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.7.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.24.7.1.7.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.7.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.24.7.1.7.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = INTEGER: 2
.1.3.6.1.2.1.4.24.7.1.8.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = INTEGER: remote(4)
.1.3.6.1.2.1.4.24.7.1.8.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = INTEGER: local(3)
.1.3.6.1.2.1.4.24.7.1.8.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = INTEGER: local(3)
.1.3.6.1.2.1.4.24.7.1.8.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: local(3)
.1.3.6.1.2.1.4.24.7.1.8.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = INTEGER: local(3)
.1.3.6.1.2.1.4.24.7.1.9.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = INTEGER: local(2)
.1.3.6.1.2.1.4.24.7.1.9.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = INTEGER: local(2)
.1.3.6.1.2.1.4.24.7.1.9.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = INTEGER: local(2)
.1.3.6.1.2.1.4.24.7.1.9.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: local(2)
.1.3.6.1.2.1.4.24.7.1.9.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = INTEGER: local(2)
.1.3.6.1.2.1.4.24.7.1.10.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = Gauge32: 65535
.1.3.6.1.2.1.4.24.7.1.10.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = Gauge32: 65535
.1.3.6.1.2.1.4.24.7.1.10.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = Gauge32: 65535
.1.3.6.1.2.1.4.24.7.1.10.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = Gauge32: 65535
.1.3.6.1.2.1.4.24.7.1.10.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = Gauge32: 65535
.1.3.6.1.2.1.4.24.7.1.11.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.11.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.11.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.11.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.11.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = Gauge32: 0
.1.3.6.1.2.1.4.24.7.1.12.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = INTEGER: 1
.1.3.6.1.2.1.4.24.7.1.12.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = INTEGER: 0
.1.3.6.1.2.1.4.24.7.1.12.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = INTEGER: 0
.1.3.6.1.2.1.4.24.7.1.12.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: 0
.1.3.6.1.2.1.4.24.7.1.12.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = INTEGER: 0
.1.3.6.1.2.1.4.24.7.1.13.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.13.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.13.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.13.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.13.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.14.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.14.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.14.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.14.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.14.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.15.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.15.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.15.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.15.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.15.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.16.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.16.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.16.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.16.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.16.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = INTEGER: -1
.1.3.6.1.2.1.4.24.7.1.17.1.4.0.0.0.0.0.1.0.1.4.172.16.127.254 = INTEGER: active(1)
.1.3.6.1.2.1.4.24.7.1.17.1.4.127.0.0.1.32.1.0.1.4.127.0.0.1 = INTEGER: active(1)
.1.3.6.1.2.1.4.24.7.1.17.1.4.172.16.127.0.24.1.0.1.4.172.16.127.127 = INTEGER: active(1)
.1.3.6.1.2.1.4.24.7.1.17.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.128.1.0.2.16.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 = INTEGER: active(1)
.1.3.6.1.2.1.4.24.7.1.17.2.16.254.128.0.0.2.0.0.0.0.0.0.0.0.0.0.0.64.1.0.2.16.254.128.0.0.2.0.0.0.2.192.183.255.254.222.56.236 = INTEGER: active(1)
.1.3.6.1.2.1.4.24.8.0 = Counter32: 0
.1.3.6.1.2.1.4.25.0 = INTEGER: notForwarding(2)
.1.3.6.1.2.1.4.26.0 = INTEGER: 0
.1.3.6.1.2.1.4.27.0 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.28.1.2.1 = INTEGER: 1500
.1.3.6.1.2.1.4.28.1.3.1 = INTEGER: up(1)
.1.3.6.1.2.1.4.28.1.4.1 = Gauge32: 1000 milliseconds
.1.3.6.1.2.1.4.29.0 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.30.1.2.1 = Gauge32: 1500 octets
.1.3.6.1.2.1.4.30.1.3.1 = STRING: 0:0:0:0
.1.3.6.1.2.1.4.30.1.5.1 = INTEGER: up(1)
.1.3.6.1.2.1.4.30.1.6.1 = Gauge32: 27893 milliseconds
.1.3.6.1.2.1.4.30.1.7.1 = Gauge32: 4000 milliseconds
.1.3.6.1.2.1.4.30.1.8.1 = INTEGER: notForwarding(2)
.1.3.6.1.2.1.4.31.1.1.3.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.3.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.4.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.4.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.5.1 = Counter32: 28389467
.1.3.6.1.2.1.4.31.1.1.5.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.6.1 = Counter64: 28389643
.1.3.6.1.2.1.4.31.1.1.6.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.7.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.7.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.8.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.8.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.9.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.9.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.10.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.10.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.11.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.11.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.12.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.12.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.13.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.13.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.14.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.14.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.15.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.15.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.16.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.16.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.17.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.17.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.18.1 = Counter32: 265996
.1.3.6.1.2.1.4.31.1.1.18.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.19.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.19.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.20.1 = Counter32: 182235
.1.3.6.1.2.1.4.31.1.1.20.2 = Counter32: 16623
.1.3.6.1.2.1.4.31.1.1.21.1 = Counter64: 182237
.1.3.6.1.2.1.4.31.1.1.21.2 = Counter64: 16623
.1.3.6.1.2.1.4.31.1.1.22.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.22.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.23.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.23.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.24.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.24.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.25.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.25.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.26.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.26.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.27.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.27.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.28.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.28.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.29.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.29.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.30.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.30.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.31.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.31.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.32.1 = Counter32: 32739721
.1.3.6.1.2.1.4.31.1.1.32.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.33.1 = Counter64: 32739902
.1.3.6.1.2.1.4.31.1.1.33.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.34.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.34.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.35.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.35.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.36.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.36.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.37.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.37.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.38.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.38.2 = Counter32: 16623
.1.3.6.1.2.1.4.31.1.1.39.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.39.2 = Counter64: 16623
.1.3.6.1.2.1.4.31.1.1.40.1 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.40.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.41.1 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.41.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.42.1 = Counter32: 66570
.1.3.6.1.2.1.4.31.1.1.42.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.43.1 = Counter64: 66570
.1.3.6.1.2.1.4.31.1.1.43.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.44.1 = Counter32: 4
.1.3.6.1.2.1.4.31.1.1.44.2 = Counter32: 0
.1.3.6.1.2.1.4.31.1.1.45.1 = Counter64: 4
.1.3.6.1.2.1.4.31.1.1.45.2 = Counter64: 0
.1.3.6.1.2.1.4.31.1.1.46.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.31.1.1.46.2 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.31.1.1.47.1 = Gauge32: 0 milli-seconds
.1.3.6.1.2.1.4.31.1.1.47.2 = Gauge32: 0 milli-seconds
.1.3.6.1.2.1.4.31.3.1.3.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.3.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.4.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.4.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.5.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.5.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.6.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.6.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.7.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.7.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.8.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.8.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.9.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.9.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.10.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.10.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.11.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.11.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.12.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.12.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.13.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.13.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.14.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.14.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.15.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.15.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.16.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.16.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.17.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.17.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.18.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.18.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.19.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.19.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.20.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.20.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.21.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.21.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.23.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.23.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.24.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.24.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.25.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.25.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.26.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.26.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.27.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.27.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.28.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.28.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.29.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.29.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.30.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.30.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.31.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.31.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.32.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.32.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.33.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.33.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.34.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.34.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.35.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.35.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.36.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.36.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.37.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.37.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.38.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.38.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.39.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.39.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.40.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.40.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.41.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.41.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.42.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.42.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.43.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.43.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.44.1.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.44.2.1 = Counter32: 0
.1.3.6.1.2.1.4.31.3.1.45.1.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.45.2.1 = Counter64: 0
.1.3.6.1.2.1.4.31.3.1.46.1.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.31.3.1.46.2.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.31.3.1.47.1.1 = Gauge32: 0 milli-seconds
.1.3.6.1.2.1.4.31.3.1.47.2.1 = Gauge32: 0 milli-seconds
.1.3.6.1.2.1.4.33.0 = INTEGER: 0
.1.3.6.1.2.1.4.34.1.3.1.4.127.0.0.1 = INTEGER: 1
.1.3.6.1.2.1.4.34.1.3.1.4.172.16.127.127 = INTEGER: 2
.1.3.6.1.2.1.4.34.1.4.1.4.127.0.0.1 = INTEGER: unicast(1)
.1.3.6.1.2.1.4.34.1.4.1.4.172.16.127.127 = INTEGER: unicast(1)
.1.3.6.1.2.1.4.34.1.5.1.4.127.0.0.1 = OID: .0.0
.1.3.6.1.2.1.4.34.1.5.1.4.172.16.127.127 = OID: .0.0
.1.3.6.1.2.1.4.34.1.6.1.4.127.0.0.1 = INTEGER: manual(2)
.1.3.6.1.2.1.4.34.1.6.1.4.172.16.127.127 = INTEGER: manual(2)
.1.3.6.1.2.1.4.34.1.7.1.4.127.0.0.1 = INTEGER: preferred(1)
.1.3.6.1.2.1.4.34.1.7.1.4.172.16.127.127 = INTEGER: preferred(1)
.1.3.6.1.2.1.4.34.1.8.1.4.127.0.0.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.8.1.4.172.16.127.127 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.9.1.4.127.0.0.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.9.1.4.172.16.127.127 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.34.1.10.1.4.127.0.0.1 = INTEGER: active(1)
.1.3.6.1.2.1.4.34.1.10.1.4.172.16.127.127 = INTEGER: active(1)
.1.3.6.1.2.1.4.34.1.11.1.4.127.0.0.1 = INTEGER: readOnly(5)
.1.3.6.1.2.1.4.34.1.11.1.4.172.16.127.127 = INTEGER: readOnly(5)
.1.3.6.1.2.1.4.35.1.4.2.1.4.172.16.127.35 = STRING: e0:da:90:ac:ce:e8
.1.3.6.1.2.1.4.35.1.4.2.1.4.172.16.127.36 = STRING: e0:da:90:ac:cf:68
.1.3.6.1.2.1.4.35.1.4.2.1.4.172.16.127.46 = STRING: 8:2f:e9:c2:6b:d8
.1.3.6.1.2.1.4.35.1.4.2.1.4.172.16.127.47 = STRING: e0:da:90:ac:cf:18
.1.3.6.1.2.1.4.35.1.4.2.1.4.172.16.127.48 = STRING: e0:da:90:ac:ce:28
.1.3.6.1.2.1.4.35.1.4.2.1.4.172.16.127.254 = STRING: 0:9:f:9:0:12
.1.3.6.1.2.1.4.35.1.5.2.1.4.172.16.127.35 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.35.1.5.2.1.4.172.16.127.36 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.35.1.5.2.1.4.172.16.127.46 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.35.1.5.2.1.4.172.16.127.47 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.35.1.5.2.1.4.172.16.127.48 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.35.1.5.2.1.4.172.16.127.254 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.4.35.1.6.2.1.4.172.16.127.35 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.35.1.6.2.1.4.172.16.127.36 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.35.1.6.2.1.4.172.16.127.46 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.35.1.6.2.1.4.172.16.127.47 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.35.1.6.2.1.4.172.16.127.48 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.35.1.6.2.1.4.172.16.127.254 = INTEGER: dynamic(3)
.1.3.6.1.2.1.4.35.1.7.2.1.4.172.16.127.35 = INTEGER: unknown(6)
.1.3.6.1.2.1.4.35.1.7.2.1.4.172.16.127.36 = INTEGER: unknown(6)
.1.3.6.1.2.1.4.35.1.7.2.1.4.172.16.127.46 = INTEGER: unknown(6)
.1.3.6.1.2.1.4.35.1.7.2.1.4.172.16.127.47 = INTEGER: unknown(6)
.1.3.6.1.2.1.4.35.1.7.2.1.4.172.16.127.48 = INTEGER: unknown(6)
.1.3.6.1.2.1.4.35.1.7.2.1.4.172.16.127.254 = INTEGER: unknown(6)
.1.3.6.1.2.1.4.35.1.8.2.1.4.172.16.127.35 = INTEGER: active(1)
.1.3.6.1.2.1.4.35.1.8.2.1.4.172.16.127.36 = INTEGER: active(1)
.1.3.6.1.2.1.4.35.1.8.2.1.4.172.16.127.46 = INTEGER: active(1)
.1.3.6.1.2.1.4.35.1.8.2.1.4.172.16.127.47 = INTEGER: active(1)
.1.3.6.1.2.1.4.35.1.8.2.1.4.172.16.127.48 = INTEGER: active(1)
.1.3.6.1.2.1.4.35.1.8.2.1.4.172.16.127.254 = INTEGER: active(1)
.1.3.6.1.2.1.4.36.1.2.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.3.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.4.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.5.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.6.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.7.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.8.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.9.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.10.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.11.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.12.1 = Gauge32: 0
.1.3.6.1.2.1.4.36.1.13.1 = Gauge32: 0
.1.3.6.1.2.1.5.1.0 = Counter32: 40650
.1.3.6.1.2.1.5.2.0 = Counter32: 0
.1.3.6.1.2.1.5.3.0 = Counter32: 3
.1.3.6.1.2.1.5.4.0 = Counter32: 0
.1.3.6.1.2.1.5.5.0 = Counter32: 0
.1.3.6.1.2.1.5.6.0 = Counter32: 0
.1.3.6.1.2.1.5.7.0 = Counter32: 0
.1.3.6.1.2.1.5.8.0 = Counter32: 33261
.1.3.6.1.2.1.5.9.0 = Counter32: 7375
.1.3.6.1.2.1.5.10.0 = Counter32: 8
.1.3.6.1.2.1.5.11.0 = Counter32: 0
.1.3.6.1.2.1.5.12.0 = Counter32: 3
.1.3.6.1.2.1.5.13.0 = Counter32: 0
.1.3.6.1.2.1.5.14.0 = Counter32: 43285
.1.3.6.1.2.1.5.15.0 = Counter32: 0
.1.3.6.1.2.1.5.16.0 = Counter32: 2654
.1.3.6.1.2.1.5.17.0 = Counter32: 0
.1.3.6.1.2.1.5.18.0 = Counter32: 0
.1.3.6.1.2.1.5.19.0 = Counter32: 0
.1.3.6.1.2.1.5.20.0 = Counter32: 0
.1.3.6.1.2.1.5.21.0 = Counter32: 7376
.1.3.6.1.2.1.5.22.0 = Counter32: 33255
.1.3.6.1.2.1.5.23.0 = Counter32: 0
.1.3.6.1.2.1.5.24.0 = Counter32: 0
.1.3.6.1.2.1.5.25.0 = Counter32: 0
.1.3.6.1.2.1.5.26.0 = Counter32: 0
.1.3.6.1.2.1.5.29.1.2.1 = Counter32: 40650
.1.3.6.1.2.1.5.29.1.2.2 = Counter32: 0
.1.3.6.1.2.1.5.29.1.3.1 = Counter32: 0
.1.3.6.1.2.1.5.29.1.3.2 = Counter32: 0
.1.3.6.1.2.1.5.29.1.4.1 = Counter32: 43285
.1.3.6.1.2.1.5.29.1.4.2 = Counter32: 4
.1.3.6.1.2.1.5.29.1.5.1 = Counter32: 0
.1.3.6.1.2.1.5.29.1.5.2 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.0 = Counter32: 7375
.1.3.6.1.2.1.5.30.1.3.1.3 = Counter32: 3
.1.3.6.1.2.1.5.30.1.3.1.4 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.5 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.8 = Counter32: 33261
.1.3.6.1.2.1.5.30.1.3.1.9 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.10 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.11 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.12 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.13 = Counter32: 8
.1.3.6.1.2.1.5.30.1.3.1.14 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.15 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.16 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.1.17 = Counter32: 3
.1.3.6.1.2.1.5.30.1.3.1.18 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.1 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.2 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.3 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.4 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.128 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.129 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.130 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.131 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.132 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.133 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.134 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.135 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.136 = Counter32: 0
.1.3.6.1.2.1.5.30.1.3.2.137 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.0 = Counter32: 33255
.1.3.6.1.2.1.5.30.1.4.1.3 = Counter32: 2654
.1.3.6.1.2.1.5.30.1.4.1.4 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.5 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.8 = Counter32: 7376
.1.3.6.1.2.1.5.30.1.4.1.9 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.10 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.11 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.12 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.13 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.14 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.15 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.16 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.17 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.1.18 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.1 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.2 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.3 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.4 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.128 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.129 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.130 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.131 = Counter32: 4
.1.3.6.1.2.1.5.30.1.4.2.132 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.133 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.134 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.135 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.136 = Counter32: 0
.1.3.6.1.2.1.5.30.1.4.2.137 = Counter32: 0
.1.3.6.1.2.1.6.1.0 = INTEGER: vanj(4)
.1.3.6.1.2.1.6.2.0 = INTEGER: 1000 milliseconds
.1.3.6.1.2.1.6.3.0 = INTEGER: 60000 milliseconds
.1.3.6.1.2.1.6.4.0 = INTEGER: -1
.1.3.6.1.2.1.6.5.0 = Counter32: 0
.1.3.6.1.2.1.6.6.0 = Counter32: 4980
.1.3.6.1.2.1.6.7.0 = Counter32: 167
.1.3.6.1.2.1.6.8.0 = Counter32: 26
.1.3.6.1.2.1.6.9.0 = Gauge32: 0
.1.3.6.1.2.1.6.10.0 = Counter32: 124887
.1.3.6.1.2.1.6.11.0 = Counter32: 118153
.1.3.6.1.2.1.6.12.0 = Counter32: 0
.1.3.6.1.2.1.6.14.0 = Counter32: 0
.1.3.6.1.2.1.6.15.0 = Counter32: 77296
.1.3.6.1.2.1.6.17.0 = Counter64: 124887
.1.3.6.1.2.1.6.18.0 = Counter64: 118153
.1.3.6.1.2.1.7.1.0 = Counter32: 31610
.1.3.6.1.2.1.7.2.0 = Counter32: 69166
.1.3.6.1.2.1.7.3.0 = Counter32: 0
.1.3.6.1.2.1.7.4.0 = Counter32: 21667
.1.3.6.1.2.1.7.8.0 = Counter64: 31614
.1.3.6.1.2.1.7.9.0 = Counter64: 21669
.1.3.6.1.2.1.11.1.0 = Counter32: 31510
.1.3.6.1.2.1.11.2.0 = Counter32: 4955
.1.3.6.1.2.1.11.3.0 = Counter32: 0
.1.3.6.1.2.1.11.4.0 = Counter32: 0
.1.3.6.1.2.1.11.5.0 = Counter32: 22
.1.3.6.1.2.1.11.6.0 = Counter32: 4
.1.3.6.1.2.1.11.8.0 = Counter32: 0
.1.3.6.1.2.1.11.9.0 = Counter32: 0
.1.3.6.1.2.1.11.10.0 = Counter32: 0
.1.3.6.1.2.1.11.11.0 = Counter32: 0
.1.3.6.1.2.1.11.12.0 = Counter32: 0
.1.3.6.1.2.1.11.13.0 = Counter32: 4935
.1.3.6.1.2.1.11.14.0 = Counter32: 0
.1.3.6.1.2.1.11.15.0 = Counter32: 209
.1.3.6.1.2.1.11.16.0 = Counter32: 4760
.1.3.6.1.2.1.11.17.0 = Counter32: 0
.1.3.6.1.2.1.11.18.0 = Counter32: 0
.1.3.6.1.2.1.11.19.0 = Counter32: 0
.1.3.6.1.2.1.11.20.0 = Counter32: 0
.1.3.6.1.2.1.11.21.0 = Counter32: 21
.1.3.6.1.2.1.11.22.0 = Counter32: 0
.1.3.6.1.2.1.11.24.0 = Counter32: 0
.1.3.6.1.2.1.11.25.0 = Counter32: 0
.1.3.6.1.2.1.11.26.0 = Counter32: 0
.1.3.6.1.2.1.11.27.0 = Counter32: 0
.1.3.6.1.2.1.11.28.0 = Counter32: 4979
.1.3.6.1.2.1.11.29.0 = Counter32: 0
.1.3.6.1.2.1.11.30.0 = INTEGER: enabled(1)
.1.3.6.1.2.1.11.31.0 = Counter32: 26555
.1.3.6.1.2.1.11.32.0 = Counter32: 0
.1.3.6.1.2.1.33.1.6.1.0 = Gauge32: 0
@@ -0,0 +1,44 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2025-12-03
# v: 1.0
# Reason: Emission
#-------------------------
##########################
param(
[string]$CertName = "SQL SSL Cert"
)
$cert = Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.FriendlyName -eq $CertName } |
Select-Object -First 1
if (-not $cert) {
Write-Output "CRITICAL - Certificato '$CertName' non trovato"
exit 2
}
$now = Get-Date
$expires = $cert.NotAfter
$daysLeft = ($expires - $now).Days
if ($daysLeft -lt 0) {
Write-Output "CRITICAL - Certificato '$CertName' SCADUTO il $($expires)"
exit 2
}
if ($daysLeft -lt 7) {
Write-Output "CRITICAL - Certificato '$CertName' scade tra $daysLeft giorni (il $($expires))"
exit 2
}
if ($daysLeft -lt 15) {
Write-Output "WARNING - Certificato '$CertName' scade tra $daysLeft giorni (il $($expires))"
exit 1
}
Write-Output "OK - Certificato '$CertName' valido fino al $($expires) ($daysLeft giorni rimanenti)"
exit 0