13 scripts d’automatisation à savoir pour la surveillance et la journalisation DevOps

Introduction
La surveillance et la journalisation sont cruciales pour maintenir un système fiable. Si vous gérez infrastructure cloudmicroservices, serveurs ou pipelines CI / CD, les scripts d’automatisation offrent une base solide et jouent un rôle clé dans la prévention des problèmes de production en fin de soirée
Dans cet article, nous examinerons 13 scripts d’automatisation essentiels que chaque ingénieur DevOps devrait connaître. Ces scripts aideront à suivre les performances du système, à identifier les goulots d’étranglement et à rationaliser la gestion des journaux, ce qui rend votre flux de travail plus efficace.
Ce guide est parfait pour les débutants, mais les professionnels des DevOps expérimentés trouveront également des informations précieuses. Plongeons et découvrons comment ces scripts peuvent améliorer vos opérations avec des applications réelles!
Objectif
Ce blog fournira aux ingénieurs DevOps des scripts d’automatisation essentiels pour améliorer la fiabilité du système, la surveillance des performances et la gestion des journaux. Les équipes DevOps peuvent prévenir les problèmes critiques, réduire les efforts manuels et améliorer l’efficacité opérationnelle en automatisant les tâches clés.
Condition préalable
- Serveur Linux
- Familiarité avec les scripts Bash et Python.
1. Surveiller l’espace disque
La sortie de l’espace disque peut provoquer des accidents de base de données, des accidents d’application / serveur, des pipelines de construction échoués ou même une perte de données.
Solution: Un script bash vérifie l’utilisation du disque dans votre serveur et envoie une alerte si l’utilisation dépasse le seuil défini. Dans cet exemple de 80%.
Exemple de script:
#!/bin/bash THRESHOLD=80 df -h | awk '{if($5+0 > '$THRESHOLD') print $0}'
2. Surveiller l’utilisation du processeur
Une utilisation élevée du processeur peut indiquer que l’application ne s’adapte pas correctement ou qu’un processus de zombie monte des ressources.
Solution: Ce script Python utilise PSUtil pour surveiller les usages du processeur et envoie des alertes lorsqu’il dépasse un seuil.
Exemple de script:
import psutil import smtplib if psutil.cpu_percent(interval=1) > 80: print("High CPU Usage Alert!!")
3. Automatiser la rotation des journaux
Les gros journaux peuvent rapidement remplir le stockage et peuvent devenir ingérables. L’automatisation de la rotation des journaux aidera à les garder sous contrôle.
Solution: Un travail cron associé à ce script bash comprime et archive les anciens journaux, tout en conservant les récents.
Exemple de script:
#!/bin/bash LOG_DIR="/var/log/app/" tar -czf $LOG_DIR/archive_$(date +%F).tar.gz $LOG_DIR/*.log rm $LOG_DIR/*.log
4. Surveillance de la disponibilité du service
La détection immédiate des temps d’arrêt des services est cruciale pour maintenir la fiabilité des applications.
Solution: Un script Python pingre un point de terminaison de service et envoie des alertes s’il est inaccessible.
Exemple de script:
import requests try: response = requests.get("http://my-service-url.com") if response.status_code != 200: print("Service Down Alert!") except Exception as e: print("Service Unreachable!")
5. Surveiller l’utilisation de la mémoire
La mémoire du serveur faible peut entraîner des plantages d’applications et une perturbation des services.
Solution: Ce script vérifie l’utilisation de la mémoire et les alertes lorsque la mémoire disponible tombe sous un seuil spécifié. Dans cet exemple, 600 Mo.
Exemple de script:
#!/bin/bash THRESHOLD=600 # in MB AVAILABLE=$(free -m | awk '/Mem/ {print $7}') if [ $AVAILABLE -lt $THRESHOLD ]; then echo "Low Memory Alert!!" fi
6. Vérification de la santé du conteneur Docker
La santé des conteneurs est cruciale pour assurer le fonctionnement fluide des micro-services.
Solution: Ce script vérifie la santé des conteneurs Docker en cours d’exécution.
Exemple de script:
#!/bin/bash for container in $(docker ps --format "{{.Names}}"); do STATUS=$(docker inspect --format '{{.State.Health.Status}}' $container) echo "Container: $container - Status: $STATUS" done
7. Kubernetes Pod Surveillant
Les pods sont les plus petites unités déployables de Kubernetes. La surveillance de leur statut garantit que les applications se déroulent bien.
Solution: Ce script utilise des commandes kubectl pour vérifier les statuts de pod.
Exemple de script:
#!/bin/bash kubectl get pods --all-namespaces | grep -v 'Running'
8. Script d’analyse du journal des applications
L’analyse en rondins aide à détecter les problèmes cachés, mais le filtrage manuellement peut prendre du temps.
Solution: Un script bash filtre les journaux d’application pour les messages d’erreur ou les modèles spécifiques.
Exemple de script:
#!/bin/bash LOG_FILE="/var/log/app.log" grep -i "error" $LOG_FILE
9. Script de vérification de la disponibilité du site Web
Et si votre site Web se déconnecte, il est essentiel de détecter immédiatement la panne.
Solution: Un script Python vérifie si votre site Web est en place et vous avertit s’il est en panne.
Exemple de script:
import requests try: response = requests.get("http://myexample.com") print("Website is up!") if response.status_code == 200 else print("Website is down!") except: print("Website Unreachable!")
10. Script pour nettoyer les fichiers temporaires
Les fichiers temporaires peuvent encombrer le système de fichiers, conduisant à des problèmes d’espace disque dans le serveur. Le nettoyage des fichiers temporaires est une étape nécessaire.
Exemple de script:
import os import shutil import time TEMP_DIR = '/tmp' AGE_THRESHOLD = 7 * 24 * 60 * 60 # 7 days in seconds def clean_temp_files(): now = time.time() for filename in os.listdir(TEMP_DIR): file_path = os.path.join(TEMP_DIR, filename) if os.stat(file_path).st_mtime < now - AGE_THRESHOLD: if os.path.isfile(file_path) or os.path.islink(file_path): os.remove(file_path) print(f'Removed file: {file_path}') elif os.path.isdir(file_path): shutil.rmtree(file_path) print(f'Removed directory: {file_path}') if __name__ == "__main__": clean_temp_files()
11. Time de résolution DNS de suivi
La surveillance des vitesses de résolution DNS aide à dépanner les performances de l’application lente.
Exemple de script:
#!/bin/bash DNS_SERVER="8.8.8.8" DOMAIN="example.com" dig @$DNS_SERVER $DOMAIN +stats | grep "Query time"
12. Script automatisé de vérification de sauvegarde
Les sauvegardes doivent être vérifiées pour s’assurer qu’elles sont disponibles en cas de défaillance d’un système.
Exemple de script:
#!/bin/bash BACKUP_DIR="/backups" for file in $BACKUP_DIR/*.tar.gz; do if ! tar -tzf $file > /dev/null; then echo "Corrupted backup file: $file" fi done
13. script de surveillance des coûts du cloud AWS
La gestion des coûts du cloud garantit une allocation efficace des ressources et empêche les pointes de facturation inattendues.
Exemple de script:
#!/bin/bash THRESHOLD=10 # Set cost alert threshold LOG_FILE="/var/log/aws_cost.log" SLACK_WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXX" # Fetch today's AWS cost COST=$(aws ce get-cost-and-usage \ --time-period Start=$(date +%Y-%m-%d),End=$(date +%Y-%m-%d) \ --granularity DAILY \ --metrics "BlendedCost" \ --query 'ResultsByTime[0].Total.BlendedCost.Amount' \ --output text 2>/dev/null) # Ensure COST is not empty/null; if empty, set to zero COST=${COST:-0} # Validate COST as a numeric value if ! [[ "$COST" =~ ^[0-9]+(\.[0-9]+)?$ ]]; then echo "$(date): ERROR - AWS cost data is invalid: '$COST'" >> "$LOG_FILE" exit 2 fi # Log the cost echo "$(date): AWS Cost Today: $COST USD" >> "$LOG_FILE" # Function to send Slack notification send_slack_alert() { MESSAGE="🚨 *AWS Cost Alert!* 🚨\n\nToday's AWS cost: *\$${COST} USD* 💰\nThreshold: *\$${THRESHOLD} USD*\n\n🔍 Check AWS Cost Explorer for more details." PAYLOAD=$(jq -n --arg text "$MESSAGE" '{text: $text}') curl -X POST -H 'Content-type: application/json' \ --data "$PAYLOAD" "$SLACK_WEBHOOK_URL" } # Check if cost exceeds threshold using awk if awk "BEGIN {exit !($COST > $THRESHOLD)}"; then send_slack_alert fi
Conclusion
Ces scripts donneront certainement une base solide pour améliorer l’exploitation forestière et la surveillance de votre infrastructure. Comme il offre une solution pratique, ces scripts peuvent être modifiés davantage au besoin.
Pour plus de contenu DevOps et d’automatisation, abonnez-vous à nos blogs.
Vous avez trouvé cela utile? PARTAGEZ-LE
Source link