Logstash ב-Docker

Logstash B Docker



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

במדריך זה, נדריך אותך בתהליך של הפעלת Logstash במיכל Docker עם תצורה בסיסית.

דרישות:

לפני שנתחיל עם המדריך, ודא שיש לך את הדברים הבאים:







  1. התקנת Docker במחשב המארח שלך (מומלצת גרסה 23 ומעלה)
  2. התקנת Docker Compose במחשב שלך

עם עמידה בדרישות הנתונות, נוכל להמשיך עם ההדרכה.



הגדר את קובץ התצורה של Logstash

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



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





צור קובץ בשם 'logstash.conf' והוסף את התצורה באופן הבא:

קלט {
קובץ {
נתיב => '/var/log/apache/access.log'

start_position => 'התחלה'

sincedb_path => '/dev/null'

ignore_older => 0
}
}

מסנן {
אם [הודעה] =~ 'שְׁגִיאָה' {
גרוק {
התאמה => { 'הוֹדָעָה' => '%{COMBINEDAPACHELOG}' }
}
}
}

פלט {
קובץ {
נתיב => '/var/log/apache/error_logs.log'
}
}

הקובץ הקודם מגדיר את התצורה כפי שמוצג להלן:

  1. קטע קלט - קטע הקלט משתמש בתוסף קלט הקבצים כדי לקרוא את קובץ היומן של Apache שנמצא ב- /var/log/apache/access.log.
    • לאחר מכן קבענו את מיקום ההתחלה בהתחלה המאפשר ל-Logstash לקרוא את כל הקובץ מההתחלה.
    • Sincedb_path - פרמטר זה מאפשר לנו להשבית את המעקב אחר sincedb של Logstash על ידי הגדרת הערך ל-/dev/null. זה מבטיח ש-Logstash תמיד קורא מתחילת הקובץ.
    • Ignore_older - הגדרת הערך של פרמטר זה ל-0 מאפשרת ל-Logstash לעבד את כל הערכים של קובץ היומן.
  2. קטע סינון - בקטע המסנן, אנו מגדירים את תבנית הסינון כדי לבדוק אם הודעת היומן מכילה את המילה ERROR. אתה יכול להתאים את התנאים עבור בלוקי הסינון כדי לסנן עבור התאמות מדויקות יותר בקובץ.
    • אם התנאי מתקיים, אנו משתמשים במסנן grok כדי לנתח את שורת היומן של Apache באמצעות דפוס COMBINEDAPACHELOG שהוא דפוס מובנה ב-Logstash כדי לנתח את יומני Apache.
  3. סעיף פלט - סעיף זה מאפשר לנו להגדיר את פורמט הפלט עבור הערכים התואמים.
    • במקרה שלנו, אנו כותבים אותם לקובץ /var/log/apache/error_logs.log באמצעות פרמטר הנתיב.

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

אנא עיין במידע נוסף על יצירה והגדרה של צינורות Logstash במשאב התיעוד הבא:

https://www.elastic.co/guide/en/logstash/current/configuration.html

צור את ה- Dockerfile

לאחר שנגדיר את תצורות Logstash, נוכל להמשיך וללמוד כיצד להפעיל את הקונטיינר. בתוך אותה ספרייה כמו הקובץ 'logstash.conf', צור קובץ חדש בשם 'Dockerfile'.

ערוך קובץ זה והוסף את הערכים באופן הבא:

מאת docker.elastic.co/logstash/logstash:8.9.2

COPY logstash.conf /usr/share/logstash/pipeline/logstash.conf

בדוגמה הנתונה, אנו מגדירים את תמונת הבסיס כתמונת Logstash הרשמית באמצעות גרסה 8.9.2.

לאחר מכן אנו מעתיקים את הקובץ 'logstash.conf' שיצרנו ל- /usr/share/logstash/pipeline/logstash.conf בתמונה.

בנה את תמונת Docker

לאחר מכן, נווט אל הספרייה המכילה את קובץ התצורה Dockerfile ו-Logstash. הפעל את הפקודה הבאה כדי לבנות את התמונה:

$ בניית docker custom-logstash-image .

הפעל את ה-Logstash Container

כעת, כשבנינו את תמונת Docker, אנו יכולים להריץ קונטיינר Logstash באמצעות פקודת Docker 'run' באופן הבא:

$ דוקר ריצת --שֵׁם logstash-server custom-logstash-image

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

אמת את יומני ה-Logstash Container

כדי לוודא ש-Logstash פועל כהלכה, תוכל לבדוק את יומני המאגר באמצעות הפקודה הבאה:

$ יומני docker < שם_מיכל >

תְפוּקָה:

סיכום

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