לאחרונה עברתי לשימוש ב Docker Containers עבור השירותים והאפליקציות בהם אני משתמש. אין ספק שהיכול לפרוס שירותים בזמן קצר ומבלי "ללכלך" את מערכת ההפעלה המארחת מעניקים יתרון משמעותי. אך עם כל זאת משהו היה חסר לי, וזה היכולת לנטר את המשאבים הנצרכים על ידי הקונטיינרים השונים וכן את משאבי המערכת המארחת. לכן התחלתי לחפש אחר פתרון ניטור עצמי מבוסס קוד פתוח שיכול לספק לי נתוני אחסון, מדדים והתראות על שרתים פיזיים, מכונות וירטואליות, קונטיינרים ושירותים שפועלים בתוך הקונטיינרים. החיפוש הוביל אותי למערכת המורכבת מקונטיינרים של Prometheus, Grafana, Alert Manager ועוד.
למה דווקא Prometheus?
- ה stack כולו יכול להפרס באמצעות קונטיינרים.
- נבנתה עבור מערכות מבוזרות ותשתיות.
- איסוף נתונים סקלאבילי שאינו מסתמך על אחסון מבוזר.
- שירות גמיש בעל שירות Descovery עם תמיכה מובנת לשירותים כמו Azure, Kubernetesm, EC2 ועוד.
שלב א' – התקנת ה Stack על גבי דוקר:
אם ברצונכם להשתמש בפרוייקט שמצאתי, ממליץ לכם להציץ עליו בריפו dockprom בגיטהאב. בגדול ה stack הזה מכיל את כל שצריך ותוכלו להשתמש בו as is, אך כמובן שתוכלו גם להרחיב אותו ולהוסיף מדידות שונות. במדריך זה אסביר בקצרה איך להטמיע את ה stack הזה אשר ניתן להתקנה באמצעות פקודה בודדת.
על מנת להתקין את ה stack במלואו, כנסו לתיקיית הדוקר שלכם והריצו את הפקודה הבאה:
git clone https://github.com/stefanprodan/dockprom
כעת, כנסו לתיקייה של ה stack:
cd dockprom
והריצו את הפקודה הבאה בכדי להרים את כל הקונטיינרים:
ADMIN_USER=admin ADMIN_PASSWORD=admin docker-compose up -d
ואלה הקונטיינרים שיתווספו בעת ההתקנה:
- Prometheus – פורט 9090.
- AlertManager – פורט 9003.
- Grafana – פורט 3000.
- NodeExporter
- cAdvisor
- Caddy
- PushGateway
כעת, פתחו את הדפדפן ונווטו אל http://server-ip:3000 והתחברו באמצעות המשתמש admin וסיסמה admin (תוכלו לשנות את זה על ידי החלפת שם המשתמש והסיסמה בפקודת ה docker-compose). המערכת מגיעה מקונפגת מראש לעבוד עם מקור הנתונים הבא:
- שם: Prometheus
- סוג: Prometheus
- כתובת: http://prometheus:9090
- שיטת חיבור: Proxy
Docker Host Dashboard
Docker host Dashboard מציג נתונים אודות השרת המארח:
- Uptime
- מספר ליבות
- זכרון (בשימוש, זמין ועוד).
- תעבורת רשת.
- ועוד…
Docker Containers Dashboard
Dashboard זה מציג נתונים אודות הקונטיינרים השונים שרצים על השרת:
- שימוש כללי של הקונטיינרים במעבד.
- שימוש של הקונטיינרים בזכרון.
- תעבורת רשת.
- ועוד…
Monitor Services Dashboard
Dashboard זה מנטר את המשאבים של הקונטיינרים האחראים לניטור.
בהצלחה!
Leave a Reply