Helion OpenStack Monasca SMTP-Integration

2016-03-24

Helion OpenStack Monasca SMTP-Integration

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.

Login

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

menu

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

createNewNotif

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 –

TestAlarm 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.

Alarm dashboard Warten Sie ein paar Minuten (5)

Sie können nun die Alarme für weitere Details auswählen.

Alarm List Schauen Sie sich die Alarme an

Alarm detail Alarmdetails anzeigen

Und natürlich, worauf wir alle gewartet haben – E-Mail-Benachrichtigungen!!!

CaptureSMTPAlarm Überprüfen Sie, ob SMTP den ALARM erhalten hat

[Hinweise: Fehlerbehebungsfallen]

cd ~/scratch/ansible/next/hos/ansible
ansible-playbook -i hosts/verb_hosts monasca-reconfigure.yml

fromEmail

Notification Selection

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

← All posts