מדריך מקיף על Elastic Stack - חלק 4 - kibana

זה החלק הרביעי במדריך על Elastic Stack. בחלק הראשון עסקנו ב-filebeat, בשני ב-logstash, בשלישי ב-elasticsearch ובחלק הזה נעסוק בכלי הרביעי בשרשרת - kibana:



זהו כלי הויזואליזציה. ניתן לבנות בעזרתו גרפים, dashboards של גרפים, חיפושים, תשאול ה-DB, grok debugger ועוד דברים רבים.

קונפיגורציה

לצורך הקינפוג של Kibana נשתמש בקובץ kibana.yml שנמצא בספריה /etc/kibana/.

השדות הבסיסיים הם:

server.port – ה-port שדרכו kibana יוצג כ-UI. למשל אם ה-port הוא 5601 כדי להעלות את ה-UI נכנס בדפדפן שלנו ל- http://serverIP:5601

server.host – ה-IP או שם המכונה שעליה ירוץ kibana.

elasticsearch.hosts – שם המכונה וה-port שבו רץ elasticsearch.

אם יש בעיות להריץ את kibana כדאי להסתכל על הלוג שנמצא ב- /var/log/kibana

הרצת kibana

לאחר שקינפגנו את ה-elasticsearch אנחנו מעוניינים להריץ אותו כ-service. לצורך כך נשתמש בפקודה:
service kibana start
אם אנחנו רוצים לראות מה מצב ה-service נשתמש בפקודה:
service kibana status
ואם אנחנו רוצים לעצור את הריצה, נכתוב:
service kibana stop

הסבר על ה-UI

הכלי נראה כך (לחצו על התמונה להגדלה):


האייקונים בצד שמאל מנווטים בין המסכים השונים של kibana. אם נלחץ על הכפתור שמסומן בעיגול אדום נוכל לראות את השם של כל כפתור:


נסביר על חלק מהמסכים:

Discover – מסך שמאפשר לחפש ב-DB ולבנות שאילתות

Visualize – מסך לבניית גרפים ושאר ויזואליזציות

Dashboard – מסך שמאפשר לבנות לוח של גרפים שיצרנו

Dev Tools – מאפשר שימוש ב-API של elasticsearch, וכולל גם grok debugger

Management – מאפשר לראות את האינדקסים הקיימים, להגדיר index pattern, לקנפג את Kibana ועוד.

איך משתמשים ב-Kibana

דבר ראשון שצריך לעשות כשמתחילים להשתמש ב-Kibana זה ליצור index pattern.

מה זה הדבר הזה? שאלה טובה, בחלק השלישי של המדריך הסברנו על elasticsearch וראינו שהצורה שבה ה-DB בנוי היא:

index/mapping/document

כל הנתונים (ה-documents) נמצאים תחת אינדקסים. כדי לבצע חיפושים ב-Kibana צריך להגדיר באיזה אינדקסים לחפש. לצורך כך בונים index pattern. תחת Management נלך ל-Index Patterns ונלחץ על Create index pattern. במסך שיפתח נכניס לשדה Index pattern את הטקסט שמתאר את קבוצת האינדקסים שמעניינת אותנו. 

למשל אם יש לנו אינדקסים שמתחילים בשם מסוים ואח"כ יש תאריך – my_index_2020_05, my_index_2020_04, נוכל ליצור תבנית כזו my_index_* כדי לכלול את כל האינדקסים מהסוג הזה. או my_index_2020_* כדי לכלול את כל האינדקסים מסוג זה שהם משנת 2020.

אחרי שכתבנו את שם ה-index pattern נלחץ על Next step ואז תהיה לנו אפשרות לבחור שדה מסוים שייצג את הזמן כדי שעל ידו נוכל לסנן את התוצאות על פי זמן. זה לא חובה אבל זה יכול לעזור אם יש לנו נתונים על פי זמן.

נלחץ על Create index pattern ויש לנו index pattern חדש.

Discover

נעבור לאפשרות של Discover

בצד שמאל יש drop down list שמכילה את רשימת ה-index patterns שיצרנו. נבחר אחד מתוך הרשימה ועליו יתבססו החיפושים שלנו.

ממשק החיפוש מאוד נוח וידידותי. קודם כל אפשר לחפש כל טקסט בצורה חופשית. למשל אם אכניס לתיבת החיפוש את הטקסט error הוא ימצא לי את כל ה-documents שמכילים את הטקסט error באינדקסים שבקבוצת ה-Index pattern שבחרנו.

ניתן גם לבצע חיפושים ממוקדים יותר. ברגע שנתחיל לכתוב שם של שדה תיפתח רשימה של השלמה אוטומטית לפי השדות הקיימים ונוכל לבחרו עם העכבר שדה שלפיו אנחנו רוצים לחפש. לאחר שנבחר את שם השדה תיפתח לנו רשימה של סימנים עם הסבר קטן מה מסמל כל סימן:

למשל בדוגמה הבאה:

ייצרתי חיפוש של כל המסמכים ב-Index pattern שבהם DB_time גדול או שווה ל-3.

לאחר מכן אם נלחץ על רווח יציעו לנו עוד אפשרויות של הוספת תנאים אחרים לחיפוש ע"י and/or.

ניתן לשמור את החיפוש ולתת לו שם. לאחר מכן ניתן ליצור גרפים שמתבססים על חיפוש ששמרנו.

 Visualize

נעבור למסך Visualize. נלחץ על הכפתור Create visualization. ואז נבחר את סוג הגרף. לכל סוג יש את האפשרויות שלו. בתור דוגמה ניקח את הגרף שנקרא Line. ואז יפתח לנו חלון עם הכותרת New Line / Choose a source. במסך הזה צריך לבחור על מה יתבסס הגרף. ניתן לבחור Index pattern או search ששמרנו.

בצד שמאל נראה כותרת של Metrics ותחתיה Y-axis

נרחיב את החלון של Y-axis ונבחר באיזה שיטה נשתמש בציר ה-Y. בדיפולט השיטה היא count. השיטה הזו סופרת את מה שנבחר בציר ה-x. יש עוד אפשרויות כמו max/min, average ועוד.

נלחץ בחלון התחתון שנקרא Buckets על Add ונבחר ב-X-axis. ניתן לבחור את ציר ה-x שייצג תאריך, או שייצג שדה מסוים ועוד אפשרויות נוספות.

כדי להכיר את זה מומלץ לשחק עם זה ולנסות לבנות גרפים שמעניינים אתכם.

לאחר מכן, ניתן לשמור את הגרף, ואז אפשר לבנות גרפים נוספים ולבסוף ליצור dashboard של גרפים.

יש עוד הרבה מאוד דברים ב-Kibana, אבל אנחנו כיסינו את הבסיס. אגב, חלק מהאפשרויות המתקדמות כמו Machine Learning הן בתשלום.


עד כאן להפעם.

אם אהבתם, תכתבו משהו למטה...