Panorama PON Alarm Monitor Utility
Introduction
This AppNote explains how to utilize the Tellabs Alarm Monitor utility to monitor incoming alarms and send an eMail alert for incoming alarms.
Document Number
ENG-010558
Applies To
This AppNote may be applied to any installation of Panorama PON 30.1 and above. As of SR30.1 this tool is fully integrated into the EMS release and is installed on all systems.
This feature is available on releases FP27.1 and above as a standalone tool.
Integrated Alarm Monitor Instructions
Prior to use, the Alarm Monitor needs to be installed.
To enable the Alarm Monitor, perform the following steps;

1) Open a Windows cmd shell with Elevated Privileges (i.e. as Administrator)
2) Cd %EMS_HOME%/AlarmMonitor/utils
3) Execute install.bat.
An example of the installation is below:

Integrated Alarm Monitor allows the user to set up rules for emailing specific users on the occurrence of specific alarms within the system. Alarms can be filtered by specific alarm types and each type can be sent to a specific user.
The Alarm monitor utility is configured from the EMS Menus from the Edit->Alarm Notification menu item.

The user will then be prompted to configure the alarming utility with the following screen. If the Alarm monitor was not installed, you may see this prompt:

If so, use the installation procedure detailed at the beginning of this section.

The current list of Alarm Rules will be shown at the top.
A new rule for emailing of alarms can be added using the New button at the bottom of the dialog.

The following attributes need to be set in the newly created rule for proper operation of the tool:
- Configuration Data Label – Descriptive Name for the Email Rule
- SMTP Configuration – Sets up the configuration for how to generate and send the emails.
- Sender – The name that will be placed as the sender of the email.
- Recipient – The person or persons to whom to send the email when criteria are matched.

Note: Multiple recipients can be added using a comma-separated list. (spaces not required)
- Subject Line – Subject line of the generated email.
- Server – The SMTP address of the mail server to use to send the email.
- Username – The username of the user being used to send the email.
- Password – The password used to log into the account on the email server.
- Port – Standard smtp port typically. Should not need to change in most instances.
- OLT IP Address – The address of the OLTs to be scanned for email messages. The * can be used to indicate all IP addresses. You can monitor all OLTs or pick specific ones and send messages from specific OLTs to specific people.
- Pattern – For each OLT IP address in the list, a separate matching pattern can be specified to match against the alarm text. If there is a pattern match, the message will be sent.

Ensure that you press Apply to Save the rule(s) to the database and activate the rule. You can then use Close to Exit the dialog box.
After that point, you will begin receiving alarms from the EMS based on your filter criteria.
Test Filter Criteria
It is recommended that the user go to a command prompt and enter:
C:\Tellabs\PanoramaPON\bbmgr\AlarmMonitor>TestSmtpConfig.bat

It will test the sending of that specific rule using the data entered for that rule. It is a good idea to test each rule as you enter it to ensure it is correct. Below is an example of the test sent by the ONT Comm Failure Alarm.

After that point, you will begin receiving alarms from the EMS based on your filter criteria.

It will also inform you of the matching criteria that was used.
Standalone Alarm Monitor Instructions (Releases Prior to 30.1)
This section should ONLY be used if using a release prior to 30.1!
Installing the Standalone Alarm Monitor for releases prior to PON EMS 30.1
This section will give a brief overview of the steps needed to Install the Panorama PON Alarm Monitor.
- Ensure that Panorama PON has been installed.
- Ensure that the required environmental variable (EMS_HOME) has been defined.
- Obtain/Identify a valid SMTP server name, SMTP port, username and password to configure the Alarm Monitor.
- Identify the email recipient of the alarms that will be monitored by the Alarm Monitor.
- Identify Network Elements and Alarm types that need to be monitored.
- Obtain and stage the Alarm Monitor software.
- Create the Alarm Monitor Configuration File.
Required Environmental Variable
The standard Windows Panorama PON should automatically define EMS_HOME at installation time. The EMS_HOME variable defines the base directory for the Tellabs software. If it does not, an example of setting the required variable on the Windows Operating System is given below:
set EMS_HOME=c:/Tellabs/PanoramaPON/bbmgr
An example of setting the required environmental variable on the Solaris Operating System is given below:
export EMS_HOME=/opt/tellabs/panoramapon/bbmgr
Failure to define this variable will result in the utility to fail to launch as it is used to locate the EMS alarm.log that is used for monitoring.
SMTP Prerequisites
The Alarm Monitor utilizes a secure/TLS SMTP client and will only connect to a secure SMTP server using TLS. Because of this, a valid SMTP username, password, port and server are required for its configuration. The Alarm Monitor also supports the use of a failover SMTP server in case notifications via the primary server have failed.
Staging the Alarm Monitor Software
Obtain the latest version of the Alarm Monitor Software (currently AlarmMonitorV2.2). There are two versions of the latest software targeted for either the Windows or Solaris platforms. Once the software has been obtained and extracted, the contents will look similar to the following:
$ pwd
/opt/afc/user/emsadmin/AlarmMonitorV2.2/AlarmMonitor
$ ls
AlarmMonitor.ksh jars SmtpAlarmLogData.xml jre
The contents consist of the utility launcher (AlarmMonitor.ksh for Solaris or AlarmMonitor.bat for Windows), the required utility jar files (in the jars' folder), the java jre, and a template/sample configuration xml file.
The syntax for launching the Alarm Monitor is as follows:
AlarmMonitor -f <configuration_xml> -l <smtp_log>
Both of the arguments above are required. The configuration_xml consists of the XML file that defines the SMTP configuration as well as the alarms that will trigger notifications. The smtp_log is a file that the Alarm Monitor will use to log all SMTP protocol interactions.
The utility does not re-launch if the system is rebooted or terminates unexpectedly. The operator is responsible for setting up the corresponding automated execution (for example, after a re-boot if such behavior is required). See Appendix A for a solution using the Solaris crontab utility. See Appendix B for a solution using Windows services.
Configuring the Alarm Monitor
The configuration of the utility is performed via an XML file (i.e. configuration_xml; see the utility syntax above). The Alarm Monitor allows the specification of a failover/backup SMTP server. The failover SMTP server will only attempt to send e-mail notifications that the primary SMTP server has failed to send due to SMTP errors.
The configuration XML file has the following elements defined:
freq-delay-msec = The number of milli-seconds to pause between analyzing the alarm.log for changes. Recommended that a minimum of 10000 (ten seconds) for the delay between monitor passes.
monitor-data-name = The alarm monitor instance name. There can be multiple instances defined.
smtp-data = The SMTP server data associated with the monitor defined above.
smtp-data-failover = This element is optional. The Backup SMTP server data associated with the monitor defined above.
sender = The e-mail address that will be used to identify the sender.
recipient = The e-mail address where alarm notifications will be sent.
subject = The string that will appear on the subject line of the e-mail notifications.
server = The SMTP server name. The server name must be reachable and resolve to a valid IP address.
port = The port number of the SMTP server. Typically, 587 for secure SMTP servers.
username = The username that will be used to login to the SMTP server.
password = The password of the username that will be used to login to the SMTP server.
ip-monitored = The ip attribute defines the ip address of the OLT being monitored. There can be multiple definitions.
alm = The alarm pattern to trigger notification. Patterns should be defined using standard regular expression syntax.
An example configuration XML file is given below. (Comments are in red);
<alarm-monitors>
<freq-delay-msec>20000</freq-delay-msec>
<monitor-data name="GMAIL-SMTP-TO-TELLABS">
<smtp-data>
<sender>tellabs.access@gmail.com</sender>
<recipient>david.morales@tellabs.com</recipient>
<subject>Alarms from TELLABS</subject>
<server>smtp.gmail.com</server>
<port>587</port>
<username>tellabs.access@gmail.com</username>
<password>mypassword</password>
</smtp-data>
<!-- The failover/backup SMTP server definition is optional -->
<smtp-data-failover>
<sender>tellabstoolsadmin@tellabs.com</sender>
<recipient>david.morales@tellabs.com</recipient>
<subject>Backup SMTP Sending Alarms from TELLABS</subject>
<server>smtp12.sherwebcloud.com</server>
<port>587</port>
<username>tellabstoolsadmin@tellabs.com</username>
<password>mypassword</password>
</smtp-data-failover>
<ip-monitored ip="(172.28.128.91|172.28.128.92)">
<!-- All alarms on OLTs above will trigger an e-mail notification. -->
<pattern>
<alm>.*</alm>
</pattern>
</ip-monitored>
<ip-monitored ip="172.28.125.87">
<!-- Alarms on this OLT containing COMM or Pwr trigger a notification. -->
<pattern>
<alm>.*COMM.*</alm>
<alm>.*Pwr.*</alm>
</pattern>
</ip-monitored>
<ip-monitored ip="172.28.122.100">
<pattern>
<alm>.*COMM.*MDS1-3-2.*</alm>
</pattern>
</ip-monitored>
<ip-monitored ip=".*">
<!-- All alarms containing the (sub)string egrade will trigger notification. -->
<pattern>
<alm>.*egrade.*</alm>
</pattern>
</ip-monitored>
</monitor-data>
</alarm-monitors>
Initialization Behavior
Upon startup, the utility will send test e-mails using all configured primary and failover SMTP servers. Failure to receive all the test e-mails indicates that the SMTP configuration is incorrectly configured, and the Alarm Monitor will not function as specified or has stopped functioning.
Another feature of system initialization is the encryption of all defined SMTP passwords. The Alarm Monitor will analyze the passwords defined (using the password element above) in the configuration xml and encrypt them using AES. The un-encrypted (plaintext) password elements are deleted from the configuration xml and replaced with their encrypted counterpart elements (enc-passwd) as follows;
<smtp-data>
<sender>tellabs.access@gmail.com</sender>
<recipient>david.morales@tellabs.com</recipient>
<subject>Alarms from TELLABS</subject>
<server>smtp.gmail.com</server>
<port>587</port>
<username>tellabs.access@gmail.com</username>
<enc-passwd>vj21RPRYxXyHKCFwAmhbAA==</enc-passwd>
</smtp-data>
Appendix A Solaris startup automation instructions
The Solaris crontab utility can be used to automatically start the Alarm Monitor in the event that it stops executing (because of a system restart or unexpected termination). Such a solution involves the introduction of a shell script that is executed at specific intervals (scheduled via cron). When executed, the shell script can start the Alarm Monitor Utility if it determines that it is not running. An example of such a script is given below[1];
----------------------------------Snip---Start---SmtpAlarmMonitorStarter.sh----------------
#!/bin/bash
# replace with your EMS_HOME
export EMS_HOME=/opt/tellabs/panoramapon/bbmgr
function startAlarmMonitor()
{
# Replace with your own AlarmMonitor folder
cd /opt/afc/user/emsadmin/AlarmMonitorV2.2/AlarmMonitor
# Replace with your xml_config file and smpt_log file
nohup ./AlarmMonitor.ksh -f SmtpAlarmLogData.xml -l alarmMonitor.log &
}
function checkIfMonitorIsRunning()
{
ps -eaf | grep AlarmMonitor.ksh | grep -v grep > /dev/null
return $?
}
#Check if the alarm monitor is still running
checkIfMonitorIsRunning
if [ $? -ne 0 ]; then
echo "AlarmMonitor.ksh is not running"
#Start the alarmMonitor again
startAlarmMonitor
else
echo "AlarmMonitor.ksh is already running"
fi
----------------------------------Snip---End---SmtpAlarmMonitorStarter.sh------------------
The Solaris crontab utility can be used to schedule the SmtpAlarmMonitorStarter.sh script above to execute at specified time intervals. Solaris crontab entries (are defined per user and) can be edited by using the crontab -e command. This allows the operator to create (or append to) the operator’s/user’s current crontab list. An example of a crontab entry to call the SmtpAlarmMonitorStarter.sh script every 2 minutes is given below;
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,49,50,52,54,56,58 * * * * /opt/dmorales/AlarmMonitorCronLaunch/SmtpAlarmMonitorStarter.sh
Appendix B Windows startup automation
The Alarm Monitor Service (PanoramaAlarmMonitor) must be installed in order to detect the operational state programmatically if using the Windows Operating System[2]. To install the Alarm Monitor as a Windows Service, perform the following steps:
- Open a Windows CMD shell with elevated privileges (i.e. right click and run as administrator).
- Locate the utils sub-folder where the Alarm Monitor software was staged/deployed.
- Ex. C:/AlarmMonitor/win/AlarmMonitor/utils
- Cd to the utils folder.
- cd C:/AlarmMonitor/win/AlarmMonitor/utils
- Execute the install.bat script.
- The required parameters are identical to those required for AlarmMonitor.bat.
- Ex. install.bat -f C:/AlarmMonitor/win/AlarmMonitor/SmtpAlarmLogData.xml -l C:/AlarmMonitor/win/AlarmMonitor/almMonitorLog.log
- You will be given the option to start the service after it has been installed.
- An example of the install.bat command output is given below:
- The required parameters are identical to those required for AlarmMonitor.bat.
XML CONFIG: c:/AlarmMonitor/win/AlarmMonitor/SmtpAlarmLogData.xml
SMTP LOG: c:/AlarmMonitor/win/AlarmMonitor/almMonitorLog.log
MONITOR HOME: C:/AlarmMonitor/win/AlarmMonitor
YAJSW: yajsw-alpha-12.00
OS : Windows 7/6.1/x86
JVM : Oracle Corporation/1.7.0_76/C:/AlarmMonitor/win/AlarmMonitor/jre/32
Sep 01, 2016 3:18:36 PM org.apache.commons.vfs2.VfsLog info
INFO: Using "C:/Users/dmorales/AppData/Local/Temp/vfs_cache" as temporary files store.
Sep 01, 2016 3:18:36 PM org.rzo.yajsw.wrapper.WrappedService jvmOptions
INFO: Windows & JVM7: Setting -Djava.net.preferIPv4Stack=true (see java bug 7179799 )
************* INSTALLING PanoramaAlarmMonitor ***********************
service cmd: C:/AlarmMonitor/win/AlarmMonitor/jre/bin/java.exe -classpath C:/AlarmMonitor/win/AlarmMonitor/utils/wrapper.jar -Xrs -Dwrapper.service=true -Dwrapper.working.dir=C:/AlarmMonitor/win/AlarmMonitor -Djava.net.p
referIPv4Stack=true -Dwrapper.config=C:/AlarmMonitor/win/AlarmMonitor/utils/AlarmMonitor.conf -Dwrapper.additional.1x=-Xrs -Djna_tmpdir=C:/AlarmMonitor/win/AlarmMonitor/utils/?unresolved? org.rzo.yajsw.boot.WrapperServic
eBooter
Service PanoramaAlarmMonitor installed
Would you like to start the Alarm Monitor?[Yes]: yes
Starting Alarm Monitor
YAJSW: yajsw-alpha-12.00
OS : Windows 7/6.1/x86
JVM : Oracle Corporation/1.7.0_76/C:/AlarmMonitor/win/AlarmMonitor/jre/32
Sep 01, 2016 3:18:46 PM org.apache.commons.vfs2.VfsLog info
INFO: Using "C:/Users/dmorales/AppData/Local/Temp/vfs_cache" as temporary files store.
Sep 01, 2016 3:18:46 PM org.rzo.yajsw.wrapper.WrappedService jvmOptions
INFO: Windows & JVM7: Setting -Djava.net.preferIPv4Stack=true (see java bug 7179799 )
************* STARTING PanoramaAlarmMonitor ***********************
Service PanoramaAlarmMonitor started
- The uninstall.bat script (in the utils folder) can be used to remove/uninstall the Alarm Monitor Service.
- An example of the uninstall.bat command output is given below:
Uninstalling the Alarm Monitor
YAJSW: yajsw-alpha-12.00
OS : Windows 7/6.1/x86
JVM : Oracle Corporation/1.7.0_76/C:/AlarmMonitor/win/AlarmMonitor/jre/32
Sep 01, 2016 3:30:35 PM org.apache.commons.vfs2.VfsLog info
INFO: Using "C:/Users/dmorales/AppData/Local/Temp/vfs_cache" as temporary files store.
Sep 01, 2016 3:30:36 PM org.rzo.yajsw.wrapper.WrappedService jvmOptions
INFO: Windows & JVM7: Setting -Djava.net.preferIPv4Stack=true (see java bug 7179799 )
************* STOPPING PanoramaAlarmMonitor ***********************
Service PanoramaAlarmMonitor stopped
YAJSW: yajsw-alpha-12.00
OS : Windows 7/6.1/x86
JVM : Oracle Corporation/1.7.0_76/C:/AlarmMonitor/win/AlarmMonitor/jre/32
Sep 01, 2016 3:30:36 PM org.apache.commons.vfs2.VfsLog info
INFO: Using "C:/Users/dmorales/AppData/Local/Temp/vfs_cache" as temporary files store.
Sep 01, 2016 3:30:36 PM org.rzo.yajsw.wrapper.WrappedService jvmOptions
INFO: Windows & JVM7: Setting -Djava.net.preferIPv4Stack=true (see java bug 7179799 )
************* REMOVING PanoramaAlarmMonitor ***********************
Service PanoramaAlarmMonitor removed
Using The Windows Task Scheduler
Once the Service has been created/installed and the operator has verified that it is functioning as expected (by starting and stopping the service using the Windows Services utility), the operator can use the Windows Task Scheduler to schedule a task (similar to the one created for Solaris using crontab) to periodically check the status of the Alarm Monitor Service.
The checkService.bat script is made available in the Alarm Monitor utils sub-folder. It checks the state of the Alarm Monitor Service (PanoramaAlarmMonitor) and starts it if it’s in the STOPPED state. You can verify that it functions accordingly by stopping the PanoramaAlarmMonitor service manually (using the Windows Services Application), executing checkService.bat (from a command shell with elevated privileges), and verifying that the service is re-started.
Once the functionality has been verified, the checkService.bat can be incorporated into a Windows scheduled task as follows:
- Bring up the Windows Task Scheduler

- Right Click on Task Scheduler Library (on the Task Navigation Tree on the left) and select New Folder.

- When prompted for the folder name, enter Alarm Monitor.
- Once the Alarm Monitor folder is created. Right click on the (Alarm Monitor) folder and select Create Task.

- Configure the General tab entries as follows;

- Verify that the Author has permission to start and stop Windows Services.
- Select the Triggers tab and click on New-

- The New Trigger dialog appears. Configure the Triggers tab entries as follows (to run every 5 minutes indefinitely);

- Select OK to continue.
- Select the Actions tab and click on New-

- The New Action dialog appears. Configure the New Action entries as follows (to execute the checkService.bat script);

- Using the Browse button (above), navigate to the checkService.bat script and select OK to continue.
- Select OK to continue the task creation.

- Enter your Windows credentials (User name and Password).

- Click OK to finish the Task creation.
[1] Note (the comments in red above) that the shell script will need to be modified based on the Alarm Monitor staging/home folder.
[2] It’s highly recommended that you first run the Alarm Monitor manually, using the AlarmMonitor.bat command, to verify that everything is functioning as expected prior to setting up the Alarm Monitor as a service.
On this page
- Introduction
- Integrated Alarm Monitor Instructions
- Test Filter Criteria
- Standalone Alarm Monitor Instructions (Releases Prior to 30.1)
- Installing the Standalone Alarm Monitor for releases prior to PON EMS 30.1
- Required Environmental Variable
- SMTP Prerequisites
- Staging the Alarm Monitor Software
- Configuring the Alarm Monitor
- Initialization Behavior
- Appendix A Solaris startup automation instructions
- Appendix B Windows startup automation
- Using The Windows Task Scheduler