From c543a02604cda46592b4422c616645cb19e31abc Mon Sep 17 00:00:00 2001 From: Raphael Thoma Date: Thu, 19 Jun 2014 08:07:15 +0200 Subject: [PATCH] added monitoring for IAX2 peers --- checks/asterisk/agent/asterisk_stats | 6 ++++++ checks/asterisk/checks/asterisk_stats | 28 ++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/checks/asterisk/agent/asterisk_stats b/checks/asterisk/agent/asterisk_stats index 40b17a7..aed4972 100644 --- a/checks/asterisk/agent/asterisk_stats +++ b/checks/asterisk/agent/asterisk_stats @@ -15,3 +15,9 @@ echo "sip registry $(asterisk -rx 'sip show registry' | \ echo "sip channels $(asterisk -rx 'sip show channels' | tail -n1)" echo "sip channelstats $(asterisk -rx 'sip show channelstats' | tail -n1)" echo "sip calls $(asterisk -rx 'core show calls' | grep active\ call | cut -d' ' -f1)" +echo "iax2 peers $(asterisk -rx 'iax2 show peers' | \ + grep "iax2 peers" | \ + sed -e "s:\[Monitored\::monitored:" \ + -e "s:Unmonitored\::unmonitored:" \ + -e "s: \[: :" \ + -e "s:\]$::")" diff --git a/checks/asterisk/checks/asterisk_stats b/checks/asterisk/checks/asterisk_stats index c6f3141..83262f0 100644 --- a/checks/asterisk/checks/asterisk_stats +++ b/checks/asterisk/checks/asterisk_stats @@ -5,6 +5,13 @@ def inventory_asterisk_stats_sip_peers(checkname, info): inventory.append ( ( "SIP peers", "", None) ) return inventory +def inventory_asterisk_stats_iax2_peers(checkname, info): + inventory = [] + for line in info: + if ( line[0], line[1] ) == ( "iax2", "peers" ): + inventory.append ( ( "IAX2 peers", "", None) ) + return inventory + def inventory_asterisk_stats_sip_users(checkname, info): inventory = [] for line in info: @@ -51,11 +58,21 @@ def check_asterisk_stats_sip_peers(item, params, info): online_unmonitored = int(line[11]) offline_unmonitored = int(line[13]) if offline_monitored > 0: - return (2,"CRITICAL - %i peer(s) are offline" % (offline_monitored)) - if online_unmonitored + offline_unmonitored == 0: - return (0,"OK - %i all, %i online, %i offline" % ( overall_peers, online_monitored, offline_monitored ), [("online_monitored", online_monitored), ("offline_monitored", offline_monitored)]) + return (2,"%i peer(s) are offline" % (offline_monitored)) else: - return (1,"WARNING - %i peers unmonitored"%(online_unmonitored + offline_unmonitored)) + return (0,"OK - %i all, %i online, %i offline" % ( overall_peers, online_monitored, offline_monitored ), [("online_monitored", online_monitored), ("offline_monitored", offline_monitored)]) + +def check_asterisk_stats_iax2_peers(item, params, info): + for line in info: + if ( line[0], line[1] ) == ( "iax2", "peers" ): + overall_peers = int(line[2]) + online_monitored = int(line[5]) + offline_monitored = int(line[7]) + unmonitored = int(line[9]) + if offline_monitored > 0: + return (2,"%i peer(s) are offline" % (offline_monitored)) + else: + return (0,"OK - %i all, %i online, %i offline" % ( overall_peers, online_monitored, offline_monitored ), [("online_monitored", online_monitored), ("offline_monitored", offline_monitored)]) def check_asterisk_stats_sip_users(item, params, info): for line in info: @@ -64,7 +81,7 @@ def check_asterisk_stats_sip_users(item, params, info): if overall_users > 0: return (0,"OK - %i users" % ( overall_users ), [('sip_users', overall_users)] ) else: - return (1,"WARNING - %i users" % ( overall_users ), [('sip_users', overall_users)] ) + return (1,"%i users" % ( overall_users ), [('sip_users', overall_users)] ) def check_asterisk_stats_sip_channels(item, params, info): for line in info: @@ -89,3 +106,4 @@ check_info['asterisk_stats.sip_users'] = (check_asterisk_stats_sip_users, "A check_info['asterisk_stats.sip_channels'] = (check_asterisk_stats_sip_channels, "Asterisk" , 1 , inventory_asterisk_stats_sip_channels) check_info['asterisk_stats.sip_channelstats'] = (check_asterisk_stats_sip_channelstats, "Asterisk" , 1 , inventory_asterisk_stats_sip_channelstats) check_info['asterisk_stats.sip_calls'] = (check_asterisk_stats_sip_calls, "Asterisk" , 1 , inventory_asterisk_stats_sip_calls) +check_info['asterisk_stats.iax2_peers'] = (check_asterisk_stats_iax2_peers, "Asterisk" , 1 , inventory_asterisk_stats_iax2_peers)