#11 Логгирование Nginx
תוכן עניינים:
Nginx הוא שרת פרוקסי קוד פתוח וביצועי ביצועים גבוהים, האחראי לטיפול בעומס של כמה מהאתרים הגדולים באינטרנט. בעת ניהול שרתי רשת NGINX, אחת המשימות השכיחות ביותר שתבצע היא בדיקת קבצי היומן.
הידיעה כיצד לקבוע את התצורה וקריאת היומנים מועילה מאוד בעת פתרון בעיות בשרת או ביישום, שכן היא מספקת מידע מפורט על ניפוי באגים.
Nginx כותב רשומות של אירועים שלה בשני סוגים של יומנים: יומני גישה ויומני שגיאות. יומני גישה כותבים מידע על בקשות לקוח, ויומני שגיאה כותבים מידע על השרת ובעיות היישום.
מאמר זה מתאר כיצד להגדיר ולקרוא את יומני הגישה ושגיאות ה- Nginx.
הגדרת תצורת יומן הגישה
בכל פעם שבקשת לקוח מעובדת, Nginx מפיק אירוע חדש ביומן הגישה. כל רשומת אירועים מכילה חותמת זמן וכוללת מידע שונה על הלקוח ועל המשאב המבוקש. יומני גישה יכולים להראות לך את מיקום המבקרים, את הדף שהם מבקרים, כמה זמן הם מבלים בדף ועוד ועוד.
ההנחיה
log_format
מאפשרת לך להגדיר את פורמט ההודעות שנרשמו. הנחיית
access_log
מאפשרת ומגדירה את מיקום קובץ היומן ואת הפורמט המשומש.
התחביר הבסיסי ביותר של הנחיית
access_log
הוא כדלקמן:
access_log log_file log_format;
כאשר
log_file
הוא הנתיב המלא לקובץ היומן, ו-
log_format
הוא הפורמט שמשמש את קובץ היומן.
ניתן להפעיל את יומן הגישה בחסימה של
http
,
server
או
location
.
כברירת מחדל, יומן הגישה מופעל באופן גלובלי בהנחיית
http
בתוך קובץ התצורה הראשי של Nginx.
http {… access_log /var/log/nginx/access.log;… }
לקבלת תחזוקה טובה יותר, מומלץ להגדיר קובץ יומן גישה נפרד לכל חסימת שרתים. הוראת
access_log
שנקבעה בהוראת
server
מבטלת את
access_log
בהוראת
http
(ברמה גבוהה יותר).
http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }
אם לא צוין פורמט יומן, Nginx משתמש בפורמט המשולב שהוגדר מראש ונראה כך:
log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';
כדי לשנות את פורמט הרישום, יש לבטל את הגדרת ברירת המחדל או להגדיר תבנית חדשה. לדוגמה להגדרת תבנית רישום חדשה בשם main שתאריך את הפורמט המשולב עם הערך המציג את הכותרת
X-Forwarded-For
הוסף את ההגדרה הבאה בהנחיית
http
או
server
:
log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
כדי להשתמש בפורמט החדש, ציין את שמו לאחר קובץ היומן כמוצג להלן:
access_log /var/log/nginx/access.log custom;
ואילו יומן הגישה מספק מידע שימושי מאוד. זה לוקח שטח דיסק ועשוי להשפיע על ביצועי השרת. אם השרת שלך נמוך במשאבים ויש לך אתר עסוק, ייתכן שתרצה להשבית את יומן הגישה. לשם כך, קבע את הערך של הנחיית
access_log
למצב
off
:
הגדרת יומן השגיאות
Nginx כותב הודעות על היישום ושגיאות כלליות בשרת בקובץ יומן השגיאות. אם אתה נתקל בשגיאות ביישום האינטרנט שלך, יומן השגיאות הוא המקום הראשון להתחיל בפתרון בעיות.
הנחיית
error_log
מאפשרת ומגדירה את המיקום ואת רמת החומרה של יומן השגיאות. זה לובש את הטופס הבא וניתן להגדיר אותו בתוך בלוק
http
,
server
או
location
:
error_log log_file log_level
פרמטר
log_level
מגדיר את רמת הכניסה. להלן רמות המפורטות לפי חומרתן (מנמוך לגבוה):
-
debug
- הודעות באגים.info
- הודעות מידע.notice
- הודעות.warn
- אזהרות.error
- שגיאות במהלך עיבוד בקשה.crit
- סוגיות קריטיות. דורש פעולה מהירה.alert
- התראות. יש לנקוט בפעולה מיידית.emerg
- מצב חירום. המערכת במצב בלתי שמיש.
כל רמה ביומן כוללת את הרמות הגבוהות יותר. לדוגמה, אם תגדיר את רמת היומן
warn
, Nginx גם יומן את הודעות
error
,
crit
,
alert
emerg
.
כאשר הפרמטר
log_level
אינו מוגדר, הוא
log_level
error
.
כברירת מחדל, הנחיית השגיאה_log מוגדרת בהנחיית
http
בתוך קובץ nginx.conf הראשי:
http {… error_log /var/log/nginx/error.log;… }
כמו ביומני גישה, מומלץ להגדיר קובץ יומן שגיאות נפרד עבור כל חסימת שרת, אשר מבטלת את ההגדרה בירושה מהרמות הגבוהות יותר.
לדוגמה, כדי להגדיר את יומן השגיאות של domain.com כך שיהיה אז אתה משתמש:
http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }
בכל פעם שאתה משנה את קובץ התצורה, עליך להפעיל מחדש את שירות Nginx כדי שהשינויים ייכנסו לתוקף.
מיקום קבצי היומן
כברירת מחדל ברוב ההפצות לינוקס, כמו Ubuntu, CentOS ו- Debian, יומני הגישה והשגיאות ממוקמים בספריית
/var/log/nginx
.
קריאה והבנה של קבצי יומן ה- Nginx
אתה יכול לפתוח ולנתח את קבצי היומן באמצעות פקודות רגילות כמו
cat
,
less
,
grep
,
cut
,
awk
וכן הלאה.
להלן דוגמא לרשומה מקובץ יומן הגישה המשתמש בפורמט ברירת המחדל של יומן Nginx:
192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"
בואו נשבר את המשמעות של כל שדה ברשומה:
-
$remote_addr
-192.168.33.1
- כתובת ה- IP של הלקוח$remote_addr
את הבקשה.$remote_user
- - HTTP משתמש$remote_user
. כאשר שם המשתמש אינו מוגדר, שדה זה מציג-
. -"$request"
-"GET /
- סוג הבקשה, הנתיב והפרוטוקול.$status
-200
- קוד תגובת השרת.$body_bytes_sent
-396
- גודל תגובת השרת בבתים."$http_referer"
-"-"
- כתובת האתר של ההפניה."$http_user_agent"
-Mozilla/5.0…
- סוכן המשתמש של הלקוח (דפדפן האינטרנט).
השתמש בפקודת
tail
כדי לצפות בקובץ היומן בזמן אמת:
סיכום
קבצי יומן מספקים מידע שימושי על בעיות שרתים ועל אופן הפעולה של מבקרים עם אתר האינטרנט שלך.
Nginx מאפשרת לך להגדיר את יומני הגישה ושגיאות בהתאם לצרכים שלך.
nginxמיקרוסופט תובעת שלוש עבור הונאה הונאה לחץ מסיבית לחץ על > מיקרוסופט הגישה תביעה ביום שני נגד שלושה אנשים מאשימים אותם הפעלת "מסיבי "מיקרוסופט הגישה תביעה ביום שני נגד שלושה אנשים האשימו אותם על הפעלת" מסיבית "לחץ על הונאת סכמה הכוללת רתימת מאות אלפי כתובות מחשב IP (אינטרנט פרוטוקול) למקד למפרסמים המקדמים ביטוח רכב ואת העולם של וורקראפט על שורת המשחק.

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

אנו לא שומרים פרטים בתצוגת הצלילה שלנו יישומי הדואר והיומן של Windows 8.
קבע את התצורה של odoo עם nginx כ- proxy הפוך

Odoo מגיע עם שרת אינטרנט מובנה, אך ברוב המקרים מומלץ שיהיה מולו פרוקסי הפוך אשר ישמש כמתווך בין הלקוחות לשרת Odoo. מדריך זה מספק הוראות כיצד להשתמש ב- Nginx כ- proxy הפוך ל- Odoo.