Uraimov | DevNotes
139 subscribers
9 photos
1 video
10 links
💻 Dasturlash, texnologiyalar va IT dunyosidan foydali maslahatlar, tajribalar va yangiliklar!
🚀 Muhokama qilishga arziydigan loyihalar va g'oyalar!
🔹 Kichik, ammo samarali hayotiy lifehack va resurslar!
Download Telegram
Bugun Serverda yuzaga kelgan CPU 100% yuklanish muammosini qanday hal qildim

Bugun serverda qiziq bir holatga duch keldim. CPU yuklanishi birdan 100% ga chiqib ketdi va server sekinlashib qoldi. Bu PostgreSQL process tufayli yuzaga kelganini aniqladim. Lekin bu – muammoning yuzaki sababi edikan. Quyida muammo qanday qilib bartaraf etilganini step-by-step yozdim.

1️⃣ Muammoni aniqlash
Birinchi navbatda, serverda qaysi process barcha CPU resurslarini ishlatayotganini topishga harakat qildim. top va ps aux buyruqlari yordamida qandaydur noma'lum PostgreSQL process CPUni «yeyotganini» aniqladim.

💻 Buyruqlar:
sudo top  
ps aux | grep postgres



2️⃣ Dastlabki tahlil
Keyin, PostgreSQL faol Querylarini ko‘rish uchun pg_stat_activity jadvalini ko‘zdan kechirdim. U yerda noodatiy hech narsa topilmagach, lsof yordamida bu process qanday fayllar va tarmoqlar bilan ishlayotganini aniqladim. Shubhali fayl – /var/tmp/.221facb5c8c9e1648495 – va noma’lum tashqi server bilan aloqadorlikni ko‘rdim.

🔍 Buyruqlar:
SELECT pid, usename, client_addr, state, query FROM pg_stat_activity;  


sudo lsof -p <PID>  
sudo strace -p <PID>



3️⃣ Tezkor choralar
CPUni bo‘shatish uchun birinchi navbatda shubhali process to‘xtatdim va zararli faylni o‘chirib tashladim. Bu vaqtinchalik bo‘lsa-da, muammoni yengillashtirdi.

🚨 Buyruqlar:
sudo kill -9 <PID>  
sudo rm -rf /var/tmp/.221facb5c8c9e1648495
sudo rm -rf /tmp/.ICE-unix



4️⃣ Muammoni chuqurroq tahlil qilish
Shubhali faoliyatni qayta tekshirish uchun cron vazifalari va yuklash skriptlarini ko‘zdan kechirdim. Bundan tashqari, rkhunter yordamida rootkitlarni qidirib chiqdim. Hech qanday foydali narsa topolmadim.

🔧 Buyruqlar:
sudo grep -r ".221facb5c8c9e1648495" /etc /lib /usr  
sudo crontab -l
sudo ls -alh /var/tmp
sudo rkhunter --check



5️⃣ Serverni xavfsizlash
Serverni oldindan himoyalash uchun bir nechta choralar ko‘rdim:
- PostgreSQL uchun faqat ishonchli IP manzillarga ruxsat berdim.
- Firewall qoidalari yordamida tashqi IP’larni blokladim.
- SSH xavfsizligini oshirdim (root loginni o‘chirib qo‘ydim va protokol 2 ni majburiy qildim).

🔒 Buyruqlar:
sudo nano /etc/postgresql/14/main/pg_hba.conf  
sudo ufw deny out to any port 9090
sudo ufw deny out to <Shubhali IP>
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
Protocol 2



Xulosa
Bu tajriba menga server xavfsizligini muntazam kuzatib borish naqadar muhimligini yana bir bor eslatdi. Serveringizni himoya qilish uchun vaqtinchalik fayllar va loglarni tez-tez ko‘rib chiqing, shubhali portlarni kuzating va kerakli xavfsizlik vositalarini o‘rnatib qo‘ying.

PS: Muammo hal bo'ldi, lekin uning kelib chiqish sababini hali aniqlay olmadim. Ayni paytda shu ish ustida ishlayapman. Sababini topib u haqida ham albatta bir post yozaman.

Siz ham shunday muammoga duch kelganmisiz? Tajribangiz bilan bo‘lishing, bir-birimizga yordamchi bo‘lamiz! 😊

#DasturchiEslatmalari #ServerXavfsizligi #PostgreSQL #Linux
🔥7👍31👏1