In einer Ubiquiti UniFi-WLAN-Umgebung gab es Schwierigkeiten mit dem Netz und man wunderte sich, das die Benachrichtigungs-Mails ausblieben.
Seinerzeit bei der Einrichtung hatte alles funktioniert, die Software (inkl. der Firmware auf den APs) ist aktuell. Beim Versuch eine Test-Mail zu versenden erschien nur kurz eine Info, das es einen Fehler gegeben hat, leider ohne weitere Infos. Im Mailserver-Log war noch nicht mal ein Zustellversuch protokolliert. Bei Betrachtung des Netzwerkverkehrs mit SmartSniff konnte festgestellt werden, das der Controller noch nicht mal versucht eine Verbindung zum Mailserver aufzubauen. Im Log des Controllers fand sich folgendes:
Hier klicken um das Log anzuzeigen
[2020-06-10T10:56:11,664] WARN sanitize - Invalid key exists in Setting payload, key=analytics_disapproved_for [2020-06-10T10:56:13,760] ERROR [ApiServlet] - Servlet.service() for servlet [ApiServlet] in context with path [] threw exception [Servlet execution threw an exception] with root cause java.lang.ClassNotFoundException: javax.activation.DataSource at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) ~[?:?] at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?] at com.ubnt.service.b.ooOo.super(Unknown Source) ~[ace.jar:?] at com.ubnt.ace.api.L.o00000(Unknown Source) ~[ace.jar:?] at com.ubnt.ace.api.ApiServlet.service(Unknown Source) ~[ace.jar:?] at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.34.jar:8.5.34] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at com.ubnt.ace.view.AuthFilter.doFilter(Unknown Source) ~[ace.jar:?] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) [tomcat-embed-core-8.5.34.jar:8.5.34] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.34.jar:8.5.34] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.34.jar:8.5.34] at java.lang.Thread.run(Thread.java:835) [?:?]
Es musste also etwas mit der Java-Umgebung nicht stimmen. Nach einem Blick mit dem Process Explorer war klar woran es hapert:
Auf dem System war noch ein Java SE 12 installiert, damit ist der Ubiquiti UniFi Network Controller nicht kompatibel, dieser benötigt Java SE oder Java JRE in der Version 8. Eine passende JRE war auch installiert, wurde allerdings nicht verwendet.
Nachdem abgeklärt war, das Java SE nicht mehr benötigt ist, wurde dieses kurzerhand deinstalliert und siehe da, der Controller kann wieder mailen.
Update 03.12.2021
Es kann ein Dauerbrenner sein, das die Benachrichtigung per E-Mail nicht funktioniert. Damit es grundsätzlich überhaupt funktionieren kann müssen mehrere Punkte konfiguriert bzw. aktiviert sein:
- Beim jeweiligen Benutzer bzw. Admin muss eine E-Mail-Adresse hinterlegt sein:
Rechts oben auf den Benutzernamen klicken und “Profil bearbeiten” auswählen. - Unter “Einstellungen – Site/Standort” muss der Haken gesetzt sein bei “Alarm E-Mail aktivieren”.
- Unter “Einstellungen – Notifications” (zu finden im “New User Interface”) müssen Benachrichtigungen generell aktiviert und ggf. via “Custom” wie gewünscht eingestellt werden.
- Last but not least muss unter “Einstellungen – Controller” im Abschnitt “E-Mail-Server” entweder “Cloud E-Mail” aktiviert sein oder manuell ein eigener E-Mail-Server eingetragen werden.
Zu diesem Zeitpunkt macht es einem Ubiquiti durch die Umstellung der GUI nicht unbedingt einfach. Teilweise muss man immer mal wieder zwischen der alten und neuen Oberfläche umschalten, um den einen oder anderen Dialog zu finden.
Troubleshooting bei STARTTLS
Bei der Verwendung von SSL bzw. STARTTLS, selbst wenn man SSL explizit nicht aktiviert hat, kommt es bei E-Mail-Servern mit nicht öffentlichem vertrauenswürdigem Zertifikat zu einem Fehler und die Nachricht kann nicht versendet werden. An dieser Stelle gibt es zwei Möglichkeiten:
STARTTLS im Controller deaktivieren
Die Datei “system.properties” editieren und
smtp.checkserveridentity=false
einfügen bzw. entsprechend abändern.
Ausnahme im E-Mail-Server erstellen
Am Beispiel vom MDaemon Email Server kann man unter
Sicherheit - Sicherheits-Manager - SSL & TLS
bei
Weiße Liste für STARTTLS
Hosts und IPs eintragen, die von STARTTLS ausgenommen sind.
Quellen
UI – Community – Own mail server certificate | Controller 6.1.x | starttls mail problem
UI – Community – Controller 6.1.x email notification settings | alert type | where?
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Schreibe einen Kommentar