Nginx log tahlilchisi
Command line'da log'larni tahlil qiladigan oddiy vosita yozing.
Ushbu loyihaning maqsadi — shell scripting bo'yicha asosiy ko'nikmalarni mashq qilishingizga yordam berish. Siz command line'da log'larni tahlil qiladigan oddiy vosita yozasiz.
Talablar
Namunaviy nginx access log faylini shu yerdan yuklab oling. Log faylida quyidagi maydonlar mavjud:
- IP manzil
- Sana va vaqt
- So'rov metodi va path
- Javob status code'i
- Javob hajmi
- Referrer
- User agent
Sizdan log faylini o'qib, quyidagi ma'lumotlarni chiqaradigan shell script yaratish talab etiladi:
- Eng ko'p so'rov yuborgan 5 ta IP manzil
- Eng ko'p so'ralgan 5 ta path
- Eng ko'p uchragan 5 ta javob status code'i
- Eng ko'p uchragan 5 ta user agent
Natija qanday ko'rinishda bo'lishi kerakligiga misol:
Top 5 IP addresses with the most requests:
45.76.135.253 - 1000 requests
142.93.143.8 - 600 requests
178.128.94.113 - 50 requests
43.224.43.187 - 30 requests
178.128.94.113 - 20 requests
Top 5 most requested paths:
/api/v1/users - 1000 requests
/api/v1/products - 600 requests
/api/v1/orders - 50 requests
/api/v1/payments - 30 requests
/api/v1/reviews - 20 requests
Top 5 response status codes:
200 - 1000 requests
404 - 600 requests
500 - 50 requests
401 - 30 requests
304 - 20 requests
Bu masalani yechishning bir nechta usuli bor. awk, sort, uniq, head, grep va sed buyruqlari haqida izlanib ko'ring. Qo'shimcha maqsad — yuqoridagi masala uchun bir nechta yechim topish. Masalan, awk o'rniga so'rovlarni filtrlash va sanash uchun grep va sed'dan foydalanishingiz mumkin.