Helion OpenStack Monasca Integrazione SMTP

2016-03-24

Helion OpenStack Monasca Integrazione SMTP

Machine-translated — the English original is authoritative.

Recentemente ho ricevuto la richiesta di configurare l'integrazione SMTP con Monasca come parte dell'installazione. Avendo già configurato le impostazioni del server SMTP nel file cloudConfig.yml durante la fase di creazione del modello, si sarebbe dovuto trattare di un semplice caso di configurazione dei dettagli di notifica nella Console di Operations o tramite la CLI di Monasca. Tuttavia, questo non ha funzionato, quindi ecco i passaggi che ho seguito per eseguire il debug dell'integrazione SMTP:

Verifica della comunicazione con il server SMTP

Da ciascuno dei controller, esegui un semplice test email tramite curl per assicurarti che i controller possano comunicare con il server email come segue:

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"

[Nota: Assicurati di modificare il server SMTP e l'IP in base alle tue esigenze]

Se questo fallisce, il problema esiste tra i nodi controller e il server SMTP: verifica che i dettagli SMTP siano corretti, che non ci siano firewall che bloccano le porte, ecc. Contatta l'amministratore SMTP se stanno scartando le email, ecc.

TCPDUMP e NETCAT (nc) sono utilità molto utili per verificare questa connettività fondamentale. Il post precedente qui e ovunque su internet ne spiega l'uso se necessario.

Utilizza un server SMTP temporaneo 'pop-up'

Se non disponi di un server SMTP o desideri escludere il tuo server SMTP principale, puoi anche seguire questi passaggi per configurare rapidamente un server SMTP di test: vedrai dalle porte non standard che ho usato sopra che è esattamente ciò che ho fatto inizialmente.

In realtà ho posizionato il mio server SMTP pop-up sul nodo di deploy [in uno scenario di laboratorio – non farlo in produzione] quindi ho dovuto aprire una porta sul firewall del piano di controllo per consentire a questo server di ascoltare sulla porta 3050 come segue:

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

Quindi ho aperto un intervallo di porte qui perché ho altri piani, ma potresti semplicemente aprire la singola porta richiesta.

Una volta apportate queste modifiche al file del modello cloud del firewall, è il solito processo HLM

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

Ora copia il seguente file sul nodo di deploy e salvalo come smtp.py. Sostituisci l'indirizzo IP del server e la porta che desideri utilizzare nel file.

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()

Apri una sessione screen (potrebbe essere necessario eseguire sudo apt-get install screen)
ed esegui lo script come segue:

screen -h 10000
sudo python smtp.py

Ora hai il tuo server SMTP personale per testare l'integrazione.

Con SMTP tutto verificato, ora dobbiamo configurare Monasca.

Configurazione di Monasca

Accedi alla Helion Ops Console come utente amministratore della cloud

Login

Seleziona l'opzione Metodi di notificazione dal menu 'hamburger' nell'angolo in alto a sinistra dello schermo.

menu

Inserisci l'indirizzo email a cui desideri ricevere le email creando una nuova voce email.

createNewNotif

Ora creiamo un allarme di test per vedere se stiamo ricevendo traffico SMTP.

Crea un allarme di test

Torniamo al nostro menu 'hamburger' e questa volta seleziona Creazione allarme e crea un nuovo allarme come segue: vogliamo allarmi falsi qui, quindi userò cpu.idle come metrica e imposterò valori assurdi –

TestAlarm Crea nuova definizione di allarme

Inizialmente potrebbero apparire 2 Allarmi Sconosciuti poiché questa è la prima volta che questo allarme viene eseguito e non ha uno stato precedente. Tuttavia, sii paziente, tra qualche minuto dovresti vedere la dashboard illuminarsi come mostrato di seguito.

Alarm dashboard Attendi qualche minuto (5)

Ora puoi selezionare gli allarmi per maggiori dettagli.

Alarm List Guarda gli allarmi

Alarm detail Visualizza dettagli allarme

E naturalmente, quello per cui abbiamo tutti aspettato: avvisi email!!!

CaptureSMTPAlarm Verifica che SMTP abbia ricevuto l'ALLARME

[Note: Intoppi di troubleshooting]

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