Image

Bilgi Veritabanı → Yüksek Yükten Kaçınmak İçin crontab Scripti Ayarlama

[Virtual sunucular]
Yayın tarihi: 27.01.2023

Koruma hizmetlerinin hiçbiri bir saldırıyı engelleyemediğinde veya sunucu başka bir sebepten dolayı yüksek yük altında çalışmaya başladığında, her dakika crontab servisi aracılığıyla çalıştırılacak bir script kurmanızı öneriyoruz. Bu, sunucuya erişimi kaybetmeden durumu kontrol altına almak için önlem almanıza yardımcı olur.

/etc/cron.daily/load-average-2.sh

#!/bin/bash

loadavg=`uptime | awk '{print $10+0}'`
# bash, ondalık sayıları anlamaz
# bu yüzden sayıyı tamsayıya dönüştürün
thisloadavg=`echo $loadavg|awk -F \. '{print $1}'`
if [ "$thisloadavg" -ge "2" ]; then
echo "Yoğun - Yük Ortalaması $loadavg ($thisloadavg) "
echo 'Uyarı - Yük ORT (my.server.tld) on:' `date` `uptime` | mailx -s "Uyarı: LA from `uptime | cut -d'(' -f2 | cut -d')' -f1`" -S smtp=smtp://mail.server.tld -S smtp-auth=login -S smtp-auth user=user@domain.tld -S smtp-auth-password=PassW0rd -S from="LLC COMPANY" to@domain.tld

else
echo "Tamam - Yük Ortalaması $loadavg ($thisloadavg) "
fi

Bu scripti /etc/cron.daily klasöründe load-average-2.sh adlı bir dosyaya kaydedin ve çalıştırma izni verin.

Daha sonra, her 2 dakikada bir çalıştırmak için crontab -e komutu ile şu satırı ekleyin:

*/2 * * * * /etc/cron.daily/load-average-2.sh >> /dev/null 2>&1

Değerleri kendi bilgilerinize göre değiştirin:

  • my.server.tld - scripti kurduğunuz sunucunun adı.
  • mail.server.tld - scriptin bildirim göndereceği posta sunucusunun domain adı.
  • user@domain.tld - posta sunucusuna bağlanmak için kullanılan posta kutusu adı (kullanıcı adı).
  • PassW0rd - posta hesabı için parola.
  • LLC COMPANY - gönderici bilgisi olarak gözükecek isim ve adres.
  • to@domain.tld - bildirimin gönderileceği e-posta adresi.

Eğer yük ortalaması (load average) 2'nin, yani %200'ün (2 çekirdek) üzerine çıkarsa, script bir uyarı gönderecektir. Bu parametreyi sunucunuzun çekirdek sayısına göre ayarlayabilirsiniz. Örneğin, sunucunuzda 4 çekirdek varsa, maksimum yük değeri 4 yani %400 olacaktır.

Gerekirse, yükü hafifletmek için örneğin servisleri yeniden başlatmak gibi komutlar ekleyebilirsiniz. Bu komutları else satırından önce ekleyin. Örneğin:

service nginx restart
service ddos restart
service httpd restart




No Comments Yet