Observability
April 1
Мониторим ресурсы Linux
#!/bin/bash CPU_THRESHOLD=80 MEMORY_THRESHOLD=80 DISK_THRESHOLD=80 while true; do cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}') cpu_usage=${cpu_usage%.*} if ((cpu_usage >= CPU_THRESHOLD)); then send_alert "CPU" "$cpu_usage" fi memory_usage=$(free | awk '/Mem/ {printf("%3.1f", ($3/$2) * 100)}') memory_usage=${memory_usage%.*} if ((memory_usage >= MEMORY_THRESHOLD)); then send_alert "Memory" "$memory_usage" fi disk_usage=$(df -h / | awk '/\// {print $(NF-1)}') disk_usage=${disk_usage%?} if ((disk_usage >= DISK_THRESHOLD)); then send_alert "Disk" "$disk_usage" fi clear echo "Resource Usage:" echo "CPU: $cpu_usage%" echo "Memory: $memory_usage%" echo "Disk: $disk_usage%" sleep 2 done
Устанавливаются лимиты, при которых скрипт будет сигналить о достижении критических показателей. Далее запускается бесконечный цикл. В нем посредством стандартных утилит Linux парсится информация по работе процессора, оперативной памяти и занимаемой памяти на жестком диске. В случае достижения критических значений отображается алерт.
Сам запуск утилит происходит с паузой в 2 секунды.
Скрипт можно использовать для модификации и собирать информацию из других источников. Для этого помимо прочего необходимо исправить названия колонок в местах, где происходит парсинг.