Skip to main content

Syslogd לינוקס פיקוד יוניקס

Linux System Logs and the Syslog Standard (יוני 2026)

Linux System Logs and the Syslog Standard (יוני 2026)
Anonim

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

רישום המערכת מסופק על ידי גירסה שלsyslogd(8) נגזר ממקורות מלאי BSD. תמיכה ברישום הקרנל מסופק על ידיklogd(8) כלי המאפשר הקרנל בכניסה להתבצע באופן עצמאי או כלקוח של syslogd.

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

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

קובץ ההגדרות הראשי /etc/syslog.conf או קובץ חלופי, שניתן עם-f , הוא קרא בעת האתחול. כל השורות המתחילות בסימן האש ("#" ") וקווים ריקים מתעלמות. אם מתרחשת שגיאה במהלך ניתוח הקו כולו הוא התעלם.

תקציר

syslogd - א שקע ד -f קובץ config -h -L hostlist -M מרווח -n -p שקע -r - s דומיין -v -איקס

אפשרויות

- א שקע

באמצעות ארגומנט זה ניתן לציין שקעים נוספיםsyslogd יש להקשיב. זה נחוץ אם אתה הולך לתת daemon לרוץ בתוך chroot () הסביבה. אתה יכול להשתמש עד 19 שקעים נוספים. אם הסביבה שלך זקוקה אפילו יותר, עליך להגדיל את הסמלMAXFUNIX בתוך קובץ המקור syslogd.c. דוגמה daemon chroot () daemon מתואר על ידי אנשים מ OpenBSD ב http://www.psionic.com/papers/dns.html.

ד

הפעלת מצב איתור באגים. שימוש זה daemon לא להמשיךמזלג(2) להציב את עצמו ברקע, אבל מול זה להישאר בחזית ולכתוב מידע debug הרבה על הנוכחי tty. לקבלת מידע נוסף, עיין בסעיף 'ציתות'.

-f קובץ config

ציין קובץ תצורה חלופי במקום /etc/syslog.conf , המהווה את ברירת המחדל.

-h

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

-L hostlist

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

-M מרווח

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

-n

הימנע רקע אוטומטי. זה נחוץ במיוחד אםsyslogd הוא התחיל ונשלט על ידיinit(8).

-p שקע

ניתן לציין שקע דומיין חלופי של Unix במקום / dev / log .

-r

אפשרות זו תאפשר למתקן לקבל הודעה מהרשת באמצעות שקע תחום אינטרנט עם שירות syslog (ראה) 5 (. ברירת המחדל היא לא לקבל הודעות מהרשת.

אפשרות זו מוצגת בגירסה 1.3 של חבילת sysklogd. לידיעתך, התנהגות ברירת המחדל היא ההפך מדרך הפעולה של גרסאות ישנות יותר, לכן ייתכן שיהיה עליך להפעיל אותה.

- s דומיין

ציין שם תחום שיש להפשיטו לפני הרישום. ניתן להגדיר דומיינים מרובים באמצעות הפרדת המעי הגס (':' '). לידיעתך, לא ניתן לציין תת-דומיינים אלא רק דומיינים שלמים. לדוגמה, אםNorth North.de הוא ציין את הרישום המארח פותר satu.infodrom.north.de שום תחום יהיה לחתוך, תצטרך לציין שני תחומים כמו:-s North.de:infodrom.north.de.

-v

הדפס גרסה ויציאה.

-איקס

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

אותות

Syslogd מגיב לקבוצה של אותות. אתה יכול בקלות לשלוח אות אלsyslogd באמצעות:

להרוג -SIGNAL `חתול / var / הפעלה / syslogd.pid`

נאנח

זה מאפשרsyslogd לבצע אתחול מחדש. כל הקבצים הפתוחים סגורים, קובץ התצורה (ברירת המחדל היא /etc/syslog.conf ) יהיה לקרוא מחדש אתsyslog(3) מתקן הוא התחיל שוב.

סיגטרם

הsyslogd ימות.

סיגינט, SIGQUIT

אם מאתר באגים מופעלים, אחרתsyslogd ימות.

SIGUSR1

הפעלה / כיבוי של באגים. ניתן להשתמש באפשרות זו רק אםsyslogd הוא התחיל עםד אפשרויות debug.

SIGCHLD

חכה לילדים אם היו נולדים, בגלל הודעות קיר.

קובץ תצורה הבדלים תחביר

Syslogd משתמשת בתחביר שונה במקצת עבור קובץ התצורה שלו מאשר מקורות BSD המקוריים. במקור כל ההודעות של עדיפות מסוימת ומעלה הועברו לקובץ יומן.

לדוגמה, השורה הבאה גרמה לכל הפלט מהדמונים להשתמש במתקני daemon (Debug הוא העדיפות הנמוכה ביותר, כך שכל גבוה יותר יתאים גם) להיכנס / usr / adm / daemons :

# לדוגמא syslog.conf daemon.debug / usr / adm / daemons

על פי התוכנית החדשה, התנהגות זו נשארת זהה. ההבדל הוא תוספת של ארבעה specifiers חדשים, כוכבית (*) תמליל, סימן המשוואה (=), סימן הקריאה (!), ואת סימן מינוס (-).

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

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

לדוגמה, השורה הבאה ב syslog.conf היה ישיר debug הודעות מכל המקורות אל / usr / adm / debug קובץ.

# לדוגמא syslog.conf *. = Debug / usr / adm / debug

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

לדוגמה, השורות הבאות ירשמו את כל ההודעות של הדואר המתקן, למעט אלה עם פרטי העדיפות / usr / adm / mail קובץ. וכל ההודעות מ news.info (כולל) ל news.crit (למעט) יירשם / usr / adm / news קובץ.

# לדוגמא דואר syslog.conf. * דואר.! = Info / usr / adm / mail news.info; חדשות. Crit / usr / adm / news

אתה יכול להשתמש בו באופן אינטואיטיבי כמפרט חריג. הפרשנות שהוזכרו לעיל היא פשוט הפוכה. עושה את זה אתה יכול להשתמש

mail.none

או

דואר.! *

או

דואר.! deb

כדי לדלג על כל הודעה שמגיע עם מתקן הדואר. יש הרבה מקום לשחק בו. Youנות

ה- ניתן להשתמש רק כדי להקליד שם קובץ אם אתה רוצה להשמיט syncing את הקובץ לאחר כל לכתוב את זה.

זה עלול לקחת קצת אקלום עבור אותם אנשים המשמשים את התנהגות BSD טהור, אבל בודקים ציינו כי תחביר זה הוא קצת יותר גמישה מאשר התנהגות BSD. שים לב ששינויים אלה אינם אמורים להשפיע על הסטנדרטsyslog.conf(5) קבצים. עליך לשנות באופן ספציפי את קבצי התצורה כדי לקבל את ההתנהגות המשופרת.

תמיכה עבור רישום מרחוק

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

כדי לאפשר זאת עליך לציין את-r אפשרות בשורת הפקודה. התנהגות ברירת המחדל היא זוsyslogd לא יקשיב לרשת.

האסטרטגיה היא להקשיב syslogd על שקע תחום יוניקס עבור הודעות יומן שנוצר באופן מקומי. אופן פעולה זה יאפשר ל- syslogd לפעול באופן אינטראקטיבי עם syslog שנמצא בספריית C הסטנדרטית. במקביל syslogd מקשיב על יציאת syslog סטנדרטי עבור הודעות המועברים מן המארחים האחרים. כדי לקבל את העבודה בצורה נכונהשירותים(5) קבצים (בדרך כלל נמצא /וכו ) חייב להיות הערך הבא:

514 / udp

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

כדי לגרום להעברת הודעות למארח אחר, החלף את שורת הקבצים הרגילה syslog.conf קובץ עם שם המארח שאליו יש לשלוח את ההודעות עם @.

לדוגמה, כדי להעביראת כל הודעות למארח מרוחק באמצעות האפשרויות הבאות syslog.conf ערך:

# קובץ תצורה syslogd לדוגמה # הודעות למארח מרוחק קדימה. *.* @שם מארח

כדי להעביר את כלהקרנל הודעות למארח מרוחק קובץ התצורה יהיה כדלקמן:

# דוגמה קובץ תצורה כדי להעביר את כל הקרנל # הודעות למארח מרוחק. kern. * @hostname

אם לא ניתן לפתור את שם המארח המרוחק בעת האתחול, מכיוון ששרת השרת אינו נגיש (ייתכן שהוא מופעל לאחר syslogd) אינך צריך לדאוג.Syslogd יהיה לנסות שוב כדי לפתור את השם עשר פעמים ואז להתלונן. אפשרות נוספת להימנע מכך היא לשים את שם המארח / etc / hosts .

עם רגילsyslogdאתה תקבל syslog- לולאות אם תשלח הודעות שהתקבלו מארח מרוחק לאותו מארח (או יותר מסובך המארח השלישי ששולח אותו בחזרה הראשונה, וכן הלאה). בתחום שלי (Infodrom Oldenburg) אנחנו בטעות יש אחד הדיסקים שלנו מלא עם אותה הודעה אחת. :-(

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

אם המארח המרוחק נמצא באותו תחום כמו המארח,syslogd הוא פועל, רק את שם המארח פשוט יירשם במקום fqdn כולו.

ברשת מקומית אתה יכול לספק שרת יומן מרכזי כדי לקבל את כל המידע החשוב שמר על מכונה אחת. אם הרשת מורכבת מתחומים שונים, אינך צריך להתלונן על רישום שמות מלאים, במקום שמות מארחים פשוטים. ייתכן שתרצה להשתמש בתכונה 'תחום הרצועה'- s של שרת זה. אתה יכול לספר אתsyslogd כדי להפשיט את מספר תחומים אחרים מאשר שרת אחד ממוקם ורק להיכנס לארח פשוט.

משתמש ב-L אפשרות יש גם אפשרות להגדיר מארח יחיד כמכונות מקומיות. זה גם, תוצאות רישום רק שמות המארח שלהם פשוט לא fqdns.

שקע ה- UDP המשמש להעברת הודעות למארחים מרוחקים או לקבלת הודעות מהם נפתח רק כאשר הוא נחוץ. ב משחרר לפני 1.3-23 זה נפתח בכל פעם אבל לא נפתח לקריאה או העברה בהתאמה.

פלט צינורות בשם (FIFOs)

גרסה זו של syslogd יש תמיכה עבור הפלט בכניסה צינורות בשם (pipos). ניתן להשתמש בשם pipo או בשם pipe כמיקום ליעדי יומן על-ידי הוספת סימן פיפי (`| '') לשם הקובץ. זה שימושי עבור באגים. שים לב כי pheno חייב להיות שנוצר עם הפקודה mkfifo לפני syslogd הוא התחיל.

קובץ ההגדרות הבא מפנה הודעות באגים מהקרנל ל- fiveo:

# תצורת הדגימה כדי לנתב באגים של הליבה # הודעות רק ל / usr / adm / debug שהוא צינור בשם #. kern. 49 debug | / usr / adm / debug

חששות התקנה

יש כנראה שיקול חשוב אחד בעת התקנת גירסה זו של syslogd. גירסה זו של syslogd תלויה בעיצוב המתאים של הודעות על ידי הפונקציה syslog. התפקוד של הפונקציה syslog בספריות המשותפות השתנה איפשהו באזור libc.so.4. 2-4. השינוי הספציפי היה לבטל את ההודעה לפני שימסרו אותה / dev / log שקע. תפקוד תקין של גירסה זו של syslogd תלוי סיום null של ההודעה.

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

גם אתsyslogd(8)klogd(8) יכול להיות מופעל מ init (8) או התחיל כחלק רצף rc. אם זה התחיל מ init את האפשרות -n חייב להיות מוגדר, אחרת, תקבל טונות של syslog daemons התחיל. זה בגלל שinit(8) תלוי במזהה התהליך.

איומים ביטחוניים

יש פוטנציאל עבור daemon syslogd לשמש צינור עבור התקף מניעת שירות. תודה לך ג 'ון מוריסון ([email protected]) על התראה לי פוטנציאל זה. תוכנית נוכלים (mer) יכול בקלות להציף את daemon syslogd עם הודעות syslog וכתוצאה מכך קבצי יומן לצרוך את כל החלל שנותר על מערכת הקבצים. הפעלת כניסה על שקעים תחום inet יהיה כמובן לחשוף את המערכת לסיכונים מחוץ תוכניות או אנשים על המחשב המקומי.

קיימות מספר שיטות להגנה על מכונה:

  1. הפעל חומת אש של ליבה כדי להגביל את המארחים או הרשתות שיש להם גישה לשקע 514 / UDP.
  2. רישום יכול להיות מופנה אל מערכת קבצים בודדים או שאינם שורש אשר, אם מלא, לא יפגע במכונה.
  3. מערכת הקבצים ext2 ניתן להשתמש אשר ניתן להגדיר להגביל אחוז מסוים של מערכת הקבצים לשימוש על ידי השורש בלבד.הערה כי זה ידרוש syslogd להיות לרוץ כתהליך שאינו שורש. כמו כן, שים לב כי זה ימנע שימוש של רישום מרחוק מאז syslogd לא יוכל לאגד את שקע 514 / UDP.
  4. השבתת שקעי תחום INet תגביל את הסיכון למכונה המקומית.
  5. השתמש בשלב 4 ואם הבעיה נמשכת ואינה משנית לתוכנית / daemon סוררים, אורך 3.5 מטר (כ- 1 מטר) של מוט פראייר * ויש לך צ'אט עם המשתמש המדובר. מוט מוצץ מוט. - 3/4, 7/8 או 1in. מוט פלדה קשיח, זכר משורבב על כל קצה. שימוש עיקרי בתעשיית הנפט במערב דקוטה המערבית ובמקומות אחרים כדי לשאוב שמן 'למצוץ' מבארות נפט. השימושים המשניים נועדו לבניית מגרשי הבקר ולהתמודדות עם הסרבן מדי פעם או לוחמני.

באגים

בעת הפעלת באגים באמצעותד ואזsyslogd יהיה מאוד verbose על ידי כתיבת הרבה ממה שהיא עושה על stdout. בכל פעם שקובץ התצורה חוזר וקורא מחדש, תראה טבלה, המתאימה למבנה הנתונים הפנימי. טבלה זו מורכבת מארבעה תחומים:

מספר

שדה זה מכיל מספר סידורי שמתחיל באפס. מספר זה מייצג את המיקום במבנה הנתונים הפנימי (כלומר המערך). אם מספר אחד נשאר בחוץ, ייתכן שקיימת שגיאה בשורה המתאימה /etc/syslog.conf .

דפוס

שדה זה הוא מסובך ומייצג את המבנה הפנימי בדיוק. כל עמודה עומדת במתקן (עיין בsyslog(3)). כפי שאתם יכולים לראות, ישנם עדיין כמה מתקנים נותרו חופשיים לשימוש קודם, רק השמאלי ביותר משמשים. כל שדה בעמודה מייצג את סדרי העדיפויות (ראהsyslog(3)).

פעולה

שדה זה מתאר את הפעולה הספציפית שמתרחשת בכל פעם שמתקבלת הודעה התואמת את התבנית. עיין בsyslog.conf(5) manpage לכל הפעולות האפשריות.

ארגומנטים

שדה זה מציג ארגומנטים נוספים לפעולות בשדה האחרון. עבור רישום קבצים זה שם הקובץ עבור logfile; עבור רישום משתמשים זוהי רשימה של משתמשים; עבור רישום מרחוק זה שם המארח של המחשב כדי להתחבר; עבור קונסולת רישום זה קונסולה בשימוש; עבור tty-logging זה tty שצוין; לקיר אין ארגומנטים נוספים.

ראה גם

כורת עצים(1), syslog(2), (5)

משתפי פעולה

Syslogd הוא נלקח מתוך מקורות BSD, גרג Wettstein ([email protected]) ביצע את היציאה ללינוקס, מרטין שולץ ([email protected]) תיקנו כמה באגים והוסיף כמה תכונות חדשות.קלוגדנכתב במקור על ידי סטיב לורד ([email protected]), גרג Wettstein עשה שיפורים גדולים.

ד"ר גרג ווטשטייןפיתוח מערכות Enjellic

אונקולוגיהמרכז רוג 'ר מאריס לסרטןפארגו, נ[email protected]

סטיבן טווידיהמחלקה למדעי המחשבאוניברסיטת אדינבורו, סקוטלנד[email protected]

ג'וחה וירטאנן[email protected]

שיין אלדרטון[email protected]

מרטין שולץאינפודרום אולדנבורג[email protected]

חשוב: להשתמש ב איש פקודה ( % איש ) כדי לראות כיצד נעשה שימוש בפקודה במחשב הספציפי שלך.

מאמרים קשורים

  • פיקוד לינוקס
  • רואל - מה זה rwa