Helion OpenStack Monasca Intégration SMTP

2016-03-24

Helion OpenStack Monasca Intégration SMTP

Machine-translated — the English original is authoritative.

Récemment, j’ai reçu une demande pour configurer l’intégration SMTP avec Monasca dans le cadre de l’installation. Ayant déjà configuré les paramètres du serveur SMTP dans le fichier cloudConfig.yml lors de la phase de construction du modèle, il aurait dû s’agir d’un simple cas de configuration des détails de notification dans la Console d’Opérations ou via la CLI Monasca. Cela n’a cependant pas fonctionné, voici donc les étapes que j’ai suivies pour déboguer l’intégration SMTP :

Vérifier la communication avec le serveur SMTP

Depuis chacun des contrôleurs, exécutez un test d’email curl simple pour vous assurer que les contrôleurs peuvent communiquer avec le serveur email comme suit :

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"

[Note : Assurez-vous de modifier le serveur SMTP et l’IP pour correspondre à vos besoins]

Si cela échoue, le problème se situe entre les nœuds contrôleurs et le serveur SMTP – vérifiez que les détails SMTP sont corrects, qu’aucun pare-feu ne bloque les ports, etc. Vérifiez avec l’administrateur SMTP s’ils rejettent les emails, etc.

TCPDUMP et NETCAT (nc) sont des utilitaires très utiles pour vérifier cette connectivité fondamentale. L’article précédent ici et partout sur l’internet explique leur utilisation si nécessaire.

Utiliser un serveur SMTP temporaire ‘pop-up’

Si vous n’avez pas de serveur SMTP ou si vous souhaitez écarter la possibilité que votre serveur SMTP principal soit en cause, vous pouvez également suivre ces étapes pour configurer rapidement un serveur SMTP de test – vous verrez, à partir des ports non standard que j’ai utilisés ci-dessus, que c’est ce que j’ai fait initialement.

J’ai en fait installé mon serveur SMTP pop-up sur le nœud de déploiement [dans un scénario de laboratoire – ne faites pas cela en production] j’ai donc dû ouvrir un port sur le pare-feu du plan de contrôle pour permettre à ce serveur d’écouter sur le port 3050 comme suit :

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

J’ai donc ouvert une plage de ports ici car j’ai d’autres projets, mais vous pourriez simplement ouvrir le port unique requis.

Une fois que vous avez apporté ces modifications au fichier de modèle cloud du pare-feu, c’est le processus HLM habituel

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

Maintenant, copiez le fichier suivant sur le nœud de déploiement et enregistrez-le sous smtp.py. Remplacez l’adresse IP du serveur et le port que vous souhaitez utiliser dans le fichier.

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

Ouvrez une session screen (vous devrez peut-être exécuter sudo apt-get install screen)
et exécutez le script comme suit :

screen -h 10000
sudo python smtp.py

Maintenant, vous disposez de votre propre serveur SMTP pour tester l’intégration.

Avec SMTP tout vérifié, nous devons maintenant configurer Monasca.

Configuration de Monasca

Connectez-vous à la Console d’Opérations Helion en tant qu’utilisateur administrateur de cloud

Login

Sélectionnez l’option Méthodes de notification dans le menu ‘hamburger’ en haut à gauche de l’écran.

menu

Saisissez l’adresse email à laquelle vous souhaitez recevoir les emails en créant une nouvelle entrée email.

createNewNotif

Créons maintenant une alerte de test pour voir si nous recevons du trafic SMTP.

Créer une alarme de test

Retour à notre menu ‘hamburger’ et cette fois sélectionnez Création d’alarme et créez une nouvelle alarme comme suit – nous voulons des fausses alertes ici – donc j’utiliserai cpu.idle comme métrique et définirai des valeurs absurdes –

TestAlarm Créer une nouvelle définition d’alarme

Initialement, 2 Alarmes Inconnues peuvent apparaître car c’est la première fois que cette alarme s’exécute et qu’elle n’a pas d’état précédent. Cependant, soyez patient, dans quelques minutes vous devriez voir le tableau de bord s’illuminer comme indiqué ci-dessous.

Alarm dashboard Attendez quelques minutes (5)

Vous pouvez maintenant sélectionner les alarmes pour plus de détails.

Alarm List Regardez les alarmes

Alarm detail Voir les détails de l’alarme

Et bien sûr, ce pour quoi nous avons tous attendu – des alertes par email !!!

CaptureSMTPAlarm Vérifiez que SMTP a reçu l’ALERTE

[Notes : Pièges de dépannage]

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