ELK Stack הינו פלטפורמה המאפשרת למשתמשים לאגור ולעבד מידע ממספר מקורות ולשמר אותם במאגר נתונים מרכזי.
ה- ELK Stack מורכב מהרכיבים הבאים:
- Elasticsearch הינו קוד פתוח שמאפשר חיפוש טקסט מלא וגם מנוע ניתוחי, המבוסס על מנוע חיפוש Apache Lucene.
- Logstash הינו קוד פתוח שאוגר קבצי לוג ממספר מקורות ומבצע בהם שיפורים ושינויים בהתאם.
- Kibana הינו קוד פתוח שמאפשר שכבת הדמיה על גבי Elasticsearch ולבצע ניתוח על המידע שמתקבל.
- Beats הינם סוכנים קלים מותקנים על מארחים של edge שמטרתו לאסוף סוגים שונים של נתונים והעברתם ל- Stack.
יחד, הם משמשים לניטור, פתרון בעיות ואבטחת סביבת IT (אם כי ישנם עוד שימושים ב- ELK Stack כגון BI וניתוח אתרים).
Beats ו- Logstash דואגים לאיסוף ועיבוד הנתונים, Elasticsearch מבצע אינדקס ומאחסן את המידע. Kibana מספקת ממשק משתמש לשאילתה והצגת נתונים.
מדוע ELK Stack פופולריים?
- היא מספקת את הצורך בניהול ואנליזה של קבצי לוג, ניטור אפליקציות מודרניות.
- תשתית ה- IT שמספק ELK מאפשר למפתחים לנטר תחת סביבות מבוזרות, דינמיות ורועשות.
- היא מספקת פלטפורמה עוצמתית שאוספת ומעבדת נתונים ממספר מקורות, מאחסנת אותם במאגר נתונים מרכזי אחד שיכול להתרחב בהתאם ומספק כלים לניתוח המידע.
- ארגוני ה- IT מעדיפים מוצרי קוד פתוח כיוון שזה מונע מהם להיצמד מול ספק יחיד ומקל על הכנסת עובדים חדשים.
- קיים קהילה שכל הזמן מניעה התחדשות, תוכנות חדשות ומספקת עזרה במקרה הצורך.
- באופן יחסי למתחרה שלה (Splunk), היא מספקת את השירות שלך בעלות הרבה יותר נמוכה.
- Splunk הובילה בתחום, אך השרות שהם מציעים משתלם באופן יחסי במיוחד עבור חברות קטנות כגון מוצרי SaaS וסטארטאפים. ל- Splunk יש כ- 15,000 לקוחות בעוד שמספר ההורדות עבור תוכנת ה- ELK Stack עובר את מספר הלקוחות של Splunk בחודש. אולי ל- ELK Stack לא מכיל את כל התכונות של Splunk, אבל אין צורך במרביתם. ה-ELK Stack הינה פלטפורמת ניהול וניתוחית פשוטה אך חזקה שעולה חלק קטן ממחיר Splunk.
מדוע ניתוח לוגים נהיה כה חשוב?
בעולם התחרותי של היום, ארגונים אינם יכולים להרשות לעצמם שנייה שהשבתה או איטיות ביישומים שלהם. בעיות אלו יכולים לפגוע במותג ובמקרים מסוימים להתבטא בהפסד הכנסות. מאותה סיבה, ארגונים אינם יכולים להרשות גם לעצמם להתפשר, אי עמידה בתקנים רגולטוריים עלולה לגרום לקנסות ולפגוע ולפגוע בעסק.
כדי לוודא שאפליקציות זמינות, ביצועיות מאובטחות בכל עת, מהנדסים מסתמכים על סוגי הנתונים השונים שנוצר מהיישומים שלהם או התשתיות שתומכות בהם. נתונים אלה, בין אם הם לוג ו/או מדדים מאפשרים ניטור של מערכות אלה ופתרון בעיות שהן מתרחשות.
לוגים תמיד היו קיימים וכן גם כלים שנועדו לנתח אותם. אולם מה שהשתנה הוא ההבנה של הארכיטקטורות שמפיקות את הלוגים ואת כמות הלוגים שהן מפיקות. תם העידן שבו מהנדסים נהגו לבדוק בלוגים בכל מערכת בעזרת SSH פשוט.
כאן ה-ELK מביא את הפתרון עבור המהנדסים, מאפשר לוודא שכל האפליקציות זמינות ומתפקדות בכל עת.
מערכות ניהול לוגים מודרניות כוללות את הפונקציונליות הבאות:
- איסוף - לאגור ולשלוח לוגים ממספר מקורות.
- עיבוד - לשנות את תצורת הלוגים לתצוגה נוחה וקלה לניתוח.
- אחסון - ביצוע שמירה של נתונים לטווח ארוך בשביל מעקב, ניתוח ובשביל אבטחה.
- ניתוח - ניתוח באמצעות שאילתות ויצירת תצוגה גרפית להצגת התוצאות.
התקנת ELK
ניתן להתקין את ה- ELK במגוון שיטות, מערכות הפעלה וסביבות. ניתן להתקין את ה- ELK ברמה המקומית, בענן, ניתן גם לשלב באמצעות Docker וגם מערכות ניהוליות אחרות כגון Ansible, Puppet וב- Chef. ישנה אפשרות לבצע התקנה באמצעות tarball או .zip
רוב ההתקנות זהות מסביבה אחת לאחרת ולא נוכל לכסות את כל התרחישים השונים, ניתן דוגמה להתקנת כל הרכיבים הבאים ב- Linux:
Elasticsearch, Logstash, Kibana ו- Bearts.
כדי להתקין כראוי, עליך להכין מכונה בעלת AWS Ubuntu 18.04 (בדוק 20.04) שמשתמשת בזיכרון המקומי שלה. מופע EC2 מאותחל בתת הרשת הציבורית של ה-VPC ולאחר מכן מוגדרת חבילת אבטחה (firewall) שתאפשר גישה מכל מקום באמצעות SSH ו-TCP 5601 (Kibana).
לבסוף נצטרך להגדיר כתובת IP גמישה ולשייך אותה למכונה כדי להתחבר לאינטרנט.
*** ההתקנות הבאות מבוססות על גרסה 6.2 גרסאות מתקדמות יותר ידרשו התקנות נוספות כגון X-Pack עבור התקנות בסיסיות.
קהל יעד קורס ELK
- מנהלי מערכת.
- מהנדסי QA.
- מהנדסי DevOps.
- מנהיג קבוצה.
- מתכנתי/מהנדסי מערכות לינוקס.
ידע ב ELK Stack הכרחי למהנדסי DevOps
במהלך לימודי DevOps ההתמקדות ב-ELK Stack היא חלק בלתי נפרד מההכשרה. ELK הוא ראשי תיבות של שלושה מוצרים: Elasticsearch, Logstash ו-Kibana, המשמשים לאיסוף, אנליזה וויזואליזציה של נתוני לוג. בקורס, המשתתפים לומדים איך להגדיר, להתקין ולהפעיל את ה-ELK Stack, ואיך להשתמש בו כדי לנתח ולהבין את הנתונים הנגרמים מהאפליקציות והשירותים השונים. הידע בכלים אלה מאפשר לצוות ה-DevOps לזהות בצורה מהירה בעיות ואתגרים, לקבל החלטות מבוססות על מידע אמין ולשפר את התהליכים בארגון.