mikrotik_version per check_mk

Plugin per tenere aggiornato il mikrotik usando check_mk

Plugin per check_mk che verifica via SNMP la versione di routerOS e evidenzia se non è aggiornata.

Restituisce:

  • Critical se esiste una versione disponibile (major e medium) versione installata
  • Warning se differisce nella versione minor
  • Ok se la versione installata è l’ultima disponibile sul sito Mikrotik
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
#
# Vittore Zen - vittore [ @ ] zen.pn.it
# 2018.09.25

import requests

mikrotik_version_default = "6.0.0"

def inventory_mikrotik_version(info):
    if len(info) > 0:
        return [ ( None, "mikrotik_version_default") for x in info ]

def check_mikrotik_version(item, params, info):
    r = requests.get('https://mikrotikdownload.s3.amazonaws.com/routeros/LATEST.6')
    latest_with_build=r.text

    current=info[0][0]

    latest,build=latest_with_build.split(" ")

    latest_major,latest_medium,latest_minor=latest.split(".")
    current_major,current_medium,current_minor=current.split(".")

    critical=latest_major+"."+latest_medium+".0"

    infotext = " - current: "+current+" avaible: "+latest
    if current_major<latest_major:
     return (2, "CRIT" + infotext)
    if current_medium<latest_medium:
     return (2, "CRIT" + infotext)
    if current_medium == latest_medium and current_minor<latest_minor :
     return (1, "WARN" + infotext)
    return (0, "OK" + infotext)

check_info['mikrotik_version'] = {
  "inventory_function"  : inventory_mikrotik_version,
  "check_function"      : check_mikrotik_version,
  "service_description" : "RouterOS version",
  "has_perfdata"        : False,
  "group"               : "mikrotik_version",
  "snmp_info"             : ( ".1.3.6.1.4.1.14988.1.1.4.4","0" )

}

Dialogue & Discussion