Mitel Nagios Sys Admin

Monitor Mitel 3300 ICP with Nagios

I have a cluster of Mitel 3300 ICP PABX’s across several offices internationally and have been looking for a monitoring solution that can send alerts whenever an alarm is triggered on any one of the PABX controllers. Mitel already have a monitoring solution called Enterprise Manager, but this didn’t do what I wanted it to do. Enterprise Manager will send out emails based on certain policies and allow for issue escalation but its features are a little limited. I already have an extensive Nagios setup that will SMS and email for alerts, so I looked at integrating with this system.

I have developed a script that will check the Mitel system via SNMP to check the current alarm level, if there is an alarm it will then make another SNMP call to the alarm categories table and list the current list of alarms as part of the alert. The script requires the perl module Net::SNMP and can be downloaded from the download section at the bottom of this post.


Usage: ./ hostname [snmp community: Defaults to "public"]
            [snmp port: Defaults to "161"]

Check Command Definition:

define command{
        command_name    mitelalarm
        command_line    $USER1$/ $HOSTADDRESS$ $ARG1$

Service Template Definition:

define service {
        name mitelalarm
        use base
        check_command mitelalarm
        register 0

Service Definition (replace “public” with the SNMP Community set on your Mitel controller):

define service {
        use base
        service_description Mitel Alarm Check
        check_command mitelalarm!public
        host_name mitelcontroller1


I have also been working on Cacti graphs of the Bandwidth management details, more on that early next month :-).

8 replies on “Monitor Mitel 3300 ICP with Nagios”

Thanks for this. I oversee 4 Mitel sites on an MPLS network and would love to integrate a check through Nagios to tell me of alarms. I will implement this and see if I can get it to work.


Hi Jon,

Is there a step by step guide you have for setting this up in Nagios (Opsview)?

If you can help me in anyway it would be great!!


Hi John, great script! Has been working brilliantly… until we upgraded to MCD 4. the OID is ammended slightly.. so just looked at the SNMP response, and if it was a “No”.. then uses another OID as mitelAlarmCategories. Not sure what happens if we get an alarm with a “No” in it though!! Can you think of a neater way to do it? I’ve never worked with perl before!

if ($alarmState > 1) {
my $mitelAlarmCategories = '';
$result = $session->get_table($mitelAlarmCategories);
if ($result="*No") {
my $mitelAlarmCategories = '';
$result = $session->get_table($mitelAlarmCategories);

I’ve been asked if we can monitor a Mitel device through Nagios and was going to test this – however the download link does not appear to be working. Is it still available or are you no longer distributing this?


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.