78 أسطر
2.7 KiB
Markdown
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`.
|