File: //usr/lib/python2.7/site-packages/lap/conntrack.py
#
import subprocess
import os
import re
def __run__(params):
try:
warn = int(params.get("warn"))
crit = int(params.get("crit"))
except Exception, e:
return [2, "CRITICAL - Error getting params: %s" % repr(e)]
try:
count = 0
if os.path.isfile("/proc/sys/net/netfilter/nf_conntrack_count"):
with open("/proc/sys/net/netfilter/nf_conntrack_count") as count_fd:
count = int(count_fd.readline())
else:
with open("/proc/sys/net/ipv4/netfilter/ip_conntrack_count") as count_fd:
count = int(count_fd.readline())
max = 0
if os.path.isfile("/proc/sys/net/netfilter/nf_conntrack_max"):
with open("/proc/sys/net/netfilter/nf_conntrack_max") as maxcount_fd:
max = int(maxcount_fd.readline())
else:
with open("/proc/sys/net/ipv4/netfilter/ip_conntrack_max") as maxcount_fd:
max = int(maxcount_fd.readline())
warn_perc = max * warn / 100
crit_perc = max * crit / 100
if count < warn_perc:
return [0, "OK - Conntrack: %s" % count]
elif count >= warn_perc and count < crit_perc:
return [1, "WARN - Conntrack: %s" % count]
else:
return [2, "CRIT - Conntrack: %s" % count]
except Exception, e:
return [2, "CRITICAL - Error: %s" % repr(e)]