diff -Nur -x '*.orig' -x '*.rej' smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/sudoers/00zabbixAgentAlias mezzanine_patched_smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/sudoers/00zabbixAgentAlias --- smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/sudoers/00zabbixAgentAlias 2010-09-02 17:11:33.000000000 +0200 +++ mezzanine_patched_smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/sudoers/00zabbixAgentAlias 2010-09-02 17:11:14.000000000 +0200 @@ -4,7 +4,16 @@ $runasroot .= ', /var/lib/zabbix/bin/megaraid-parser.pl'; } $runasroot .= "\n"; -$OUT .= 'Cmnd_Alias ZABBIX_AGENT_ROOT = '.$runasroot +$OUT .= 'Cmnd_Alias ZABBIX_AGENT_ROOT = '.$runasroot; + +if ( -x '/usr/sbin/asterisk' ){ + $OUT.=<<"HERE" + +Cmnd_Alias ZABBIX_AGENT_ASTERISK = /var/lib/zabbix/bin/check_asterisk * + +HERE +} + } Cmnd_Alias ZABBIX_AGENT_MYSQL = /usr/bin/du -s /var/lib/mysql diff -Nur -x '*.orig' -x '*.rej' smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/sudoers/30zabbixAgent mezzanine_patched_smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/sudoers/30zabbixAgent --- smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/sudoers/30zabbixAgent 2010-09-02 17:11:33.000000000 +0200 +++ mezzanine_patched_smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/sudoers/30zabbixAgent 2010-09-02 17:10:47.000000000 +0200 @@ -1,3 +1,9 @@ zabbix ALL=(root) NOPASSWD: ZABBIX_AGENT_ROOT zabbix ALL=(mysql) NOPASSWD: ZABBIX_AGENT_MYSQL - +{ +if ( -x '/usr/sbin/asterisk' ){ + $OUT.=<<"HERE" +zabbix ALL=(asterisk) NOPASSWD: ZABBIX_AGENT_ASTERISK +HERE +} +} diff -Nur -x '*.orig' -x '*.rej' smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/zabbix/zabbix_agentd.conf/90UserParameters_asterisk mezzanine_patched_smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/zabbix/zabbix_agentd.conf/90UserParameters_asterisk --- smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/zabbix/zabbix_agentd.conf/90UserParameters_asterisk 1970-01-01 01:00:00.000000000 +0100 +++ mezzanine_patched_smeserver-zabbix-agent-0.1/root/etc/e-smith/templates/etc/zabbix/zabbix_agentd.conf/90UserParameters_asterisk 2010-09-02 17:10:47.000000000 +0200 @@ -0,0 +1,18 @@ +{ + +if ( -x '/usr/sbin/asterisk' ){ + $OUT.=<<"HERE" +# Type: Agent or Agent (active) +# Key: asterisk[key] where key can be max_latency, sip_peers, iax2_peers, channels, calls, version +# Type of information: Numeric (integer 64bit) or characters (for version) +# Units: depends on the key +# Custom multiplier: Do not use +# Store Value: As is + +UserParameter=asterisk[*],/usr/bin/sudo -u asterisk /var/lib/zabbix/bin/check_asterisk_monitoring \$1 + +HERE +} + +} + diff -Nur -x '*.orig' -x '*.rej' smeserver-zabbix-agent-0.1/root/var/lib/zabbix/bin/check_asterisk mezzanine_patched_smeserver-zabbix-agent-0.1/root/var/lib/zabbix/bin/check_asterisk --- smeserver-zabbix-agent-0.1/root/var/lib/zabbix/bin/check_asterisk 1970-01-01 01:00:00.000000000 +0100 +++ mezzanine_patched_smeserver-zabbix-agent-0.1/root/var/lib/zabbix/bin/check_asterisk 2010-09-02 17:10:47.000000000 +0200 @@ -0,0 +1,61 @@ +#!/bin/bash + +# Asterisk check script +# by Steeve Avoungou Firewall Services + +if [ $# -ne "1" ]; then + echo "Usage:" + echo "$0 " + echo "Where can be one of version, sip_peers, iax2_peers, max_latency, channels, calls" + exit 1 +fi + + +case "$@" in + + # Show version of asterisk: + version) + echo $(asterisk -rx 'core show version') + ;; + + # Count SIP peers + sip_peers) + echo $(asterisk -rx 'sip show peers'| grep -v 'Name/username' | egrep -v '[[:digit:]] sip peers' | wc -l) + ;; + + # Display the higher latency + max_latency) + max_latency=0 + for i in $(asterisk -rx 'sip show peers' | awk '{print $8}' | grep -o '[0-9][0-9]*'); do + if [ "$i" -gt "$max_latency" ]; then + max_latency=$i + fi + done + for i in $(asterisk -rx 'iax2 show peers' | awk '{print $8}' | grep -o '[0-9][0-9]*'); do + if [ "$i" -gt "$max_latency" ]; then + max_latency=$i + fi + done + echo $max_latency + ;; + + # Count IAX2 peers + iax2_peers) + echo $(asterisk -rx 'iax2 show peers' | grep -v 'Name/Username' | egrep -v '[[:digit:]] iax2 peers' | wc -l) + ;; + + # Count number of active channels + channels) + echo $(asterisk -rx "core show channels" | grep 'active channel' | awk '{print $1}') + ;; + + # Count number of active calls + calls) + echo $(asterisk -rx "core show channels" | grep 'active call' | awk '{print $1}') + ;; + + *) + echo 'ZBX_NOTSUPPORTED' + ;; +esac +