[{"data":1,"prerenderedAt":226},["ShallowReactive",2],{"seo-verification":3,"blog-تثبيت-grafana-alloy-على-vps-والانتقال-من-promtail-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-تثبيت-grafana-alloy-على-vps-والانتقال-من-promtail-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":171,"ctaBody":172,"ctaButton":173,"ctaUrl":174,"relatedPosts":175},497,"تثبيت-grafana-alloy-على-vps-والانتقال-من-promtail",{"fr":12,"en":13,"ar":10,"es":14},"grafana-alloy-vps-monitoring","grafana-alloy-on-a-vps-install-and-migrate-from-promtail","grafana-alloy-en-un-vps-instalar-y-migrar-desde-promtail","Grafana Alloy على VPS: التثبيت والانتقال من Promtail","ثبّتوا Grafana Alloy على خادم VPS، واجمعوا السجلات والمقاييس بوكيل واحد، وانتقلوا من Promtail دون فقدان أي سجل أو إرساله مرتين.",12,0,false,"2026-10-22T00:00:00+00:00","2026-10-23T13:27:02+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fgrafana-alloy-vps-monitoring-poster.svg",{"categorySlug":34,"appSlug":35},"المراقبة-وقابلية-الرصد","grafana","لم يعد Promtail يتلقى أي تحديث: أعلنت Grafana انتهاء دعمه منذ 2 مارس 2026. إذا كان خادمكم VPS لا يزال يرسل سجلاته إلى Loki عبر هذا الوكيل، فستبقى كل ثغرة تُكتشف غدًا مفتوحة. يحلّ Grafana Alloy محلّه ويجمع أيضًا مقاييس النظام، فيُغنيكم عن exporter إضافي على الخادم. يثبّت هذا الدليل Alloy كخدمة systemd، ويربطه بـ Loki وPrometheus، وينقل إعدادات Promtail القائمة، ويعالج أخطاء الصلاحيات التي لا يُبلغ عنها Alloy دائمًا.",[38,42,52,55,86,89,92,113,149,152,156,159,168],{"type":39,"title":40,"body":41},"h2","لماذا تستبدلون Promtail بـ Alloy الآن","صفحة Promtail الرسمية واضحة: انتهى دعم الوكيل منذ 2 مارس 2026، وتوقّف الدعم التجاري، ويستمر كل التطوير في Grafana Alloy. ووكيل الجمع عملية ذات صلاحيات مرتفعة تعمل باستمرار: تركه دون تصحيحات أمر لا يمكن الاستمرار فيه.\n\nليس Alloy مجرد Promtail باسم جديد. إنه جامع واحد يُضبط عبر مكوّنات: مصدر للسجلات، وexporter لمقاييس النظام، ووجهة إرسال نحو Loki وأخرى نحو Prometheus. على خادم VPS كان يشغّل Promtail وnode_exporter جنبًا إلى جنب، تكفي الآن خدمة واحدة. ويستطيع أيضًا تمرير OTLP إذا كنتم تُجهّزون تطبيقاتكم بالقياس، وهو موضوع نتناوله في \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fgrafana-tempo-وopentelemetry-التتبع-الموزع-على-خادم-vps\">دليلنا عن Tempo وOpenTelemetry\u003C\u002Fa>.\n\nلا يعيد هذا الدليل تثبيت Loki ولا Prometheus: الجانب الخادمي موصوف في \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fمركزة-سجلات-docker-على-vps-باستخدام-loki-وgrafana\">دليل Loki وGrafana\u003C\u002Fa> وفي \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fمراقبة-الخادم-الافتراضي-vps-باستخدام-grafana-و-prometheus\">دليل Grafana وPrometheus\u003C\u002Fa>. هنا نهتم بالوكيل وحده.",{"type":43,"title":44,"items":45},"ul","ما الذي يغيّره وكيل واحد على خادمكم",[46,47,48,49,50,51],"**خدمة واحدة للمراقبة** — تمر السجلات والمقاييس عبر العملية نفسها `alloy`، مع سجل واحد تقرؤونه عند حدوث عطل.","**تحديثات لا تزال تصل** — يُنشر Alloy في مستودعات apt وrpm الخاصة بـ Grafana: يكفي `apt upgrade` لإبقائه محدّثًا مثل باقي النظام.","**انتقال مزوّد بالأدوات** — يترجم الأمر `alloy convert` إعدادات Promtail القائمة وينتج تقريرًا بما لم يتمكن من تحويله.","**مقاييس النظام مدمجة** — يحلّ المكوّن `prometheus.exporter.unix` محلّ node_exporter دون ملف تنفيذي إضافي ولا منفذ يجب فتحه.","**واجهة تصحيح محلية** — تعرض الواجهة على المنفذ 12345 مخطط المكوّنات وقيمها، ويمكن الوصول إليها عبر نفق SSH.","**إرسال نحو منظومتكم أو نحو Grafana Cloud** — الملف نفسه يرسل إلى Loki مستضاف ذاتيًا أو إلى خدمة مُدارة بتغيير عنوان URL واحد.",{"type":39,"title":53,"body":54},"متطلبات Alloy على VPS بالأرقام","يُثبَّت Alloy على Debian وUbuntu وAlmaLinux وRocky Linux من مستودعات Grafana الرسمية. تُنشئ الحزمة مستخدم نظام باسم `alloy`، وخدمة systemd بالاسم نفسه، وملف الإعدادات `\u002Fetc\u002Falloy\u002Fconfig.alloy`.\n\nمن حيث الموارد، تعطي وثائق Alloy رتبتين تقريبيتين: نحو نواة واحدة و120 MiB من الذاكرة لكل MiB\u002Fs من السجلات المستقبَلة، ونحو 11 GiB من الذاكرة لكل مليون سلسلة Prometheus نشطة. يعرض خادم VPS منفرد بضعة آلاف من السلاسل، ونادرًا ما يكتب أكثر من بضع مئات KiB من السجلات في الثانية. توصيتنا التحريرية: خصّصوا للوكيل نصف vCPU و256 إلى 512 ميغابايت من الذاكرة، وبضعة غيغابايتات من القرص تحت `\u002Fvar\u002Flib\u002Falloy` لمواضع القراءة ومخزن الإرسال المؤقت.\n\nوتحتاجون أخيرًا إلى وجهة: Loki يمكن بلوغه على `\u002Floki\u002Fapi\u002Fv1\u002Fpush`، وPrometheus مُشغَّل بالخيار `--web.enable-remote-write-receiver` الذي يفتح نقطة النهاية `\u002Fapi\u002Fv1\u002Fwrite`. لا حاجة لفتح أي منفذ وارد على خادم الوكيل: Alloy يدفع البيانات ولا يُستعلَم.",{"type":56,"title":57,"steps":58},"steps","تثبيت Alloy وربط السجلات والمقاييس",[59,62,65,68,71,74,77,80,83],{"title":60,"body":61},"إضافة مستودع Grafana على Debian أو Ubuntu","`sudo mkdir -p \u002Fetc\u002Fapt\u002Fkeyrings`\n`sudo wget -O \u002Fetc\u002Fapt\u002Fkeyrings\u002Fgrafana.asc https:\u002F\u002Fapt.grafana.com\u002Fgpg-full.key`\n`sudo chmod 644 \u002Fetc\u002Fapt\u002Fkeyrings\u002Fgrafana.asc`\n`echo \"deb [signed-by=\u002Fetc\u002Fapt\u002Fkeyrings\u002Fgrafana.asc] https:\u002F\u002Fapt.grafana.com stable main\" | sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fgrafana.list`\n`sudo apt-get update && sudo apt-get install alloy`",{"title":63,"body":64},"أو تثبيته على AlmaLinux وRocky Linux","استوردوا المفتاح بالأمر `wget -q -O gpg.key https:\u002F\u002Frpm.grafana.com\u002Fgpg.key` ثم `sudo rpm --import gpg.key`. أنشئوا `\u002Fetc\u002Fyum.repos.d\u002Fgrafana.repo` مع `baseurl=https:\u002F\u002Frpm.grafana.com` و`repo_gpgcheck=1` و`gpgcheck=1` و`enabled=1` كما تبيّن صفحة تثبيت Alloy على Linux، ثم نفّذوا `sudo dnf install alloy`.",{"title":66,"body":67},"تشغيل الخدمة والتحقق من مستخدمها","`sudo systemctl enable --now alloy`\n`sudo systemctl status alloy`\n`systemctl cat alloy | grep User`\n\nيجب أن يعرض الأمر الأخير `User=alloy`. لا تحدّد الحزمة أي `Group=`: لذا تأتي صلاحيات القراءة من المجموعات الثانوية لهذا المستخدم، وهي نقطة أساسية لما يلي.",{"title":69,"body":70},"تحديد وجهة السجلات","افتحوا `\u002Fetc\u002Falloy\u002Fconfig.alloy` وأضيفوا وجهة الإرسال نحو Loki:\n\n`loki.write \"default\" {`\n`  endpoint {`\n`    url = \"http:\u002F\u002F127.0.0.1:3100\u002Floki\u002Fapi\u002Fv1\u002Fpush\"`\n`  }`\n`}`\n\nاستبدلوا العنوان بعنوان Loki لديكم. وإن كان بعيدًا، فاستعملوا HTTPS وكتلة `basic_auth`.",{"title":72,"body":73},"جمع journald وملفات السجلات","`loki.source.journal \"system\" {`\n`  forward_to = [loki.write.default.receiver]`\n`  labels     = {\"job\" = \"systemd-journal\"}`\n`}`\n`local.file_match \"nginx\" {`\n`  path_targets = [{\"__path__\" = \"\u002Fvar\u002Flog\u002Fnginx\u002F*.log\", \"job\" = \"nginx\"}]`\n`}`\n`loki.source.file \"nginx\" {`\n`  targets    = local.file_match.nginx.targets`\n`  forward_to = [loki.write.default.receiver]`\n`}`\n\nافتراضيًا، يقرأ مصدر journal المسارين `\u002Fvar\u002Flog\u002Fjournal` و`\u002Frun\u002Flog\u002Fjournal`، ولا يعود إلا سبع ساعات إلى الوراء عند أول تشغيل.",{"title":75,"body":76},"جمع مقاييس النظام","`prometheus.exporter.unix \"node\" { }`\n`prometheus.scrape \"node\" {`\n`  targets    = prometheus.exporter.unix.node.targets`\n`  forward_to = [prometheus.remote_write.default.receiver]`\n`}`\n`prometheus.remote_write \"default\" {`\n`  endpoint {`\n`    url = \"http:\u002F\u002F127.0.0.1:9090\u002Fapi\u002Fv1\u002Fwrite\"`\n`  }`\n`}`\n\nإن كان node_exporter يعمل مسبقًا على الجهاز، فأوقفوه بعد الانتقال كي لا تُجمع السلاسل نفسها مرتين.",{"title":78,"body":79},"التحقق قبل إعادة التحميل","`sudo alloy validate \u002Fetc\u002Falloy\u002Fconfig.alloy`\n`sudo systemctl reload alloy`\n`sudo journalctl -u alloy -f`\n\nيكشف `validate` خطأ الصياغة أو المكوّن المُشار إليه خطأً قبل أن تحمّل الخدمة الإعدادات.",{"title":81,"body":82},"منح صلاحيات القراءة","يجب أن يعرض `id alloy` المجموعتين `adm` و`systemd-journal`. تضيفهما الحزمة عند وجودهما؛ وبعد تثبيت من ملف تنفيذي أو حذف مجموعة، أعيدوهما بالأمر `sudo usermod -aG adm,systemd-journal alloy` ثم `sudo systemctl restart alloy`. ولمجلد تطبيق يملكه مستخدم آخر، تفضّل الوثائق قائمة ACL على إضافة مجموعة: `sudo setfacl -R -m u:alloy:rx \u002Fvar\u002Flog\u002Fmonapp` و`sudo setfacl -R -d -m u:alloy:rx \u002Fvar\u002Flog\u002Fmonapp`.",{"title":84,"body":85},"التحقق من البداية إلى النهاية ثم ربط لوحات المتابعة","اكتبوا سطرًا شاهدًا بالأمر `logger -t alloy-test \"ligne de test alloy\"`، ثم ابحثوا عنه في Grafana، تبويب Explore، بالاستعلام `{job=\"systemd-journal\"} |= \"ligne de test alloy\"`. أما المقاييس، فيجب أن يعيد الاستعلام `node_load1` سلسلة لخادمكم. إن استجاب الاثنان، فأعيدوا استخدام لوحات \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fمراقبة-الخادم-الافتراضي-vps-باستخدام-grafana-و-prometheus\">دليلنا عن Grafana وPrometheus\u003C\u002Fa> التي تقرأ السلاسل نفسها `node_*`.",{"type":39,"title":87,"body":88},"Alloy وDocker: قراءة الحاويات دون فتح كل شيء","لقراءة سجلات حاوياتكم، يجمع Alloy المثبّت على المضيف بين `discovery.docker` و`loki.source.docker`، وكلاهما موجّه إلى `unix:\u002F\u002F\u002Fvar\u002Frun\u002Fdocker.sock`. يجب عندها أن يتمكن المستخدم `alloy` من فتح هذا المقبس، وهو ما يتم عمليًا عبر `sudo usermod -aG docker alloy`. افعلوا ذلك عن دراية: تذكّر وثائق Docker بأن المجموعة `docker` تمنح صلاحيات تعادل صلاحيات root. يصبح وكيل السجلات عمليًا مديرًا للجهاز.\n\nيمكنكم أيضًا تشغيل Alloy نفسه داخل حاوية، بالصورة `grafana\u002Falloy`، مع ربط الملف على `\u002Fetc\u002Falloy\u002Fconfig.alloy` والوسيط `--storage.path=\u002Fvar\u002Flib\u002Falloy\u002Fdata` على وحدة تخزين دائمة. ربط المقبس بخيار `:ro` لا يحدّ من استدعاءات واجهة Docker البرمجية: المقبس يبقى مقبسًا. ولمقاييس المضيف، يجب أن تتلقى الحاوية نظام ملفات الجهاز و`\u002Fproc` و`\u002Fsys` كنقاط ربط.\n\nعلى خادم VPS واحد، تبقى حزمة systemd الأسهل في التدقيق.",{"type":39,"title":90,"body":91},"الانتقال من Promtail: الخطر الحقيقي في المواضع","يحتفظ Promtail بملف مواضع يسجّل، لكل ملف متابَع، النقطة التي توقف عندها عن القراءة. أما Alloy فيحفظ مواضعه في مكان آخر، داخل المجلد الذي يحدده `--storage.path`. والتحويل يأخذ ذلك في الحسبان: تحمل كتلة `loki.source.file` الناتجة عن `alloy convert` وسيطًا `legacy_positions_file` يشير إلى الملف القديم، لاستئناف القراءة من النقطة الصحيحة.\n\nلهذه الآلية نقطة ضعف موثّقة. في البلاغ grafana\u002Falloy #5493، يصف مستخدم الخطأ `error reading legacy positions file` متبوعًا بـ `permission denied`: لم يتمكن Alloy من قراءة الملف القديم، فتجاهله وأعاد إرسال كل سجلات الخادم من البداية. رأى المشرف على المشروع أن إيقاف Alloy في هذه الحالة مشروع، وقد أُغلق البلاغ، لكن لا تراهنوا على نسختكم: تحققوا من الصلاحيات قبل أول تشغيل.\n\nوالخطر الآخر معاكس: Promtail وAlloy إن عملا معًا يرسلان كل سطر مرتين. الترتيب التالي يتجنب الخطرين.",{"type":56,"title":93,"steps":94},"نقل إعدادات Promtail دون فقدان ولا تكرار",[95,98,101,104,107,110],{"title":96,"body":97},"تحديد ملف الإعدادات وملف المواضع","افتحوا إعدادات Promtail، وغالبًا ما تكون `\u002Fetc\u002Fpromtail\u002Fconfig.yml`، وسجّلوا قيمة `positions.filename`. في تثبيت عبر Docker Compose، يقع هذا الملف داخل وحدة تخزين: سجّلوا مساره الحقيقي على المضيف.",{"title":99,"body":100},"التحويل مع تقرير","`alloy convert --source-format=promtail --report=\u002Ftmp\u002Fpromtail-report.txt --output=\u002Ftmp\u002Fpromtail.alloy \u002Fetc\u002Fpromtail\u002Fconfig.yml`\n\nاقرؤوا التقرير قبل أي شيء. يفرض الخيار `--bypass-errors` تحويلًا جزئيًا، لكن الوثائق تحذّر من أن السلوك قد يختلف حينها عن الأصل.",{"title":102,"body":103},"التحقق من أن المستخدم alloy يقرأ الملف القديم","`grep legacy_positions_file \u002Ftmp\u002Fpromtail.alloy`\n`sudo -u alloy cat \u002Fvar\u002Flib\u002Fpromtail\u002Fpositions.yaml`\n\nعدّلوا المسار وفق ما سجّلتموه سابقًا. إن فشل الأمر الثاني، فانسخوا الملف إلى مجلد يقرؤه `alloy` وصحّحوا المسار في الإعدادات المحوّلة.",{"title":105,"body":106},"إيقاف Promtail قبل تشغيل Alloy","`sudo systemctl stop promtail`، أو `docker compose stop promtail` لمنظومة حاويات. يكتب Promtail حينها آخر مواضعه، ولا يُرسل أي سطر مرتين أثناء الانتقال.",{"title":108,"body":109},"تبديل الإعدادات","انقلوا الكتل المحوّلة إلى `\u002Fetc\u002Falloy\u002Fconfig.alloy`، ونفّذوا `sudo alloy validate \u002Fetc\u002Falloy\u002Fconfig.alloy` ثم `sudo systemctl restart alloy`. تحققوا فورًا من `sudo journalctl -u alloy | grep -i positions`: يجب ألا يظهر أي سطر `error reading legacy positions file`.",{"title":111,"body":112},"المراقبة أسبوعًا ثم الإزالة","قارنوا حجم السجلات في Grafana قبل الانتقال وبعده، وتابعوا العدّاد `loki_write_sent_entries_total` في Alloy. احتفظوا بإعدادات Promtail بضعة أيام، ثم `sudo systemctl disable promtail` وأزيلوا الحزمة أو خدمة Compose.",{"type":114,"title":115,"headers":116,"rows":120},"comparison","Promtail وAlloy جنبًا إلى جنب",[117,118,119],"المعيار","Promtail","Grafana Alloy",[121,125,129,133,137,141,145],[122,123,124],"الحالة","انتهى دعمه منذ 2 مارس 2026، ولا تحديثات بعد ذلك","تطوير نشط، والخلف الذي اعتمدته Grafana",[126,127,128],"الإشارات المجمّعة","السجلات فقط","السجلات والمقاييس وتتبعات OTLP والملفات التحليلية",[130,131,132],"مقاييس النظام","node_exporter يُثبَّت على حدة","المكوّن `prometheus.exporter.unix` مدمج",[134,135,136],"الإعدادات","YAML","صياغة Alloy بالمكوّنات، والتحويل عبر `alloy convert`",[138,139,140],"مواضع القراءة","ملف يُحدَّد في الإعدادات","المجلد `--storage.path`، والاستئناف عبر `legacy_positions_file`",[142,143,144],"التصحيح","سجل الخدمة","سجل الخدمة وواجهة محلية على المنفذ 12345",[146,147,148],"مستخدم الخدمة","حسب طريقة التثبيت","`alloy`، مع المجموعتين `adm` و`systemd-journal` اللتين تضيفهما الحزمة",{"type":39,"title":150,"body":151},"الإعداد بعد التثبيت: الواجهة والأسرار والتخزين","تستمع واجهة التصحيح افتراضيًا على `127.0.0.1:12345`. أبقوها كذلك وافتحوها عبر نفق: `ssh -L 12345:127.0.0.1:12345 user@your-domain.com`، ثم `http:\u002F\u002Flocalhost:12345` في المتصفح. وإن أردتم كشفها رغم ذلك، فأضيفوا `--server.http.listen-addr=0.0.0.0:12345` إلى `CUSTOM_ARGS`، ولكن فقط خلف جدار حماية يرشّح هذا المنفذ.\n\nتوجد خيارات التشغيل في `\u002Fetc\u002Fdefault\u002Falloy` على Debian وUbuntu، وفي `\u002Fetc\u002Fsysconfig\u002Falloy` على AlmaLinux وRocky. وهناك أيضًا تضعون الأسرار: عرّفوا متغيرًا `LOKI_PASSWORD`، واقرؤوه في الإعدادات بـ `sys.env(\"LOKI_PASSWORD\")`، وأبقوا كلمة المرور خارج `config.alloy`.\n\nإن كان Loki بعيدًا، فلا ترسلوا أبدًا عبر HTTP غير مشفّر على الإنترنت: ضعوا Loki خلف وكيل عكسي TLS مع مصادقة، كما هو موصوف في \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fمركزة-سجلات-docker-على-vps-باستخدام-loki-وgrafana\">دليلنا عن Loki\u003C\u002Fa>. وأخيرًا، راقبوا المساحة في `\u002Fvar\u002Flib\u002Falloy`: إذا تعذّر بلوغ Loki، فهناك تتراكم البيانات التي تنتظر الإرسال.",{"type":153,"title":154,"body":155},"tip","تحصين الخدمة دون تعطيل الجمع","تقترح وثائق Alloy ملف drop-in يُنشأ بالأمر `sudo systemctl edit alloy` كي يصمد أمام تحديثات الحزمة: `NoNewPrivileges=yes` و`ProtectSystem=strict` و`ProtectHome=yes` و`PrivateTmp=yes` و`ReadWritePaths=\u002Fvar\u002Flib\u002Falloy`. مع `ProtectSystem=strict`، أضيفوا `ReadOnlyPaths=\u002Fvar\u002Flog\u002Fjournal` و`ReadOnlyPaths=\u002Frun\u002Flog\u002Fjournal`، وإلا توقف مصدر journal عن القراءة. اختموا بـ `sudo systemctl daemon-reload` و`sudo systemctl restart alloy`. فضّلوا قائمة ACL لكل مجلد على إضافة مجموعات، ولا تمنحوا المجموعة `docker` إلا إذا كنتم تجمعون سجلات الحاويات فعلًا.",{"type":39,"title":157,"body":158},"استكشاف الأعطال: الأخطاء التي لا يصرخ بها Alloy","معظم أعطال Alloy على خادم VPS ليست انهيارات. الخدمة نشطة، والواجهة خضراء، وGrafana يبقى فارغًا. والسبب يوثّقه المشرفون على المشروع أنفسهم في البلاغ grafana\u002Falloy #2994، الذي أُغلق لصالح البلاغ #6340: صحة المكوّن تعني أنه يعمل، لا أنه يرسل.\n\nيكفي إجراءان للخروج من هذا الضباب. اقرؤوا سجل الخدمة بالأمر `sudo journalctl -u alloy --since \"10 min ago\"`، واستعلموا عن المقاييس الداخلية للوكيل بالأمر `curl -s http:\u002F\u002F127.0.0.1:12345\u002Fmetrics | grep loki_write`. يجب أن يرتفع العدّاد `loki_write_sent_entries_total`؛ أما `loki_write_dropped_entries_total` فيعدّ الأسطر المهمَلة بعد استنفاد كل محاولات الإرسال.",{"type":43,"title":160,"items":161},"رسائل الخطأ وحلولها",[162,163,164,165,166,167],"**مصدر journal يبدأ، لكن لا يصل أي سطر** — تقول وثائق `loki.source.journal` ذلك صراحة: دون المجموعتين `adm` و`systemd-journal`، يبدأ المكوّن دون خطأ ولا يجمع شيئًا. صحّحوا ذلك بالأمر `sudo usermod -aG adm,systemd-journal alloy`، ثم أعيدوا تشغيل الخدمة، لأن المجموعة المضافة لا تسري إلا عند التشغيل التالي.","**`failed to tail the file: open \u002Fvar\u002Flog\u002F…: permission denied`** — الملف موجود لكن `alloy` لا يستطيع قراءته. امنحوا قائمة ACL على المجلد بالأمر `setfacl -R -m u:alloy:rx` وبصيغته `-d` للملفات التي يُنشئها التدوير لاحقًا.","**لا رسالة ولا سطر لمجلد كامل** — يصف البلاغ grafana\u002Falloy #6542 سجلات لم تُرسل قط دون أي خطأ. ويؤكد فيه أحد المشرفين أن الملف غير المقروء يُسجَّل، أما المجلد الذي يتعذّر الوصول إليه فلا. اختبروا ذلك بالأمر `sudo -u alloy ls \u002Fvar\u002Flog\u002Fmonapp`.","**`error reading legacy positions file … permission denied`** — لم يقرأ Alloy مواضع Promtail وقد يعيد إرسال كل شيء من البداية (البلاغ #5493). أوقفوا الخدمة، واجعلوا الملف مقروءًا لـ `alloy`، ثم أعيدوا التشغيل.","**`failed to identify the read-write layer ID … mount-id: permission denied`** — خطأ من المكوّن cAdvisor تحت systemd (البلاغ #4068). المجموعة `docker` لا تكفي؛ ويذكر مستخدمون أن ملف drop-in يتضمن `AmbientCapabilities=CAP_DAC_READ_SEARCH` و`CapabilityBoundingSet=CAP_DAC_READ_SEARCH` يحلّ المشكلة دون تشغيل الخدمة بصلاحيات root. إنه حلّ مجتمعي، اختبروه قبل تعميمه.","**الواجهة خضراء لكن Grafana يبقى فارغًا** — تحققوا من `loki_write_sent_entries_total` ومن سطر الاختبار الذي كتبه `logger`. إن توقف العدّاد، فالعطل في مرحلة سابقة، عند المصدر.",{"type":39,"title":169,"body":170},"وكيل محدَّث على خادم تملكونه","يحتاج Alloy إلى ما لا تمنحه الاستضافة المشتركة: خدمة systemd، وقراءة `\u002Fvar\u002Flog` وسجل journal، وأحيانًا مقبس Docker. على خادم VPS، تختارون توزيعتكم، وتحتفظون بمنظومة Loki وPrometheus، وتقرّرون الصلاحيات الممنوحة للوكيل. وإن فضّلتم عدم إدارة النظام بأنفسكم، فخيار إدارة VPS متاح للخادم.\n\nتبقى الوثائق الرسمية المرجع لكل مكوّن: \u003Ca href=\"https:\u002F\u002Fgrafana.com\u002Fdocs\u002Falloy\u002Flatest\u002Fset-up\u002Fmigrate\u002Ffrom-promtail\u002F\">الانتقال من Promtail\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Fgrafana.com\u002Fdocs\u002Falloy\u002Flatest\u002Faccess_permissions\u002Flinux\u002F\">الصلاحيات على Linux\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Fgrafana.com\u002Fdocs\u002Floki\u002Flatest\u002Fsend-data\u002Fpromtail\u002F\">صفحة انتهاء دعم Promtail\u003C\u002Fa>. ولتتبّع التطبيقات، تابعوا مع \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fgrafana-tempo-وopentelemetry-التتبع-الموزع-على-خادم-vps\">دليلنا عن Tempo وOpenTelemetry\u003C\u002Fa>.","خادم VPS يمنح وكيل الجمع الصلاحيات التي يحتاجها","على خادم VPS من ServOrbit.com، لديكم وصول root، واختيار نظام التشغيل بين Ubuntu وDebian وAlmaLinux وRocky، والتحكم في systemd والمجموعات وقوائم ACL. تثبّتون Alloy أو Loki أو Prometheus كما تريدون، وخيار إدارة VPS متاح للخادم.","اكتشفوا حلول المطوّرين","\u002Fsolutions\u002Fdeveloppeurs",[176,194,210],{"id":177,"slug":178,"slugs":179,"title":183,"excerpt":184,"readTime":185,"views":186,"isPinned":19,"publishedAt":187,"updatedAt":188,"category":189,"categories":190,"featuredImage":30,"bgImage":31,"posterImage":192,"relatedSolution":193},243,"مركزة-سجلات-docker-على-vps-باستخدام-loki-وgrafana",{"fr":180,"en":181,"ar":178,"es":182},"loki-grafana-logs-centralises-vps","centralize-docker-logs-on-your-vps-with-loki-and-grafana","centralizar-logs-docker-en-vps-con-loki-y-grafana","مركزة سجلات Docker على VPS باستخدام Loki وGrafana","اجمع سجلات جميع حاويات Docker في لوحة تحكم Grafana واحدة باستخدام Loki وPromtail على VPS الخاص بك. بدون Datadog ولا حصص.",11,1,"2026-08-10T00:00:00+00:00","2026-09-08T22:00:02+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[191],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Floki-grafana-logs-centralises-vps-poster.svg",{"categorySlug":34,"appSlug":35},{"id":195,"slug":196,"slugs":197,"title":201,"excerpt":202,"readTime":185,"views":18,"isPinned":19,"publishedAt":203,"updatedAt":204,"category":205,"categories":206,"featuredImage":30,"bgImage":31,"posterImage":208,"relatedSolution":209},106,"مراقبة-الخادم-الافتراضي-vps-باستخدام-grafana-و-prometheus",{"fr":198,"en":199,"ar":196,"es":200},"monitoring-vps-grafana-prometheus","vps-monitoring-with-grafana-and-prometheus","monitorizacion-vps-grafana-prometheus","مراقبة VPS باستخدام Grafana وPrometheus","انشر Prometheus 3.x وGrafana 13.x وNode Exporter وAlertmanager على خادمك VPS بـ Docker Compose. لوحات معلومات وتنبيهات وتصليب.","2026-03-06T00:00:00+00:00","2026-10-05T14:05:27+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[207],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fmonitoring-vps-grafana-prometheus-poster.svg",{"categorySlug":34,"appSlug":35},{"id":211,"slug":212,"slugs":213,"title":217,"excerpt":218,"readTime":17,"views":186,"isPinned":19,"publishedAt":219,"updatedAt":220,"category":221,"categories":222,"featuredImage":30,"bgImage":31,"posterImage":224,"relatedSolution":225},220,"grafana-tempo-وopentelemetry-التتبع-الموزع-على-خادم-vps",{"fr":214,"en":215,"ar":212,"es":216},"opentelemetry-grafana-tempo-vps","grafana-tempo-and-opentelemetry-distributed-tracing-on-vps","grafana-tempo-opentelemetry-trazado-distribuido-vps","Grafana Tempo وOpenTelemetry: التتبع الموزع على VPS","نشر OpenTelemetry وGrafana Tempo على VPS: البنية الكاملة، الإعداد خطوة بخطوة، استخدام Node.js وPython، الاحتفاظ بالبيانات على S3، واستعلامات TraceQL.","2026-08-04T00:00:00+00:00","2026-09-29T14:40:44+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[223],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fopentelemetry-grafana-tempo-vps-poster.svg",{"categorySlug":34,"appSlug":35},1792763019341]