الملفات
ghaymah-exam-OmarHussein-SRE/q5-mithal-monitor/README.md

78 أسطر
2.7 KiB
Markdown

# مراقبة mithal.space ولوحة متابعة مباشرة
حل مستقل لمراقبة موقع `mithal.space` بدون أي مكتبات خارجية. يشغّل السكربت فحوصات دورية، يخزّن النتائج محليًا بصيغة JSON Lines، ويقدّم لوحة متابعة عبر HTTP.
## محتويات المشروع
```
.
├── Dockerfile
├── .ghaymah.json
├── monitor.py # فحوصات Latency/Uptime/DNS/SSL/Search + خادم HTTP
├── dashboard.html # لوحة متابعة مباشرة
└── demo/ # لقطات توضيحية للتشغيل واللوحة
```
## الفحوصات المنفذة
- **Latency/Uptime:** فحص الصفحة الرئيسية وقياس زمن الاستجابة.
- **DNS:** قياس زمن تحليل اسم النطاق.
- **SSL:** التحقق من صلاحية الشهادة وعدد الأيام المتبقية.
- **Search:** إرسال طلب بحث فعلي إلى مسار البحث وقياس الاستجابة.
## التشغيل المحلي
```bash
cd q5-mithal-monitor
python monitor.py --interval 60 --port 8080
```
ثم افتح:
```text
http://localhost:8080
```
المسارات المتاحة:
- `/` أو `/dashboard.html`: لوحة المتابعة.
- `/api/metrics`: آخر المقاييس مجمّعة بصيغة JSON.
- `/health`: فحص صحة للخدمة نفسها.
لتنفيذ فحص واحد فقط بدون تشغيل الخادم:
```bash
python monitor.py --once
```
## التخصيص
يمكن تعديل الهدف وسلوك البحث عبر متغيرات البيئة:
| المتغير | الافتراضي | الغرض |
|---|---|---|
| `TARGET_URL` | `https://mithal.space` | الموقع المراد مراقبته |
| `SEARCH_PATH` | `/search` | مسار البحث |
| `SEARCH_QUERY_PARAM` | `q` | اسم باراميتر البحث |
| `SEARCH_QUERY_VALUE` | `test` | قيمة البحث التجريبية |
| `REQUEST_TIMEOUT` | `10` | مهلة الطلب بالثواني |
| `DATA_FILE` | `data.jsonl` | ملف تخزين النتائج |
| `MAX_RECORDS` | `3000` | أقصى عدد سجلات محفوظة |
| `PORT` | `8080` | منفذ لوحة المتابعة |
## النشر على غيمة
الصورة جاهزة للبناء مباشرة من `Dockerfile`:
```bash
docker build -t mithal-monitor:latest .
docker run --rm -p 8080:8080 mithal-monitor:latest
```
عند إنشاء الخدمة على Ghaymah Containers:
- اضبط المنفذ على `8080`.
- اضبط Health Check Path على `/health`.
- مرّر متغير `TARGET_URL` إذا أردت مراقبة نطاق مختلف.
- افتح الرابط العام للخدمة لعرض `dashboard.html`.