Helion OpenStack Monasca SMTP-Integration
2016-03-24
Machine-translated — the English original is authoritative.
Letztens erhielt ich die Anfrage, die SMTP-Integration mit Monasca im Rahmen der Installation zu konfigurieren. Da ich die SMTP-Servereinstellungen in der Datei cloudConfig.yml bereits während der Modellierungsphase konfiguriert hatte, sollte es eigentlich ein einfaches Spiel sein, die Benachrichtigungsdetails in der Operations Console oder über die Monasca CLI zu konfigurieren. Das funktionierte jedoch nicht, daher sind hier die Schritte, die ich zur Fehlersuche der SMTP-Integration unternommen habe:
SMTP-Server-Kommunikation überprüfen
Führen Sie von jedem der Controller aus einen einfachen Curl-E-Mail-Test durch, um sicherzustellen, dass die Controller mit dem E-Mail-Server kommunizieren können, wie folgt:
echo "Hello Helion OpenStack World" > mail.txt
curl --url "smtp://172.16.60.9:3050" --mail-from "graham@allthingscloud.eu" --mail-rcpt "ops@alert.com" --upload-file mail.txt --user "graham@allthingscloud.eu:password"
[Hinweis: Stellen Sie sicher, dass Sie den SMTP-Server und die IP-Adresse an Ihre Anforderungen anpassen]
Wenn dies fehlschlägt, liegt das Problem zwischen den Controller-Knoten und dem SMTP-Server – überprüfen Sie, ob die SMTP-Details korrekt sind, keine Firewalls die Ports blockieren usw. Fragen Sie den SMTP-Administrator, ob er die Mails verwirft usw.
TCPDUMP und NETCAT (nc) sind sehr nützliche Dienstprogramme, um diese grundlegende Konnektivität zu überprüfen. Mein vorheriger Beitrag hier und überall im Internet erklärt deren Verwendung, falls erforderlich.
Verwenden Sie einen temporären ‘Pop-up’-SMTP-Server
Wenn Sie keinen SMTP-Server haben oder ausschließen möchten, dass Ihr Haupt-SMTP-Server das Problem ist, können Sie auch diese Schritte befolgen, um schnell einen Test-SMTP-Server einzurichten – wie Sie an den nicht standardmäßigen Ports sehen, die ich oben verwendet habe, habe ich dies zunächst getan.
Ich habe meinen Pop-up-SMTP-Server tatsächlich auf dem Deployer-Knoten platziert [in einem Laborszenario – tun Sie dies nicht in der Produktion], daher musste ich einen Port in der Control-Plane-Firewall öffnen, damit dieser Server auf Port 3050 lauschen kann, wie folgt:
vi /home/stack/helion/my_cloud/definition/data/firewall_rules.yml
.
.
.
.
- name: TestWebHook
network-groups:
- MANAGEMENT
rules:
- type: allow
remote-ip-prefix: 0.0.0.0/0
port-range-min: 3000
port-range-max: 3100
protocol: tcp
Ich habe hier einen Bereich von Ports geöffnet, da ich andere Pläne habe, aber Sie könnten einfach den einzelnen erforderlichen Port öffnen.
Sobald Sie diese Änderungen an der Firewall-Cloud-Modell-Datei vorgenommen haben, ist es der übliche HLM-Prozess
cd ~/helion/hos/ansible
git add -A
git commit -m "firewall rule update"
cd ~/helion/hos/ansible
ansible-playbook -i hosts/localhost config-processor-run.yml
cd ~/helion/hos/ansible
ansible-playbook -i hosts/localhost ready-deployment.yml
cd ~/scratch/ansible/next/hos/ansible
ansible-playbook -i hosts/verb_hosts osconfig-iptables-deploy.yml
Kopieren Sie nun die folgende Datei auf den Deployer-Knoten und speichern Sie sie als smtp.py. Ersetzen Sie die IP-Adresse des Servers und den Port, den Sie in der Datei verwenden möchten.
import smtpd
import asyncore
class CustomSMTPServer(smtpd.SMTPServer):
def process_message(self, peer, mailfrom, rcpttos, data):
print 'Receiving message from:', peer
print 'Message addressed from:', mailfrom
print 'Message addressed to :', rcpttos
print 'Message length :', len(data)
print 'Message :', data
return
server = CustomSMTPServer(('172.16.60.9', 3050), None)
asyncore.loop()
Öffnen Sie eine Screen-Sitzung (Sie müssen möglicherweise sudo apt-get install screen ausführen)
und führen Sie das Skript wie folgt aus:
screen -h 10000
sudo python smtp.py
Nun haben Sie Ihren eigenen SMTP-Server, um die Integration damit zu testen.
Da SMTP nun verifiziert ist, müssen wir Monasca konfigurieren.
Monasca-Konfiguration
Melden Sie sich als Cloud-Admin-Benutzer in der Helion Ops Console an.

Wählen Sie die Option „Notification Methods“ (Benachrichtigungsmethoden) aus dem „Hamburger“-Menü in der oberen linken Ecke des Bildschirms.

Geben Sie die E-Mail-Adresse ein, an die Sie die E-Mails senden möchten, indem Sie einen neuen E-Mail-Eintrag erstellen.

Lassen Sie uns nun eine Testbenachrichtigung erstellen, um zu sehen, ob wir SMTP-Verkehr erhalten.
Erstellen Sie einen Test-Alarm
Zurück zu unserem „Hamburger“-Menü und wählen Sie diesmal „Alarm Creation“ (Alarmerstellung) und erstellen Sie einen neuen Alarm wie folgt – wir wollen hier falsche Alarme – also verwende ich cpu.idle als Metrik und stelle alberne Werte ein –
Neue Alarmdefinition erstellen
Anfangs können 2 unbekannte Alarme erscheinen, da dies das erste Mal ist, dass dieser Alarm ausgeführt wird und er keinen vorherigen Zustand hat. Seien Sie jedoch geduldig, in ein paar weiteren Minuten sollten Sie sehen, wie sich das Dashboard wie unten gezeigt aufleuchtet.
Warten Sie ein paar Minuten (5)
Sie können nun die Alarme für weitere Details auswählen.
Schauen Sie sich die Alarme an
Alarmdetails anzeigen
Und natürlich, worauf wir alle gewartet haben – E-Mail-Benachrichtigungen!!!
Überprüfen Sie, ob SMTP den ALARM erhalten hat
[Hinweise: Fehlerbehebungsfallen]
- Wenn Sie immer noch keinen Verkehr sehen UND Ihre Datei /var/log/monasca/notification/notification.log leer ist, versuchen Sie, Monasca neu zu konfigurieren.
cd ~/scratch/ansible/next/hos/ansible
ansible-playbook -i hosts/verb_hosts monasca-reconfigure.yml
- Wenn Sie die Standard-E-Mail wiederverwendet haben und die Protokolldateien sich über eine ungültige „E-Mail von“-Adresse beschweren oder der SMTP-Server einen bestimmten Absender erfordert, ändern Sie den Standardabsender, der in /home/stack/helion/hos/ansible/roles/monasca-notification/defaults/main.yml festgelegt ist. Stellen Sie sicher, dass Sie den vollständigen git commit…monasca-reconfigure-Zyklus durchführen, wie oben identifiziert.

- Stellen Sie bei der Neukonfiguration vorhandener Alarmdefinitionen sicher, dass Sie SOWOHL das Benachrichtigungs-Kontrollkästchen ALS AUCH die erforderlichen einzelnen Benachrichtigungsmethoden auswählen.

Originally published on allthingscloud.eu (2016-03-24).