Glances هي أداة مراقبة مفتوحة المصدر عبر الأنظمة الأساسية. فهو يسمح بمراقبة الجوانب المختلفة لنظامك في الوقت الفعلي مثل وحدة المعالجة المركزية والذاكرة والقرص واستخدام الشبكة وما إلى ذلك. كما يسمح بمراقبة العمليات الجارية والمستخدمين الذين قاموا بتسجيل الدخول ودرجات الحرارة والفولتية وسرعات المروحة وما إلى ذلك. كما أنه يدعم مراقبة الحاويات، وهو يدعم أنظمة إدارة الحاويات المختلفة مثل Docker وLXC. يتم تقديم المعلومات في لوحة معلومات سهلة القراءة ويمكن استخدامها أيضًا لمراقبة الأنظمة عن بعد عبر واجهة الويب أو واجهة سطر الأوامر. إنه سهل التثبيت والاستخدام ويمكن تخصيصه لعرض المعلومات التي تهمك فقط.
في وضع العميل/الخادم، يمكن إجراء المراقبة عن بعد عبر المحطة الطرفية أو واجهة الويب أو واجهة برمجة التطبيقات (XML-RPC وRESTful). يمكن أيضًا تصدير الإحصائيات إلى ملفات أو قواعد بيانات خارجية للوقت/القيمة، أو ملف CSV أو الإخراج المباشر إلى STDOUT.
تمت كتابة اللمحات بلغة Python وتستخدم المكتبات للحصول على المعلومات من نظامك. يعتمد على بنية مفتوحة حيث يمكن للمطورين إضافة مكونات إضافية جديدة أو وحدات تصدير.
يمكنك مساعدتي في تحقيق أهدافي المتمثلة في تحسين هذا المشروع مفتوح المصدر أو فقط قول "شكرًا لك" عن طريق:
أي وجميع المساهمات هي موضع تقدير كبير.
python>=3.9
(استخدم Glances 3.4.x لإصدار Python الأقل)psutil
(أفضل مع الإصدار الأحدث)defusedxml
(من أجل تصحيح القرد xmlrpc)packaging
(لمقارنة الإصدار)orjson
(بديل محسّن لوحدة json القياسية)ملاحظة لمستخدمي بايثون 2
لمحات الإصدار 4 أو أعلى لا تدعم Python 2 (وPython 3 <3.9). يرجى استخدام الإصدار 3.4.x من Glances إذا كنت بحاجة إلى دعم Python 2.
التبعيات الاختيارية:
batinfo
(لمراقبة البطارية)bernhard
(لوحدة تصدير ريمان)cassandra-driver
(لوحدة تصدير كاساندرا)chevron
(لميزة البرنامج النصي للإجراء)docker
(لدعم مراقبة Containers Docker)elasticsearch
(لوحدة تصدير Elastic Search)FastAPI
و Uvicorn
(لوضع خادم الويب)graphitesender
(لوحدة تصدير الجرافيت)hddtemp
(لدعم مراقبة درجة حرارة محرك الأقراص الصلبة) [Linux فقط]influxdb
(لوحدة التصدير InfluxDB الإصدار 1)influxdb-client
(لوحدة التصدير InfluxDB الإصدار 2)jinja2
(للنموذج، يستخدم تحت الغطاء بواسطة FastAPI)kafka-python
(لوحدة تصدير Kafka)netifaces
(للمكون الإضافي IP)nvidia-ml-py
(للمكون الإضافي GPU)pycouchdb
(لوحدة التصدير CouchDB)pika
(لوحدة التصدير RabbitMQ/ActiveMQ)podman
(لدعم مراقبة Containers Podman)potsdb
(لوحدة التصدير OpenTSDB)prometheus_client
(لوحدة تصدير Prometheus)pygal
(لوحدة تصدير الرسم البياني)pymdstat
(لدعم RAID) [Linux فقط]pymongo
(لوحدة التصدير MongoDB)pysnmp-lextudio
(لدعم SNMP)pySMART.smartx
(لدعم HDD Smart) [Linux فقط]pyzmq
(لوحدة التصدير ZeroMQ)requests
(للمنافذ والمكونات الإضافية السحابية ووحدة التصدير RESTful)sparklines
(لخيار الخطوط المميزة للمكون الإضافي السريع)statsd
(لوحدة التصدير StatsD)wifi
(لبرنامج wifi الإضافي) [Linux فقط]zeroconf
(لوضع الاكتشاف التلقائي) هناك عدة طرق لاختبار/تثبيت اللمحات على نظامك. اختر سلاحك!
لمحات عن PyPI
. باستخدام PyPI، ستستخدم أحدث إصدار ثابت.
لتثبيت Glances، ما عليك سوى استخدام سطر أوامر pip
.
تحذير: في أنظمة تشغيل Linux الحديثة، قد تظهر لك رسالة خطأ تتعلق بالبيئة المُدارة خارجيًا عند محاولة استخدام pip
. في هذه الحالة، انتقل إلى قسم PipX أدناه.
pip install --user glances
ملحوظة : رؤوس Python مطلوبة لتثبيت psutil، وهي تبعية لـ Glances. على سبيل المثال، في Debian/Ubuntu، أبسط شيء هو apt install python3-psutil
أو بدلاً من ذلك تحتاج إلى تثبيت حزمة python-dev أولاً وgcc ( python-devel على Fedora/CentOS/RHEL). بالنسبة لنظام التشغيل Windows، ما عليك سوى تثبيت psutil من ملف التثبيت الثنائي.
افتراضيًا، يتم تثبيت Glances بدون تبعيات واجهة الويب. لتثبيته، استخدم الأمر التالي:
pip install --user 'glances[web]'
للتثبيت الكامل (مع كافة الميزات):
pip install --user 'glances[all]'
لترقية اللمحات إلى الإصدار الأحدث:
pip install --user --upgrade glances
يتم نشر فرع التطوير الحالي في فهرس الحزمة test.pypi.org. إذا كنت تريد اختبار إصدار التطوير (قد يكون غير مستقر)، فأدخل:
pip install --user -i https://test.pypi.org/simple/ Glances
قم بتثبيت PipX على نظامك (apt install pipx على Ubuntu).
تثبيت اللمحات (مع كافة الميزات):
pipx install 'glances[all]'
سيتم تثبيت البرنامج النصي لللمحات في المجلد ~/.local/bin.
تتوفر صور Glances Docker. يمكنك استخدامه لمراقبة الخادم الخاص بك وجميع الحاويات الخاصة بك!
احصل على حاوية اللمحات:
docker pull nicolargo/glances:latest-full
العلامات التالية متاحة:
قم بتشغيل الإصدار الأخير من حاوية Glances في وضع وحدة التحكم :
docker run --rm -e TZ="${TZ}" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host --network host -it nicolargo/glances:latest-full
افتراضيًا، يتم استخدام الملف /etc/glances/glances.conf (استنادًا إلى docker-compose/glances.conf).
بالإضافة إلى ذلك، إذا كنت تريد استخدام ملف Glas.conf الخاص بك، فيمكنك إنشاء ملف Dockerfile الخاص بك:
FROM nicolargo/glances:latest
COPY glances.conf /root/.config/glances/glances.conf
CMD python -m glances -C /root/.config/glances/glances.conf $GLANCES_OPT
بدلاً من ذلك، يمكنك تحديد شيء ما على نفس المنوال مع خيارات تشغيل عامل الإرساء (لاحظ معلمات إعداد متغير البيئة GLANCES_OPT لأمر بدء تشغيل اللمحات):
docker run -e TZ="${TZ}" -v $HOME/.config/glances/glances.conf:/glances.conf:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host -e GLANCES_OPT="-C /glances.conf" -it nicolargo/glances:latest-full
حيث يكون $HOME/.config/glances/glances.conf عبارة عن دليل محلي يحتوي على ملفGLances.conf الخاص بك.
قم بتشغيل الحاوية في وضع خادم الويب :
docker run -d --restart="always" -p 61208-61209:61208-61209 -e TZ="${TZ}" -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host nicolargo/glances:latest-full
للحصول على قائمة كاملة بالخيارات، راجع صفحة وثائق Glances Docker.
تتوفر اللمحات في العديد من توزيعات Linux، لذا من المفترض أن تكون قادرًا على تثبيتها باستخدام مدير الحزم المفضل لديك. انتبه إلى أنه عند استخدام هذه الطريقة، قد لا تكون حزمة نظام التشغيل لـ Glances هي الإصدار الأحدث ويتم تمكين المكونات الإضافية الأساسية فقط.
ملاحظة: لم تعد حزمة دبيان (وجميع التوزيعات الأخرى المستندة إلى دبيان) تتضمن ملفات إحصائيات JS التي تستخدمها واجهة الويب (راجع issue2021
). إذا كنت تريد إضافته إلى تثبيت Glances لديك، فاتبع التعليمات: issue2021comment
. في الإصدار 4 من Glances والإصدارات الأحدث، يكون المسار إلى ملف الإحصائيات قابلاً للتكوين (راجع issue2612
).
لتثبيت الحزمة الثنائية:
# pkg install py39-glances
لتثبيت اللمحات من المنافذ:
# cd /usr/ports/sysutils/py-glances/
# make install clean
إذا كنت لا تريد استخدام البرنامج النصي للتثبيت التلقائي، فاتبع هذا الإجراء.
يمكن لمستخدمي macOS تثبيت Glances باستخدام Homebrew
أو MacPorts
.
$ brew install glances
$ sudo port install glances
قم بتثبيت Python لنظام التشغيل Windows (يتم شحن Python 3.4+ مع النقطة) ثم قم بتشغيل الأمر التالي:
$ pip install glances
أنت بحاجة إلى جهاز ذي جذر وتطبيق Termux (متوفر على متجر Google Play).
ابدأ تشغيل Termux على جهازك وأدخل:
$ apt update
$ apt upgrade
$ apt install clang python
$ pip install fastapi uvicorn jinja2
$ pip install glances
وبدء النظرات:
$ glances
يمكنك أيضًا تشغيل Glances في وضع الخادم (-s أو -w) لمراقبة جهاز Android الخاص بك عن بُعد.
لتثبيت اللمحات من المصدر:
$ pip install https://github.com/nicolargo/glances/archive/vX.Y.tar.gz
ملحوظة : رؤوس Python مطلوبة لتثبيت psutil.
يتوفر كتاب طبخ رائع Chef
لمراقبة بنيتك التحتية: https://supermarket.chef.io/cookbooks/glances (بفضل أنطوان روير)
يمكنك تثبيت Glances باستخدام Puppet
: https://github.com/rverchere/puppet-glances
يتوفر دور Glances Ansible
: https://galaxy.ansible.com/zaxos/glances-ansible-role/
بالنسبة للوضع المستقل، فقط قم بتشغيل:
$ glances
بالنسبة لوضع خادم الويب، قم بتشغيل:
$ glances -w
وأدخل عنوان URL http://<ip>:61208
في متصفح الويب المفضل لديك.
بالنسبة لوضع العميل/الخادم، قم بتشغيل:
$ glances -s
على جانب الخادم وتشغيل:
$ glances -c < ip >
على العميل واحد.
يمكنك أيضًا اكتشاف وعرض جميع خوادم Glances المتوفرة على شبكتك أو المحددة في ملف التكوين:
$ glances --browser
يمكنك أيضًا عرض الإحصائيات الأولية على stdout:
$ glances --stdout cpu.user,mem.used,load
cpu.user: 30.7
mem.used: 3278204928
load: {'cpucore': 4, 'min1': 0.21, 'min5': 0.4, 'min15': 0.27}
cpu.user: 3.4
mem.used: 3275251712
load: {'cpucore': 4, 'min1': 0.19, 'min5': 0.39, 'min15': 0.27}
...
أو بتنسيق CSV بفضل خيار stdout-csv:
$ glances --stdout-csv now,cpu.user,mem.used,load
now,cpu.user,mem.used,load.cpucore,load.min1,load.min5,load.min15
2018-12-08 22:04:20 CEST,7.3,5948149760,4,1.04,0.99,1.04
2018-12-08 22:04:23 CEST,5.4,5949136896,4,1.04,0.99,1.04
...
أو بتنسيق JSON بفضل خيار stdout-json (السمة غير مدعومة في هذا الوضع حتى يكون لديك كائن JSON حقيقي في الإخراج):
$ glances --stdout-json cpu,mem
cpu: {"total": 29.0, "user": 24.7, "nice": 0.0, "system": 3.8, "idle": 71.4, "iowait": 0.0, "irq": 0.0, "softirq": 0.0, "steal": 0.0, "guest": 0.0, "guest_nice": 0.0, "time_since_update": 1, "cpucore": 4, "ctx_switches": 0, "interrupts": 0, "soft_interrupts": 0, "syscalls": 0}
mem: {"total": 7837949952, "available": 2919079936, "percent": 62.8, "used": 4918870016, "free": 2919079936, "active": 2841214976, "inactive": 3340550144, "buffers": 546799616, "cached": 3068141568, "shared": 788156416}
...
وRTFM، دائمًا.
للحصول على التوثيق الكامل، قم بإلقاء نظرة على موقع readthedocs.
إذا كان لديك أي سؤال (بعد RTFM!)، فيرجى نشره في منتدى الأسئلة والأجوبة الرسمي.
يمكن لللمحات تصدير الإحصائيات إلى: ملف CSV
، ملف JSON
، InfluxDB
، Cassandra
، CouchDB
، OpenTSDB
، Prometheus
، StatsD
، ElasticSearch
، RabbitMQ/ActiveMQ
، ZeroMQ
، Kafka
، Riemann
، Graphite
و RESTful
server.
إذا كنت تريد المساهمة في مشروع Glances، فاقرأ صفحة wiki هذه.
هناك أيضًا دردشة مخصصة لمطوري Glances:
نيكولاس هينيون (@nicolargo) <[email protected]>
يتم توزيع اللمحات بموجب ترخيص LGPL الإصدار 3. راجع COPYING
لمزيد من التفاصيل.