deploy on the cloud and made some refactory on files

هذا الالتزام موجود في:
2026-07-27 18:37:20 +03:00
الأصل 80980bbf16
التزام 91d8581c6e
15 ملفات معدلة مع 210 إضافات و102 حذوفات

عرض الملف

@@ -0,0 +1,77 @@
# مراقبة 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`.