Multiple Asterisk Server Monitoring

I’m looking through the internet for monitoring solutions tailored to (or having plugins for) monitoring Asterisk servers. I have 15 or so servers all on the same network at different locations around my town.

I’d like to do the following for sure.

  1. Monitor physical box to make sure it’s powered up and talking with the net.
  2. Monitor PRI circuits
  3. Monitor Asterisk and dahdi services to make sure they are up
  4. Monitor IAX trunks between these boxes
  5. optional - Monitor queues based on time-of-day and alert if no members during business hours
  6. optional - query astdb for certain keys to make sure they are set. I’ve had important things be wiped out with a reboot!

Anyone have any ideas where to start? Nagios seems to have some plugins but most say they are for older versions of Asterisk (maybe this doesn’t matter). I just don’t want to chose one and realize there’s huge community support and ongoing dev for another.

Yeah go Icinga or Nagios.

For what it’s worth I wound up going with Zabbix in the end. You can add "UserParameter"s for just about anything you can get from the linux CLI.

For instance:
UserParameter=active.calls,sudo asterisk -rx ‘core show calls’ | grep ‘active call*’ | awk ‘{print $1}’

That will give you something you can graph against in Zabbix

This one I use to alert if a PRI goes down:
UserParameter=pri.spans,sudo asterisk -rx ‘pri show spans’ | grep Up | wc -l

Basically whatever you can think up you can use pipes and such to massage the data you need into something you can compare against in zabbix.

I put these at the end of the /etc/zabbix/zabbix_agentd.conf on the machine being monitored. Then reference those items like pri.spans or active.calls in your “items” menu under each host (or on a template) inside the Zabbix server.