Lately we have been asked by lot of customers about how they can monitor their asterisk server. Follow these simple steps to monitor asterisk or freeswitch server. Actually you can monitor any SIP Server with these steps. We strongly suggest running this on a server other that Asterisk or freeswitch.
Install Nagios Core : Download latest source from https://www.nagios.org/download
./configure –prefix=/usr/local/nagios –with-nagios-user=nagios –with-nagios-group=nagios
make; make install
Install nagios plugins
./configure –prefix=/usr/local/nagios/
make; make install
Download the check_sip file from https://exchange.nagios.org/directory/Plugins/Network-Protocols/*-VoIP/SIP/check_sip/details
cd /usr/local/nagios/libexec/
wget https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=1307&cf_id=24
To make sure if this works fine, run this command.
./check_sip -u sip:102@asterisk_ip -H asterisk_ip
Output will be like this
SIP/2.0 200 OK 0.001121 seconds response time|’rtt’=0.001121s;0.5s;1s;0:10;
Configure Nagios
cd /usr/local/nagios/etc/objects
Create a new command, add the below code to command.cfg
define command{
command_name check_sip
command_line $USER1$/check_sip -u $ARG1$@$HOSTADDRESS$ -H $HOSTADDRESS$
}
Remember the name check_sip, we will use this name later to configure the service.
Add asterisk/freeswitch host to monitor.
cd /usr/local/nagios/etc/objects/hosts/linuxservers
Linux servers is the directory I created, you can name it anything you want.
vi asteriskservers.cfg
define host{
use production-host
host_name ast1
alias Asterisk_server1
address 192.168.1.20
}
cd /usr/local/nagios/etc/objects/services/linuxservices
vi sip-services.cfg
define service{
use production-master-service
host_name ast1
service_description SIP_Service_Check
check_command check_sip!sip:102
}
Here is my production-master-service template.
From file /usr/local/nagios/etc/objects/template.cfg
define service{
name production-master-service
is_volatile 0
initial_state o
max_check_attempts 2
check_interval 3
retry_interval 1
active_checks_enabled 1
passive_checks_enabled 1
check_period 24×7
obsess_over_service 0
check_freshness 0
freshness_threshold 30
event_handler process-service-perfdata
event_handler_enabled 1
flap_detection_enabled 0
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
notification_interval 3
first_notification_delay 0
notification_period 24×7
notification_options w,u,c,r,s
notifications_enabled 1
contact_groups on-call
contacts nagios-warnings
notes $SERVICECHECKCOMMAND$
register 0
}
102 can be anything that your asterisk/freeswitch can respond to. Username or DID Number. Reload Nagios and have happy sleep. Nagios will wake you up before your customers. Send emails to a special email address where you add a filter on your phone to make some sound.