This article will provide advanced troubleshooting tips to help resolve issues with the Email Alerting service. To follow this guide, you will need to have administrator privileges to MET/TEAM, and local administrator privileges on the application server where MET/TEAM is installed. You may also need sysadmin rights to the SQL instance where MET/TEAM's database is located.
If you are trying to set up Email Alerts for the first time, please see the Getting Started with Email Alerting article.
Identifying the Issue
- On the application server, click on the start button, search for "Local Services", and select the corresponding result.
met
- In the Services window, find the service titled "Fluke MET/TEAM Email Alerts Engine" and restart it.
- If the service fails to promptly start, then there is an issue with either the user account running the service or the database it is connecting to. Please see the sections of this article titled "Troubleshooting the User Account" and "Troubleshooting the Connection String".
Keys to the service starting:- The user account needs to be valid and configured with appropriate rights to the SQL instance and the MET/TEAM database
- The Connection String needs to have correct information for the SQL instance, database name and MET/TEAM web address.
- If the service starts successfully, then we need to look at the log file to identify exactly what the issue is. Proceed to the section titled "Troubleshooting Log File Errors".
- If the service fails to promptly start, then there is an issue with either the user account running the service or the database it is connecting to. Please see the sections of this article titled "Troubleshooting the User Account" and "Troubleshooting the Connection String".
Troubleshooting the User Account
- On the application server's Services screen, right-click on the Fluke MET/TEAM Email Alerts Engine and select Properties.
- Click on the Log On tab to see what user account is running the service.
- If Local System is running it, this account always has rights to run the service but you need to confirm the Local System has sufficient rights to the MET/TEAM database. At a minimum, db_datareader and db_datawriter roles to the MET/TEAM database are required.
The process varies slightly if the SQL instance is on the same computer as the MET/TEAM database of if they are on different computers.
Same Computer: In SQL server management Studio, look at Security and Logins and locate the "NT AUTHORITY\SYSTEM" login and ensure it has at least the minimum rights to MET/TEAM's database mentioned above.
Different Computers: In SQL sever management Studio, look at Security and Logins and locate the login with the MET/TEAM application server's name followed by a $ such as "Fluke_METTEAM$" as an example. Ensure the login has at least the minimum rights to MET/TEAM's database mentioned above. - If a custom account is running it, you need to first make sure that the entered password is correct. You should also verify that this account is a local administrator on the server, as that is required for the service to run properly. Lastly, use SQL server management studio to verify this account has at least the minimum rights to MET/TEAM's database mentioned above.
- If you are using a service account to run the MET/TEAM SQL Database, log into the MET/TEAM server with the service account to make sure the account is built by Windows properly. Then use SQL server management studio to verify this account has at least the minimum rights to MET/TEAM's database mentioned above.
- If Local System is running it, this account always has rights to run the service but you need to confirm the Local System has sufficient rights to the MET/TEAM database. At a minimum, db_datareader and db_datawriter roles to the MET/TEAM database are required.
Troubleshooting the Connection String
- On the application server, click on the Start button, search for "IIS", and select the corresponding result.
- In the Connections panel on the left-hand side, expand your server, then Sites, and then click on MET/TEAM.
- In the middle panel, double-click on Connection Strings.
- Double-click on the MetTrack_Dev connection string, and note the server name and database name in the custom string. We will now use this data to verify that the alerting engine is using these same settings in the Registry.
- On the application server, click on the Start button, search for "regedit", and select the corresponding result.
- In the registry go to the following key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EmailAlerts.
- Double-click on the ImagePath value.
- There is a section within the "Value data" field that contains the server and database information used by the alerting engine. Make sure that the data aligns with what was noted from IIS in step 4 of this section.
Troubleshooting Log File Errors
In METTEAM 3.0 and later, logs can be obtained through METTEAM:
- In METTEAM, go to Help-->About-->Click the Download Log Files button
- This will give you a ZIP file of all of the METTEAM related log files. The email alerting log is titled alerting-log.txt.
- If you only want the alerting-log.txt files, they are located on the server the email alerting service is running on at C:\ProgramData\Fluke\Logs.
In METTEAM 2.3.0 and earlier, the logs can be found on the server that is running the email alerting service by going through the following:
- To find the email alert log file, you need to go to the Temp directory of the user running the service. If you are unsure what user is running the service, follow the first two steps of the "Troubleshooting the User Account" section in this article.
- If the user is Local System, then the log is under C:\Windows\Temp\alerting-log.txt for METTEAM 2.3.0 and earlier or C:\ProgramData\Fluke\Logs in METTEAM 3.0.0 or higher.
- If the user is a custom account, then the log is under C:\Users\[USER]\AppData\Local\Temp\alerting-log.txt (where [USER] is the name of the user account running the service).
- Open the log file.
- The entries are sorted chronologically and contain a date stamp at the beginning of each entry. Scroll to the date and time where you expected an email to get sent to get an idea as to what happened.
The following is a non-exhaustive list of errors/issues and how to resolve them.
Could not find a part of the path
Error:
Void WinIOError(Int32, System.String) - Could not find a part of the path 'xxxxxxx'
or
Message: The network path was not found.
Solution: The MET/TEAM system defaults for the reporting directories are inaccurate. Log into MET/TEAM as an administrator and go to Configure -> System Defaults. Find the settings whose Property fields start with "Reporting - " and make sure that they point to your report directories.
The remote name could not be resolved
Error:
Unable to send the email. Aborting...
Exception: Failure sending mail.
Stack: at System.Net.Mail.SmtpClient.Send(MailMessage message)
at MetTeam.AlertEngine.Helpers.Emailer.SendEmail(String to, String from, String title, String message, String host, Int32 port, String username, String password, Boolean useSsl, List`1 attachments, String globalCC, String globalBCC)
Inner Exception: The remote name could not be resolved: 'xxxxxxxx'
Stack: at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6)
at System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback)
at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
Solution: The SMTP email server name was entered incorrectly in MET/TEAM.
For all versions of MET/TEAM you will first log in as a user belonging to either the Administrator or Configuration security groups. Then, depending on your version, do the following:
In METTEAM 3.0 and later, click Configure -> Alert Engine Configuration. When the page opens locate the "SMTP Host Name" entry near the bottom of the page and make sure you entered the correct name.
In METTEAM 2.3.0 and earlier, click Configure -> System Defaults. Find the "Alerts.Smtp.Host" system default and make sure you entered the correct name.
Unable to connect to the remote server
Error:
Unable to send the email. Aborting...
Exception: Failure sending mail.
Stack: at System.Net.Mail.SmtpClient.Send(MailMessage message)
at MetTeam.AlertEngine.Helpers.Emailer.SendEmail(String to, String from, String title, String message, String host, Int32 port, String username, String password, Boolean useSsl, List`1 attachments, String globalCC, String globalBCC)
Inner Exception: Unable to connect to the remote server
Stack: at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6)
at System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback)
at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
Solution: This error means one of two things: either the port number was entered incorrectly, or the provided user credentials is wrong.
For all versions of MET/TEAM you will first log in as a user belonging to either the Administrator or Configuration security groups. Then, depending on your version, do the following:
In METTEAM 3.0 and later, click Configure -> Alert Engine Configuration. When the page opens locate and verify the values in "Port", "Email User Name", and "Email Password".
Note that most internal servers use a port number of 25 and utilize anonymous authentication (meaning no Email User Name and Email Password are necessary so, leave those values empty).
In METTEAM 2.3.0 and earlier, click Configure -> System Defaults. The settings you want to verify are "Alerts.Smtp.Port", "Alerts.Smtp.User", and "Alerts.Smtp.Password".
Note that most internal servers use a port number of 25 and utilize anonymous authentication (meaning no username and password are necessary and the respective system defaults should be inactivated).
Server does not support secure connections
Error:
Unable to send the email. Aborting...
Exception: Server does not support secure connections.
Stack: at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at MetTeam.AlertEngine.Helpers.Emailer.SendEmail(String to, String from, String title, String message, String host, Int32 port, String username, String password, Boolean useSsl, List`1 attachments, String globalCC, String globalBCC)
Solution: The use of SSL should be disabled.
For all versions of MET/TEAM you will first log in as a user belonging to either the Administrator or Configuration security groups. Then, depending on your version, do the following:
In METTEAM 3.0 and later, click Configure -> Alert Engine Configuration. When the page opens locate the "Use SSL" check box on the bottom right of the page and un-check it.
In METTEAM 2.3.0 and earlier, click Configure -> System Defaults. Find the setting called "Alerts.Smtp.UseSSL" and inactivate the record.
Pending Alerts: 0
Issue:
Pending Alerts: 0
Solution: The alerting engine is connected to a MET/TEAM database, but has found that no emails are scheduled to be sent. Verify that the alert you set up was actually scheduled to send out an email at that time (keeping in mind that the setup of that screen operates on a 24 hour clock). If you have a QA MET/TEAM server, make sure the alerting engine is not pointing to that QA database.
Issue:
Exception: Failure sending mail.
Stack: at System.Net.Mail.SmtpClient.Send(MailMessage message)
at MetTeam.AlertEngine.Helpers.Emailer.SendEmail(String to, String from, String title, String message, String host, Int32 port, String username, String password, Boolean useSsl, String fromName, List`1 attachments, String globalCC, String globalBCC)
Inner Exception: Unable to read data from the transport connection: net_io_connectionclosed.
Solution: Port 465 may be blocked by a firewall because it is reserved for SSL. Try port 587 which uses TLS.
Error:
Failed to execute data check. Does it exist?
Exception: Unable to connect to the remote server
The symptom is that the alert works, however the data check does not run, and since data checks typically manage the recipient list, the list does not get updated.
Solution: The alerting engine is not configured with the current address for the MET/TEAM website.
This requires the registry entry on the server hosting MET/TEAM website to be updated so follow steps 5, 6 and 7 in the "Troubleshooting the Connection String" section earlier in this article.
With the "ImagePath" entry open, copy the existing value somewhere so that it can be saved ‘just in case’ it needs to be rolled back. I suggest using notepad to save it as a .txt file.
There is a section within the "Value data" of the ImagePath that contains the MET/TEAM URL. Update the URL part to match the current address for MET/TEAM, paying particular attention to HTTP or HTTPS and the port being used.
NOTE: HTTPS typically uses port 443, instead of the MET/TEAM default value of 35853.
Once the ImagePath entry is updated, click [OK] to save the updated “ImagePath” value.
Now you need to restart the “Fluke MET/TEAM Email Alerts Engine” service on the server. For more info regarding "Services", see the "Identifying the Issue" section at the beginning of this article.
Once the “Fluke MET/TEAM Email Alerts Engine” service has been restarted, retest and verify that the Alerting engine should call the data check using the corrected path and all should work correctly.
