Helion OpenStack Monasca Integrazione SMTP
2016-03-24
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

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

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

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 –
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.
Attendi qualche minuto (5)
Ora puoi selezionare gli allarmi per maggiori dettagli.
Guarda gli allarmi
Visualizza dettagli allarme
E naturalmente, quello per cui abbiamo tutti aspettato: avvisi email!!!
Verifica che SMTP abbia ricevuto l'ALLARME
[Note: Intoppi di troubleshooting]
- Se non vedi ancora alcun traffico E il tuo file /var/log/monasca/notification/notification.log è vuoto, prova a riconfigurare monasca
cd ~/scratch/ansible/next/hos/ansible
ansible-playbook -i hosts/verb_hosts monasca-reconfigure.yml
- Se hai riutilizzato l'email predefinita e i file di registro si lamentano di un indirizzo 'email da' non valido o il server SMTP richiede un mittente specifico, modifica il mittente predefinito impostato in /home/stack/helion/hos/ansible/roles/monasca-notification/defaults/main.yml. Assicurati di eseguire il ciclo completo git commit…monasca-reconfigure identificato sopra

- Quando riconfiguri le definizioni di allarme esistenti, assicurati di selezionare ENTRAMBI la casella di controllo delle notifiche E i singoli metodi di notifica richiesti.

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