Table des matières:
- Étape 1: Connectez-vous à votre compte AWS
- Étape 2: Premiers pas avec les « choses » d'AWS IOT
- Étape 3: enregistrement d'un "truc" AWS IOT
- Étape 4: Activation d'un certificat
- Étape 5: Ajout d'une stratégie à votre certificat
- Étape 6: Configuration initiale pour le sujet AWS SNS
- Étape 7: Création du fichier Iot-role.trust.json
- Étape 8: Création du fichier Iot-policy.json
- Étape 9: créer une rubrique AWS SNS (partie 1)
- Étape 10: créer une rubrique AWS SNS (partie 2)
- Étape 11: créer une rubrique AWS SNS (partie 3)
- Étape 12: créer un compartiment sur Amazon S3
- Étape 13: générer une stratégie AWS (partie 1)
- Étape 14: générer une stratégie AWS (partie 2)
- Étape 15: Création de tables pour DynamoDB
- Étape 16: Roomstatus.py
- Étape 17: Rfid.py
- Étape 18: Server.py
- Étape 19: Telegram.py
- Étape 20: diffusion en direct (camera_pi.py)
Vidéo: Seroma : Gestionnaire de salle de serveurs : 20 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Seroma est un gestionnaire de salle de serveurs tout-en-un qui permet aux utilisateurs de vérifier l'état des serveurs (température et humidité), les journaux d'accès de la salle des serveurs, ainsi que de surveiller la salle des serveurs elle-même pour détecter toute faille de sécurité.
Étape 1: Connectez-vous à votre compte AWS
- Pour le nôtre, nous nous sommes connectés via la passerelle AWS education student car nous avons un compte étudiant aws.
- Rendez-vous sur l'onglet « Compte AWS » dans le menu de navigation en haut à droite.
- Cliquez sur « Accéder à votre compte AWS Educate Starter »
- Ouvrez la console pour accéder à votre AWS Management Console.
Étape 2: Premiers pas avec les « choses » d'AWS IOT
- Recherchez « AWS IoT » dans la barre de recherche des services AWS.
- Cliquez sur « Commencer » pour accéder au tableau de bord de la console AWS IoT où vous pouvez afficher tous les appareils IoT enregistrés dans votre compte AWS.
Étape 3: enregistrement d'un "truc" AWS IOT
- Dans la barre de navigation, naviguez pour gérer vos « objets » IoT.
- Cliquez sur « Enregistrer une chose » si vous n'avez pas encore de chose. (Si vous avez déjà quelque chose, cliquez sur le bouton "Créer" en haut à droite de l'écran à côté de l'onglet de recherche.)
- Cliquez sur le premier bouton intitulé « Créer une seule chose ».
- Tapez "RaspberryPi" comme nom de la chose. Pour cette étape, aucune saisie autre que le « Nom » n'est requise. Après cela, cliquez sur suivant.
Étape 4: Activation d'un certificat
- À l'étape suivante, cliquez sur le bouton « créer un certificat ».
- Téléchargez et stockez les 4 liens de téléchargement de la page suivante dans un répertoire ou un dossier de travail. Pour enregistrer le fichier CA racine, faites un clic droit et enregistrez sous.
- Cliquez sur « Activer » et un message de réussite devrait apparaître.
- Utilisez des noms conviviaux pour les fichiers en supprimant les numéros devant chaque nom de fichier et en renommant le fichier CA racine en « rootca.pem ».
- Cliquez sur « Joindre une politique » pour continuer.
Étape 5: Ajout d'une stratégie à votre certificat
- Sur la page suivante, si vous n'avez pas de politique, ils vous inviteront à en créer une sur le bouton « Créer une politique ».
- Si vous avez déjà une politique existante, cliquez sur le bouton « Créer une nouvelle politique » ci-dessous.
-
Insérez les informations suivantes dans le formulaire de création de stratégie.
Nom: RaspberryPiSecurityPolicy
Action: iot:*
ARN de la ressource: *
Effet: Autoriser
- Votre politique devrait alors apparaître dans l'onglet « Politique » sous « Sécurité ».
- Ensuite, allez dans l'onglet « Certificats » qui se trouve également sous « Sécurité » et attachez votre politique au certificat que vous avez créé précédemment.
- Sur la page suivante, cliquez sur votre politique, puis sur « Joindre ».
- Dans la page Détails de la chose que vous avez créée, sous l'onglet "Interagir", il y a un point de terminaison d'API REST qui doit être copié et enregistré.
- AWS devrait maintenant avoir une chose qui est attachée à une stratégie et a un certificat.
Étape 6: Configuration initiale pour le sujet AWS SNS
Connectez-vous en SSH à Raspberry Pi et installez l'AWS CLI à l'aide de la commande pip suivante:
sudo pip installer awscli
L'AWS CLI inclut la fonction d'achèvement de commande mais elle n'est pas installée par défaut. Utilisez la commande suivante pour installer la fonction d'achèvement de commande sur l'interface CLI de Raspberry Pi:
terminer -C aws_completer aws
Configurez l'AWS CLI avec l'ID de clé d'accès, la clé d'accès secrète, le nom de la région AWS et le format de sortie de la commande à l'aide de la commande suivante:
aws configurer
La console vous demandera alors de renseigner les informations suivantes:
pi@raspberrypi:~ $ aws configure
ID de clé d'accès AWS [Aucun]: "Put your User's Access Key ID here" Clé d'accès secrète AWS [Aucun]: "Put your User's Secret Access Key here" Nom de la région par défaut [Aucun]: eu-central-1 Format de sortie par défaut [Aucun]: json pi@raspberrypi:~ $
Étape 7: Création du fichier Iot-role.trust.json
- Créez un fichier JSON avec la stratégie IAM ci-dessus avec le nom de fichier iot-role.trust.json.
- Créez le rôle à l'aide de l'AWS CLI à l'aide de la commande suivante
aws iam create-role --role-name my-iot-role --assume-role-policy-document file://iot-role-trust.json
Étape 8: Création du fichier Iot-policy.json
- Créez un fichier JSON avec la stratégie ci-dessus avec le nom de fichier iot-policy.json.
- Créez la stratégie de rôle à l'aide de l'AWS CLI à l'aide de la commande suivante:
aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file://iot-policy.json
Étape 9: créer une rubrique AWS SNS (partie 1)
- Dans la barre de recherche des services AWS, recherchez le service « SNS » ou dirigez-vous vers
- Comme vous n'avez aucun sujet maintenant, cliquez sur « Créer un nouveau sujet » pour créer un sujet.
- Tapez le nom de votre sujet et votre nom d'affichage et cliquez sur « Créer un sujet » et un nouveau sujet apparaîtra lorsque toutes les étapes sont réussies.
- Cliquez sur le bouton déroulant « Actions » et « Modifier la politique du sujet ».
Étape 10: créer une rubrique AWS SNS (partie 2)
- Définissez la stratégie pour permettre à tout le monde de publier et de s'abonner, car il s'agit des limitations d'un compte AWSEducate.
- Abonnez-vous à ce sujet pour recevoir les mises à jour publiées sur ce sujet.
-
Changez le protocole en "E-mail" et entrez votre e-mail au point final.
- Rendez-vous sur votre e-mail où vous avez tapé votre point de terminaison, cliquez sur le lien de confirmation pour confirmer votre abonnement par e-mail pour vous abonner au sujet.
- Accédez aux services « AWS IoT », dans le menu de navigation à gauche, cliquez sur « Agir ». Cette page est l'endroit où vos règles sont affichées et disponibles pour que vous puissiez les visualiser et les modifier. Actuellement, il n'y a pas de règles pour votre objet IoT, cliquez sur "Créer une règle".
Étape 11: créer une rubrique AWS SNS (partie 3)
- Saisissez un nom dans le champ Nom de votre règle. Dans le champ Description, saisissez une description pour votre règle. En continuant à la section Source du message, nous choisirions la version SQL la plus mise à jour dans la section "Utilisation de la version SQL". Tapez * dans l'attribut pour sélectionner l'intégralité du message MQTT du sujet, dans notre cas, notre sujet est « TempHumid ».
- Ajoutez ensuite une action de notification « SNS » pour votre règle. Ensuite, cliquez sur "Configurer l'action".
- Dans la page "Configurer l'action", choisissez le sujet SNS que vous venez de créer et le format du message en RAW. Après cela, choisissez le rôle que vous venez de créer à l'aide de l'AWS CLI et cliquez sur « Ajouter une action ».
- Votre action sera configurée et reviendra à « Créer une règle ».
- Cliquez sur modifier si vous souhaitez modifier la règle.
Étape 12: créer un compartiment sur Amazon S3
- Recherchez S3 dans la barre de recherche AWS.
- Dans la page Amazon S3, cliquez sur le bouton « Créer un seau » pour commencer.
-
Remplissez le formulaire contextuel qui apparaît avec les informations suivantes:
- Nom du compartiment: seroma-bucket (cela doit être unique dans tous les compartiments Amazon S3 existants)
- Région: Ouest des États-Unis (Oregon)
- Paramètres de copie: (Ignorer)
- Pour les étapes 2 à 3, ignorez-le simplement en cliquant sur « Suivant » car il n'y a rien à changer. À l'étape 4, cliquez sur « Créer un compartiment ».
- Après la création, vous devriez voir votre bucket sur la page d'accueil.
Étape 13: générer une stratégie AWS (partie 1)
- Cliquez sur le compartiment que vous avez créé pour accéder à la page ci-dessus, puis passez à « Politique du compartiment » sous l'onglet « Autorisations ».
- Ensuite, cliquez sur le lien « Policy Generator » en bas de la page pour générer votre stratégie AWS.
-
Dans le formulaire, saisissez les valeurs suivantes:
- Type de stratégie: stratégie de compartiment S3
- Effet: Autoriser
- Principal: *
- Service AWS: Amazon S3
- Actions: GetObject
- Nom de ressource Amazon (ARN): arn:aws:s3:::seroma-bucket
- Après avoir rempli les informations, cliquez sur Ajouter un relevé.
- Cliquez sur le bouton « Générer une politique ».
Étape 14: générer une stratégie AWS (partie 2)
- Copiez les codes générés et cliquez sur Fermer.
- Revenez à votre éditeur de stratégie de compartiment Amazon S3 et collez les codes précédemment copiés.
- Ajoutez un "/*" dans les codes juste derrière les codes de ressources, comme dans l'image ci-dessus, puis cliquez sur Enregistrer.
- Après cela, votre seau sera correctement configuré et prêt à l'emploi.
Étape 15: Création de tables pour DynamoDB
- Recherchez DynamoDB dans la barre de recherche des services AWS
-
Cliquez sur "Créer une table" et créez 3 tables avec les informations ci-dessous: (Seuls le "nom de la table" et la "clé primaire" sont modifiés)
- accesslog, pk datetimevalue
- roomstatus, pk datetimevalue
- données du personnel, nom d'utilisateur pk
Étape 16: Roomstatus.py
Cette section contient le code de roomstatus.py, qui écrit toutes les données concernant la salle des serveurs elle-même chaque minute. Cela inclut la température, l'humidité, les mouvements (images et vidéos si elles sont vraies) et les journaux d'accès. Il écrit également des données dans une feuille de calcul Google, des données dans DynamoDB, des images et des vidéos (le cas échéant) sur S3, affiche des informations sur l'écran LCD, envoie un SMS et un e-mail en cas de violation présumée ou lorsque la température ou l'humidité est irrégulière..
Pour exécuter des fichiers python, changez de répertoire où se trouve le fichier et tapez dans la console: " sudo python"
Image 2: Fonctions déclarées pour autoriser les alertes SMS et e-mail, et téléchargement vers S3
Pic 3: Variables déclarées pour que les fonctions et RPi fonctionnent
Image 4: Début de la boucle qui obtient les valeurs de température et d'humidité du RPi. Il écrit également les données dans une feuille de calcul Google
Image 5: Partie de sécurité de la boucle. Il ne s'activera que de 19h à 7h (heures creuses). Il vérifiera le mouvement en une minute. Si un mouvement est détecté, il prendra une image et une vidéo, les téléchargera sur S3, tout en écrivant des informations sur DynamoDB pour référence ultérieure. Ensuite, il enverra un SMS et un e-mail si quelque chose est irrégulier.
Image 6: La fin de la boucle. Il écrit également des données dans DynamoDB et envoie des alertes en conséquence. La dernière ligne de la boucle mettra le script en veille jusqu'à la prochaine minute.
Étape 17: Rfid.py
Cette section contient le code de rfid.py, qui ajoute la fonctionnalité permettant de suivre lorsqu'un membre du personnel accède à la salle des serveurs. Cela fait également partie de l'aspect sécurité de Seroma, où un membre du personnel n'est pas autorisé à accéder à la salle des serveurs après les heures de bureau, pour éviter une violation de données. Il envoie également un e-mail et des SMS à tout le personnel si une violation est suspectée.
Image 2: Début de la logique du lecteur RFID. Chaque fois qu'une carte est scannée contre le lecteur, l'identifiant unique (uid) de la carte est pris. Ensuite, nous essayons de trouver la valeur uid de la carte dans la table staffdata pour voir si la carte appartient à l'un des membres du personnel. Pic 3: Si l'uid de la carte existe dans la base de données, il vérifiera si c'est pendant le bureau heures creuses. Si c'est le cas, il alertera le reste des employés par SMS et par e-mail aux adresses e-mail souscrites. Si c'est encore pendant les heures de bureau, il écrira une ligne dans la table accesslog de la base de données avec les données pertinentes. Il affichera également un message de bienvenue sur l'écran LCD.
Étape 18: Server.py
Il s'agit du fichier server.py. Nous utiliserons le framework Flask pour le portail Web. Les fichiers HTML à mettre dans /templates sont également joints.
Image 1: Première route pour Flask définie. Il redirigera l'utilisateur vers la page de connexion s'il n'est pas connecté, et la page du tableau de bord s'il l'est. Définit également une fonction à utiliser dans la fonction de diffusion en direct
Pic 2, 3, 4: Routes pour Flask. Il récupère les données de la table DynamoDB, puis les renvoie aux fichiers HTML afin qu'elles puissent y être utilisées.
Photo 5: Les 2 dernières routes pour Flask. Il gère la fonction de déconnexion et la fonction de diffusion en direct. Il spécifie également le port sur lequel le site Web s'exécutera.
Étape 19: Telegram.py
Cette section comprend le code du télégramme bot de Seroma. Il utilise la bibliothèque de télépot pour exploiter l'API Bot de Telegram. Il fonctionne en acceptant les requêtes qu'il reçoit et en affichant les informations respectives à l'utilisateur. L'utilisateur peut taper « help » pour obtenir une liste complète des commandes.
Image 1, 2: Pour configurer un bot de télégramme, vous devez utiliser BotFather. Il suffit de parcourir les instructions pour obtenir l'API HTTP dont nous avons besoin dans notre code.
Image 4: Exemple d'une fonction qui prend un certain nombre de lignes de données de la base de données en fonction de la demande de l'utilisateur
Image 5: Comment nous prenons l'entrée de l'utilisateur et décidons quoi exécuter en conséquence.
Étape 20: diffusion en direct (camera_pi.py)
Nous avons mis en place une nouvelle fonctionnalité pour notre système de surveillance de la salle des serveurs, un flux en direct de ce qui se passe dans la salle des serveurs, accessible à tout moment, n'importe où. Comment fonctionne ce flux en direct: c'est une fonctionnalité qui est effectuée dans Flask, avec la caméra Pi. Les images vidéo sont téléchargées comme cela se passe dans la vie réelle, vous pouvez donc voir qu'il y a un léger retard (1 à 2 secondes) lorsque les images vidéo sont téléchargées et reconstituées. Cela ne pourrait pas être fait sans thread, car le thread d'arrière-plan lit les images de la caméra et stocke l'image actuelle. Rassembler toutes ces images produirait alors un flux en direct.
Image 2: Il s'agit d'un fichier séparé où toutes les images vidéo sont stockées et comme vous pouvez le voir, nous utilisons le module picamera pour accéder à notre caméra raspberry pi car c'est ce que nous connaissons le mieux. Nous avons une classe Camera afin que nous puissions importer la fonction comme s'il s'agissait d'un flux en direct et non de plusieurs images assemblées.
Image 3: Cela fait partie de notre fichier server.py où la partie du flux en direct est codée. La classe principale que nous avons importée pour cela est la caméra de notre fichier camera_pi.py en haut de notre fichier server.py. Nous avons défini une fonction dans notre répertoire racine, gen, mais elle n'est utilisée que lorsque nous nous dirigeons vers /video_feed où se trouve notre flux en direct, où il bouclera cette fonction et renverra le flux en direct sur la page Web.
Conseillé:
Gestionnaire de fenêtres intégré : 10 étapes
Gestionnaire de fenêtres intégré : ce projet montre comment implémenter un gestionnaire de fenêtres avec des fenêtres superposées mobiles sur un microcontrôleur intégré avec un panneau LCD et un écran tactile. Il existe des progiciels disponibles dans le commerce pour le faire, mais ils coûtent de l'argent et sont proches
SilverLight : moniteur environnemental basé sur Arduino pour les salles de serveurs : 3 étapes (avec images)
SilverLight : Moniteur environnemental basé sur Arduino pour les salles de serveurs : Une fois, on m'a confié la tâche de rechercher une sonde environnementale pour surveiller la température dans la salle des serveurs de mon entreprise. Ma première idée était : pourquoi ne pas simplement utiliser un Raspberry PI et un capteur DHT, il peut être configuré en moins d'une heure y compris l'OS
Script Service Monitor pour serveurs Linux : 4 étapes
Script Service Monitor pour serveurs Linux : Avoir un système stable et toujours en cours d'exécution, même si vous utilisez Linux, peut être une tâche difficile. En raison de la complexité des progiciels modernes et du mauvais codage, certains processus peuvent inévitablement se bloquer de temps en temps. Cela pourrait être une mauvaise chose si vous
Changez vos serveurs DNS en OpenDNS : 6 étapes
Changez vos serveurs DNS en OpenDNS : récemment, les serveurs AOL ont été un peu de mauvaise qualité et ne fonctionnaient pas correctement, ce qui signifie que certaines âmes malheureuses, comme moi, n'ont pas pu accéder à certains sites Web (principalement wiggle.co.uk). Le moyen de résoudre ce problème est de changer le DNS
Serveurs privés WoW : 3 étapes
Serveurs privés WoW : Cela vous montrera comment jouer à World of Warcraft sans payer !!! Il existe des serveurs qui vous donnent instantanément le niveau 80, des objets gratuits, etc. Il existe également des serveurs réguliers si vous voulez jouer pour de vrai. Remarque : vous devrez peut-être payer pour le jeu réel