Monitorer ses Raspberry PI

Les Raspberry Pi sont des mini-ordinateurs polyvalents qui trouvent leur place dans divers projets, des serveurs aux systèmes embarqués en passant par l'apprentissage de la programmation. Cependant, il n'est pas toujours évident de savoir quels aspects surveiller pour garantir leur bon fonctionnement et leur sécurité.
Découvrir le cas en détails

Il existe des dizaines d'outils pour moinitorer votre raspberry pi dont le très connu prometeus ou zabbix et le notre évidement :p.

Mais parfois un petit scrip bash peut faire l'affaire. Voici le script qu'on vous propose :

1/ Le script


#!/bin/bash

# Surveillance de la température de cpu
temperature=$(vcgencmd measure_temp | awk -F"=" '{print $2}')
cpu_temp=$(echo $temperature | sed 's/[^0-9.]//g')

# Surveillance de l'utilisation du processeur et de la mémoire
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
memory_usage=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2}')

# Surveillance de l'espace de stockage
disk_usage=$(df -h / | awk '/\//{print $5}')

# Surveillance des connexions réseau
network_connections=$(netstat -tuln | awk 'NR>2{print $6}' | sort | uniq -c | awk '{print $2":"$1}')

# Derniers logins des utilisateurs
last_logins=$(last -n 5)

# Récupération des événements du journal système des 10 dernières minutes
recent_events=$(journalctl --since "10 minutes ago" --no-pager -p err..emerg)

# Vérification des mises à jour de sécurité en attente
security_updates=$(apt list --upgradable 2>/dev/null | grep -i security)

# log concatenation
json_output='{
  "temperature": "'$cpu_temp'",
  "cpu_usage": "'$cpu_usage'",
  "memory_usage": "'$memory_usage'",
  "disk_usage": "'$disk_usage'",
  "network_connections": "'$network_connections'",
  "recent_events": "'$recent_events'",
  "last_logins": "'$last_logins'",
  "security_updates": "'$security_updates'"
}'

# Stockage du log
echo $json_output > monitoring.json

echo "Anallyse terminée."


 

Ce que ça fait :

  1. Surveillance de la température :
    Le script utilise la commande vcgencmd measure_temp pour obtenir la température actuelle de la CPU de la Raspberry Pi.
    La température est extraite du résultat et stockée dans la variable cpu_temp.
  2. Surveillance de l'utilisation du processeur et de la mémoire :
    La commande top -bn1 est utilisée pour obtenir des informations sur l'utilisation actuelle du processeur et de la mémoire.
    Les pourcentages d'utilisation du CPU et de la mémoire sont extraits à l'aide de commandes grep et awk, puis stockés dans les variables cpu_usage et memory_usage.
  3. Surveillance de l'espace de stockage :
    La commande df -h / est utilisée pour obtenir des informations sur l'utilisation de l'espace de stockage du système de fichiers racine.
    Le pourcentage d'utilisation de l'espace est extrait du résultat et stocké dans la variable disk_usage
  4. Surveillance des connexions réseau :
    La commande netstat -tuln est utilisée pour obtenir la liste des connexions réseau actives.
    Les types de connexions et leurs nombres sont extraits à l'aide de commandes awk et uniq, puis stockés dans la variable network_connections.
  5. Récupération des événements du journal système :
    La commande journalctl est utilisée pour extraire les événements du journal système survenus au cours des 10 dernières minutes avec un niveau de gravité de "erreur" (err) à "urgence" (emerg).
    Les événements sont stockés dans la variable recent_events.
  6. Récupération des derniers logins des utilisateurs :
    La commande last -n 5 est utilisée pour obtenir les cinq derniers logins des utilisateurs.
    Les informations de login sont stockées dans la variable last_logins.
  7. Vérification des mises à jour de sécurité en attente :
    La commande apt list --upgradable est utilisée pour vérifier les mises à jour disponibles.
    La liste des mises à jour potentielles est filtrée pour identifier celles qui sont liées à la sécurité, puis stockée dans la variable security_updates.

En somme, surveiller et maintenir efficacement une Raspberry Pi peut être simplifié grâce à un script shell personnalisé qui collecte et organise des données clés. De la température du processeur à l'utilisation de la mémoire et des connexions réseau, ce script offre un aperçu instantané de la santé et de la sécurité de votre système. Peu importe que vous utilisiez un Raspberry Pi 3, un Raspberry Pi 4 ou même les modèles plus récents comme le Raspberry Pi 400 ou le Raspberry Pi Pico, ce script personnalisé devrait fonctionner sans problème. Mais n'hésitez pas à le personnaliser pour répondre au mieux à votre usage.

2/ En bonus pousser les log de votre raspberry pi sur BAG·Tower :

1. Modifiez le script



# Envoie du log sur BAG·Tower
API_KEY='YOUR_API_KEY'
curl -s -X POST "https://api.bagtower.bag-era.fr/v2/logs" -H "Content-Type: application/json" -H "x-api-key: $API_KEY" -d $json_output)
 

La clé API peut se trouver directement dans la page dédié de l'assset

Où trouver la clès API.

2. Rajouter un cron pour pousser automatiquement les informations

  1. Ouvrez une fenêtre de terminal sur votre Raspberry Pi ou via ssh
  2. Tapez la commande suivante pour éditer la table de planification des tâches de l'utilisateur courant :

crontab -e
 
  1. Ajoutez la ligne suivante à la fin du fichier pour exécuter votre script toutes les 10 minutes :

*/10 * * * * /usr/bin/sh /chemin/vers/le/fichier/my_script.sh
 

Assurez-vous de remplacer /chemin/vers/le/fichier par le chemin complet vers le répertoire où se trouve votre fichier my_script.sh.

  1. Enregistrez et fermez le fichier. (ctrl + wq pour vim et xtrl + x sur nano)

Cela configurera le planificateur de tâches "cron" pour exécuter votre script toutes les 10 minutes. Assurez-vous que le fichier my_script.sh est exécutable (chmod +x my_script.sh) pour que "cron" puisse le lancer.

Envie de vous simplifier la vie ?

August 30, 2023

En explorant des solutions modernes telles que BAG·Tower, vous pouvez approfondir la surveillance et la gestion de vos appareils Raspberry Pi. En définitive, optimisez vos projets numériques avec un simple script qui s'occupe du monitoring pour vous.

Autres articles qui pourraient vous intéreser :

Prêt à faire évoluer la surveillance et la prévention de vos équipements ?

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
logo Bag-Tower

Intéressé(e) ?

Avant toute ouverture de compte nous validons que BAG·Tower peut répondre à vos besoin.
Et pour ça nous avons besoin de vos coordonnées :) N'hésitez pas à nous poser toutes vos questions !
Pour répondre à toutes vos questions, nous avons besoin de vos coordonnées :)
Utilisez une adresse email professionnelle
Si vous avez déjà un compte c'est →ici←
*Champs obligatoires
Thank you!
Your submission has been received!
Oops! Something went wrong while submitting the form.
logo Bag-Tower

Envie de tout savoir
sur ce cas ?

Quel retour sur investissement ?
Quels délais de mise en place ?
Quels capteurs et quelles mesures ?
*Champs obligatoires.
Thank you!
Your submission has been received!
Oops! Something went wrong while submitting the form.
logo Bag-Tower

Essayer BAG·Tower

Vous n'êtes qu'à une étape de découvrir ce que notre outil peut faire pour vous !
Si vous avez déjà un compte c'est →ici←.
*Champs nécessaires pour la création de votre compte BAG·Tower.
Thank you!
Your submission has been received!
Oops! Something went wrong while submitting the form.