כניסה לגריילוג עם מגף האביב

1. הקדמה

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

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

במדריך זה נראה כיצד להקים שרת Graylog ולשלוח אליו הודעות יומן מיישום Spring Boot.

2. הגדרת Graylog

ישנן מספר דרכים להתקין ולהפעיל את Graylog. במדריך זה נדון בשתי הדרכים המהירות ביותר: Docker ו- Amazon Web Services.

2.1. דוקר

הפקודות הבאות יורידו את כל תמונות ה- Docker הנדרשות ויתחילו מיכל לכל שירות:

$ docker run --name mongo -d mongo: 3 $ docker run --name elasticsearch -p 9200: 9200 -p 9300: 9300 \ -e ES_JAVA_OPTS = "- Xms2g -Xmx4g" \ -e "discovery.type = single- צומת "-e" xpack.security.enabled = שקר "\ -e" bootstrap.memory_lock = true "- ulimit memlock = -1: -1 \ -d docker.elastic.co/elasticsearch/elasticsearch:5.6.11 $ docker run - name graylog --link mongo - קישור אלסטיות חיפוש \ -p 9000: 9000 -p 12201: 12201 -p 514: 514 -p 5555: 5555 \ -e GRAYLOG_WEB_ENDPOINT_URI = "// 127.0.0.1:9000/api "\ -d אפור / אפור: 2.4.6-1

לוח המחוונים של Graylog זמין כעת באמצעות כתובת ה- URL // localhost: 9000 / ושם המשתמש והסיסמה המוגדרים כברירת מחדל הם שניהם מנהל.

הגדרת Docker אמנם הפשוטה ביותר, אך היא דורשת כמות משמעותית של זיכרון. זה גם לא עובד ב- Docker עבור Mac, ולכן ייתכן שהוא לא מתאים לכל הפלטפורמות.

2.2. שירותי האינטרנט של אמזון

האפשרות הקלה הבאה להגדרת Graylog לבדיקה היא Amazon Web Services. Graylog מספק AMI רשמי הכולל את כל התלות הנדרשת, אם כי זה דורש תצורה נוספת לאחר ההתקנה.

אנו יכולים לפרוס במהירות מופע EC2 עם ה- Graylog AMI על ידי לחיצה כאן ובחירת אזור. Graylog ממליץ להשתמש במופע עם זיכרון 4GB לפחות.

לאחר תחילת המופע, עלינו SSH למארח ולבצע מספר שינויים. הפקודות הבאות יגדירו את שירות Graylog עבורנו:

$ sudo graylog-ctl אכף-ssl $ sudo graylog-ctl set-external-ip //: 443 / api / $ sudo graylog-ctl להגדיר מחדש

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

לוח המחוונים של Graylog זמין כעת באמצעות כתובת ה- URL /// ושם המשתמש והסיסמה המוגדרים כברירת מחדל הם שניהם מנהל.

2.3. מתקנים אחרים של גריילוג

מלבד Docker ו- AWS, קיימות גם חבילות Graylog עבור מערכות הפעלה שונות. עם גישה זו, עלינו להקים שירות ElasticSearch ו- MongoDB.

מסיבה זו, הרבה יותר קל להתקין את Docker ו- AWS, במיוחד למטרות פיתוח ובדיקה.

3. שליחה בהודעות יומן

עם הפעלת Graylog, עלינו להגדיר כעת את היישום Spring Boot שלנו שישלח הודעות יומן לשרת Graylog.

כל מסגרת רישום של Java יכולה לתמוך בשליחת הודעות לשרת Graylog באמצעות פרוטוקול GELF.

3.1. Log4J

בשלב זה מסגרת הרישום היחידה הנתמכת רשמית היא Log4J. Graylog מספק appender, אשר זמין במרכז Maven.

אנו יכולים לאפשר זאת על ידי הוספת התלות הבאה של Maven לכל אחד מהם pom.xml קוֹבֶץ:

 org.graylog2 gelfj 1.1.16 

עלינו גם לא לכלול את מודול המתנע לכניסה בכל מקום בו אנו משתמשים במודול המתנע של Spring Boot:

 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-logging 

כעת אנו יכולים להגדיר מתאם חדש אצלנו log4j.xml קוֹבֶץ:

פעולה זו תגדיר את כל הודעות היומן ברמת INFO ומעלה לעבור למגין Graylog, שבתורו שולח את הודעת היומן לשרת Graylog.

3.2. מסגרות רישום אחרות

בשוק גריילוג יש ספריות נוספות התומכות במגוון מסגרות רישום אחרות כגון Logback, Log4J2 ועוד. רק היזהר שספריות אלה אינן מתוחזקות על ידי Graylog. לחלקם נטושים, ובאחרים אין כמעט תיעוד.

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

3.3. מרכב צד של אספן גריילוג

אפשרות נוספת לאיסוף בולי עץ היא Gray Sid Collar Sidecar. מכונית הצד היא תהליך שעובר לאורך אספן קבצים, ושולח תוכן קובץ יומן לשרת Graylog.

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

4. הצגת הודעות ב- Graylog

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

5. מסקנה

Graylog הוא רק אחד משירותי צבירת היומנים הרבים. זה יכול לחפש במהירות מיליוני הודעות יומן, לדמיין נתוני יומן בזמן אמת ולשלוח התראות כאשר תנאים מסוימים מתקיימים.

שילוב Graylog ביישום Spring Boot דורש רק כמה שורות תצורה וללא כל קוד חדש.

דוגמאות קוד, כמו תמיד, ניתן למצוא ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found