Skip to content
Snippets Groups Projects
Commit 39bcac34 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

Merge branch 'fix-netstat' into 'master'

Fix netstat

See merge request !50
parents 9876037c 7f694795
No related branches found
No related tags found
1 merge request!50Fix netstat
...@@ -8,12 +8,50 @@ ...@@ -8,12 +8,50 @@
# #
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# 2020-07-08 v1.0 <axel.hahn@iml.unibe.ch> # 2020-07-08 v1.0 <axel.hahn@iml.unibe.ch>
# 2022-10-25 v1.1 <axel.hahn@unibe.ch> shell fixes; no tmpfiles; IML look
# ====================================================================== # ======================================================================
. `dirname $0`/inc_pluginfunctions . $(dirname $0)/inc_pluginfunctions
self_APPNAME=$( basename $0 | tr [:lower:] [:upper:] )
self_APPVERSION=1.1
# ----------------------------------------------------------------------
# functions
# ----------------------------------------------------------------------
function showHelp(){
cat <<EOF
______________________________________________________________________
$self_APPNAME
v$self_APPVERSION
(c) Institute for Medical Education - University of Bern
Licence: GNU GPL 3
______________________________________________________________________
Count number of network connections.
SYNTAX:
$(basename $0) [ -w value -c value -h ]
-w VALUE cpu usage warning level (default: 75)
-c VALUE cpu usage critical level (default: 90)
-h or --help show this help.
PARAMETERS:
None.
EXAMPLE:
$(basename $0) -w 60 -c 80 -p 40
If there is no -w and -c then the result is always OK.
EOF
}
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# MAIN # MAIN
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
...@@ -22,30 +60,26 @@ ...@@ -22,30 +60,26 @@
ph.require netstat ph.require netstat
# --- check param -h # --- check param -h
if [ "$1" = "-h" ]; then case "$1" in
echo " "--help"|"-h")
usage: $0 [ -w value -c value -h ] showHelp
-w Warning count (optional)
-c Critical count (optional; must be larger than warning)
-h this help
If there is no -w and -c then the result is always OK.
"
exit 0 exit 0
fi ;;
*)
esac
# --- set optional limits # --- set optional limits
typeset -i iWarnLimit=` ph.getValueWithParam 0 w "$@"` typeset -i iWarnLimit=$( ph.getValueWithParam 0 w "$@")
typeset -i iCriticalLimit=` ph.getValueWithParam 0 c "$@"` typeset -i iCriticalLimit=$( ph.getValueWithParam 0 c "$@")
# --- count all connections # --- count all connections
tmpfile1=`mktemp` typeset -i iTotal=0
tmpfile=`mktemp` typeset -i iEst=0
typeset -i iListen=0
typeset -i iWait=0
(netstat -wltun; netstat -wtun) | awk '{ print $6 }' | grep -E '(ESTABLISHED|LISTEN|TIME_WAIT)' >$tmpfile1 netdata=$( (netstat -wltun; netstat -wtun) | awk '{ print $6 }' | grep -E '(ESTABLISHED|LISTEN|TIME_WAIT)' )
typeset -i iTotal=`wc -l $tmpfile1 | awk '{ print $1 }'` iTotal=$( echo "$netdata" | wc -l | awk '{ print $1 }')
if [ $iWarnLimit -gt 0 -a $iCriticalLimit -gt 0 ]; then if [ $iWarnLimit -gt 0 -a $iCriticalLimit -gt 0 ]; then
ph.setStatusByLimit $iTotal $iWarnLimit $iCriticalLimit ph.setStatusByLimit $iTotal $iWarnLimit $iCriticalLimit
...@@ -55,17 +89,20 @@ ph.status "NETSTAT - count of connections: $iTotal" ...@@ -55,17 +89,20 @@ ph.status "NETSTAT - count of connections: $iTotal"
# --- add performance data # --- add performance data
cat $tmpfile1 | sort | uniq -c >$tmpfile data2=$( echo "$netdata" | sort | uniq -c )
# result is something like that: # result is something like that:
# 5 ESTABLISHED # 5 ESTABLISHED
# 10 LISTEN # 10 LISTEN
# 77 TIME_WAIT # 77 TIME_WAIT
echo "$data2"
ph.perfadd "established" "`grep ESTABLISHED $tmpfile | awk '{ print $1 }' `" iEst=$( echo "$data2" | grep ESTABLISHED | awk '{ print $1 }' )
ph.perfadd "listen" "`grep LISTEN $tmpfile | awk '{ print $1 }' `" iListen=$( echo "$data2" | grep LISTEN | awk '{ print $1 }' )
ph.perfadd "time-wait" "`grep TIME_WAIT $tmpfile | awk '{ print $1 }' `" iWait=$( echo "$data2" | grep TIME_WAIT | awk '{ print $1 }' )
ph.perfadd "established" "$iEst"
ph.perfadd "listen" "$iListen"
ph.perfadd "time-wait" "$iWait"
# --- bye # --- bye
rm -f $tmpfile $tmpfile1
ph.exit ph.exit
...@@ -7,7 +7,7 @@ There is one include script used by all checks: ...@@ -7,7 +7,7 @@ There is one include script used by all checks:
## Check scripts ## Check scripts
* check_apache_requests * [check_apache_requests](check_apache_requests.md)
* check_backup_one * check_backup_one
* check_ceph_diskfree * check_ceph_diskfree
* check_ceph_osd * check_ceph_osd
...@@ -15,7 +15,7 @@ There is one include script used by all checks: ...@@ -15,7 +15,7 @@ There is one include script used by all checks:
* check_clientbackup * check_clientbackup
* check_couchdb-lb * check_couchdb-lb
* [check_cpu](check_cpu.md) * [check_cpu](check_cpu.md)
* check_cronstatus * [check_cronstatus](check_cronstatus.md)
* check_disk-io * check_disk-io
* check_dns_responsetime * check_dns_responsetime
* [check_eol](check_eol.md) * [check_eol](check_eol.md)
...@@ -23,13 +23,13 @@ There is one include script used by all checks: ...@@ -23,13 +23,13 @@ There is one include script used by all checks:
* check_haproxy_status * check_haproxy_status
* check_memory * check_memory
* check_netio * check_netio
* check_netstat * [check_netstat](check_netstat.md)
* check_opencpu * check_opencpu
* check_packages2install * check_packages2install
* check_proc_mem * check_proc_mem
* check_proc_ressources * check_proc_ressources
* check_proc_zombie * check_proc_zombie
* check_reboot_required * [check_reboot_required](check_reboot_required.md)
* check_sensuplugins * check_sensuplugins
* check_smartstatus * check_smartstatus
* [check_snmp_data](check_snmp_data.md) * [check_snmp_data](check_snmp_data.md)
......
# check netstat
## Introduction
Count number of network connections.
## Syntax
```text
> ./check_netstat -h
______________________________________________________________________
CHECK_NETSTAT
v1.1
(c) Institute for Medical Education - University of Bern
Licence: GNU GPL 3
______________________________________________________________________
Count number of network connections.
SYNTAX:
check_netstat [ -w value -c value -h ]
-w VALUE cpu usage warning level (default: 75)
-c VALUE cpu usage critical level (default: 90)
-h or --help show this help.
PARAMETERS:
None.
EXAMPLE:
check_netstat -w 60 -c 80 -p 40
If there is no -w and -c then the result is always OK.
```
## Examples
Simple call:
```txt
> ./check_netstat
OK: NETSTAT - count of connections: 27
20 ESTABLISHED
4 LISTEN
3 TIME_WAIT
|established=20;;;0; listen=4;;;0; time-wait=3;;;0;
```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment