איסוף יומנים מ-Apache באמצעות סוכן תפעול

במאמר הזה מוסבר איך לאסוף ולהציג יומנים של syslog שנאספו משרת אינטרנט של Apache שהותקן במכונה וירטואלית (VM) של Compute Engine באמצעות Ops Agent. אפשר להשתמש בתהליך דומה לזה שמתואר במדריך הזה כדי לעקוב אחרי אפליקציות אחרות של צד שלישי.

במדריך למתחילים הזה תלמדו:

  1. יוצרים מכונה וירטואלית ב-Compute Engine ומתקינים את סוכן תפעול.
  2. מתקינים שרת אינטרנט של Apache.
  3. מגדירים את סוכן התפעול לשרת האינטרנט של Apache.
  4. צופים ביומנים ב-Logs Explorer.
  5. יוצרים התראה מבוססת-יומן.
  6. בודקים את ההתראה.
  7. לפנות.

לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :

תראו לי איך


לפני שמתחילים

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

  2. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  4. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  5. Verify that billing is enabled for your Google Cloud project.

  6. Enable the Compute Engine, Cloud Monitoring, Cloud Logging, and OS Config APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Cloud Monitoring, Cloud Logging, and OS Config APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות ליצירת מכונה של Compute Engine, להתקנת Apache ולהצגת נתוני מדדים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

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

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

יצירת מופע של VM

  1. נכנסים לדף VM instances במסוף Google Cloud :

    כניסה לדף VM instances

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

  2. כדי ליצור מכונה וירטואלית, לוחצים על יצירת מופע. מגדירים את המכונה באמצעות האפשרויות שבתפריט הניווט.
  3. בקטע Machine configuration (הגדרת המכונה), מבצעים את הפעולות הבאות:
    1. בשדה שם, מזינים שם תיאורי.
    2. בתפריט הנפתח של הגדרות קבועות מראש סוג מכונה, בוחרים באפשרות ליבת מעבד משותפת > e2-small.
  4. מוודאים שהאפשרות OS and storage מציגה את הערך Debian GNU/Linux. אם לא, לוחצים על האפשרות מערכת הפעלה ואחסון ואז על שינוי. בתיבת הדו-שיח Boot disk, מגדירים את Version ל-Debian GNU/Linux.
  5. באפשרות Networking, בקטע Firewall, בוחרים גם באפשרות Allow HTTP traffic וגם באפשרות Allow HTTPS traffic.
  6. מוודאים שהאפשרות Observability מציגה את האפשרות התקנת סוכן תפעול. אם לא, לוחצים על האפשרות Observability (יכולת צפייה) ובוחרים באפשרות Install Ops Agent for Monitoring and Logging (התקנת סוכן תפעול לניטור ולרישום ביומן).
  7. לוחצים על יצירה.

התקנה של שרת האינטרנט Apache

כדי להתקין שרת אינטרנט של Apache במכונה וירטואלית ב-Compute Engine, מבצעים את הפעולות הבאות:

  1. בדף VM instances (מכונות וירטואליות), מאתרים את המכונה הווירטואלית החדשה, עוברים לעמודה Connect (התחברות) ולוחצים על SSH.

    נתקלת בבעיות בחיבור? אפשר לעיין במאמר בנושא פתרון בעיות ב-SSH.

  2. כדי לעדכן את רשימות החבילות, מעתיקים את הפקודה הבאה ללוח, מדביקים אותה בטרמינל SSH ומקישים על Enter:

    sudo apt-get update
    
  3. אחרי שמופיעה ההודעה 'Reading package lists...‎ ‫Done", בטרמינל SSH, מריצים את הפקודה הבאה כדי להתקין שרת אינטרנט של Apache2:

    sudo apt-get install apache2 php7.0
    

    כשמוצגת בקשה להמשיך בהתקנה, מזינים Y. אם פקודת ההתקנה נכשלת, משתמשים ב-sudo apt-get install apache2 php.

  4. כשחלון שורת הפקודה חוזר, עוברים לדף VM instances ומעתיקים את כתובת ה-IP החיצונית של המכונה הווירטואלית לכתובת ה-URL הבאה:

    http://EXTERNAL_IP
    
  5. כדי להתחבר לשרת האינטרנט של Apache, פותחים כרטיסייה חדשה בדפדפן ומזינים את כתובת ה-URL מהשלב הקודם.

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

    הצגת דף ברירת המחדל של Apache2.

איסוף יומנים ומדדים של שרת אינטרנט Apache

בשלבים הבאים מוסבר איך להגדיר את סוכן תפעול לאיסוף יומנים ומדדים משרת האינטרנט של Apache:
  1. עוברים לטרמינל SSH של מכונת ה-VM. אם לא פתוח חלון טרמינל:

    1. נכנסים לדף VM instances במסוף Google Cloud :

      כניסה לדף VM instances

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

    2. מאתרים את המכונה הווירטואלית החדשה ולוחצים על SSH.

  2. מעתיקים את הפקודה הבאה, מדביקים אותה בטרמינל של המופע ומקישים על Enter:

    # Configures Ops Agent to collect telemetry from the app. You must restart the agent for the configuration to take effect.
    
    set -e
    
    # Check if the file exists
    if [ ! -f /etc/google-cloud-ops-agent/config.yaml ]; then
      # Create the file if it doesn't exist.
      sudo mkdir -p /etc/google-cloud-ops-agent
      sudo touch /etc/google-cloud-ops-agent/config.yaml
    fi
    
    # Create a back up of the existing file so existing configurations are not lost.
    sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak
    
    # Configure the Ops Agent.
    sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
    metrics:
      receivers:
        apache:
          type: apache
      service:
        pipelines:
          apache:
            receivers:
              - apache
    logging:
      receivers:
        apache_access:
          type: apache_access
        apache_error:
          type: apache_error
      service:
        pipelines:
          apache:
            receivers:
              - apache_access
              - apache_error
    EOF
    

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

  3. מפעילים מחדש את סוכן התפעול:
    1. כדי להפעיל מחדש את הסוכן, מריצים את הפקודה הבאה במופע:
      sudo systemctl restart google-cloud-ops-agent
      
    2. כדי לוודא שהסוכן הופעל מחדש, מריצים את הפקודה הבאה ומוודאים שהרכיבים Metrics Agent ו-Logging Agent הופעלו:
      sudo systemctl status "google-cloud-ops-agent*"
      

צפייה ביומנים של שרת האינטרנט Apache

כדי לראות את היומנים במסוף Google Cloud , משתמשים ב-Logs Explorer:

  1. במסוף Google Cloud , נכנסים לדף Logs Explorer:

    כניסה אל Logs Explorer

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

    היומנים האחרונים מוצגים בחלונית Query results.

  2. בסרגל הכלים, מוודאים שהאפשרות Show query (הצגת שאילתה) מופעלת.

  3. כדי להציג את היומנים של שרת האינטרנט Apache, יוצרים ומריצים שאילתה:

    1. מרחיבים את רשימת הפרויקטים מבורר הפרויקטים Google Cloud Google Cloud ומעתיקים את מזהה הפרויקטGoogle Cloud ללוח.

    2. בביטוי הבא, מדביקים את המזהה שהועתק בשדה PROJECT_ID ואז מעתיקים את הביטוי לעורך השאילתות:

      resource.type="gce_instance"
      logName=("projects/PROJECT_ID/logs/apache_access" OR "projects/PROJECT_ID/logs/apache_error")
      

      כשמריצים את השאילתה הקודמת, מוצגים רק רשומות היומן apache_access ו-apache_error.

    3. לוחצים על Run query.

      התוצאות של השאילתה מוצגות בחלונית Query results.

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

יצירת ערוץ התראות באימייל

לפני שיוצרים מדיניות התראות, צריך להגדיר את ערוצי ההתראות שבהם רוצים להשתמש במדיניות ההתראות. ‫Cloud Monitoring תומך בסוגים רבים ושונים של ערוצי התראות, כולל אימייל, Slack,‏ PagerDuty ו-Pub/Sub. מידע נוסף מופיע במאמר בנושא יצירה וניהול של ערוצי התראות. כדי לקבל התראות באימייל:
  1. נכנסים לדף  Alerting במסוף Google Cloud :

    כניסה אל התראות

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

  2. בסרגל הכלים, לוחצים על עריכת ערוצי התראות.
  3. בדף Notification channels (ערוצי התראות), גוללים אל Email (אימייל) ולוחצים על Add new (הוספת חדש).
  4. מזינים את כתובת האימייל, שם לתצוגה כמו My email, ואז לוחצים על שמירה.

יצירת התראה שמבוססת על יומן

כדי לקבל התראה כשמופיעה הודעה ספציפית ברשומות ביומן, צריך ליצור התראה שמבוססת על יומן. בקטע הזה יוצרים התראה מבוססת-יומן כדי לקבל התראה כשמופיעה הודעה 404 Not Found ברשומות היומן.

  1. במסוף Google Cloud , נכנסים לדף Logs Explorer:

    כניסה אל Logs Explorer

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

  2. בסרגל הכלים Query results, לוחצים על Create alert. תיפתח החלונית של מדיניות ההתראות שמבוססת על יומנים.

  3. בקטע פרטי ההתראה, בשדה שם מדיניות ההתראה, מזינים 404 Not Found.

  4. בקטע Choose logs to include in this alert (בחירת יומנים שייכללו בהתראה הזו), מבצעים את הפעולות הבאות:

    1. מסירים את כל התוכן משדה המסנן של היומן.
    2. מעתיקים את השאילתה הבאה ומדביקים אותה בשדה של מסנן היומן:

      severity>=DEFAULT /help httpRequest.status=404
      

      המסנן הקודם של היומן מחפש רשומות ביומן עם severity רמה של לפחות DEFAULT, שמכילות את הטקסט /help, ושמכילות סטטוס httpRequest של 404.

  5. בקטע הגדרת תדירות ההתראות ומשך הזמן לסגירה אוטומטית, מבצעים את הפעולות הבאות:

    1. מגדירים בשדה Time between notifications את הערך 5 min.
    2. מגדירים את השדה משך הזמן לסגירה אוטומטית של אירוע לערך 30 דקות.
  6. בקטע Who should be notified? (למי לשלוח התראה?), בוחרים את כתובת האימייל שלכם בתפריט Notification Channels (ערוצי התראות) ולוחצים על Save (שמירה).

בדיקת מדיניות ההתראות

כדי לבדוק את מדיניות ההתראות:

  1. עוברים לטרמינל SSH של מכונת ה-VM. אם לא פתוח טרמינל, צריך לפעול לפי השלבים הבאים:

    1. נכנסים לדף VM instances במסוף Google Cloud :

      כניסה לדף VM instances

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

    2. מאתרים את המכונה הווירטואלית החדשה ולוחצים על SSH.
  2. כדי לחפש בשרת את הדף המזויף localhost/help, מריצים את הפקודה הבאה:

    curl localhost/help
    

    אחרי שמופיעה ההודעה 404 Not Found במסוף, נשלחת התראה באימייל. התהליך הזה נמשך כמה דקות.

    ההתראה באימייל שתקבלו תיראה בערך כך:

    ההתראה לדוגמה שמבוססת על יומן תוצאות מובילה להתראה באימייל.

  3. כדי לראות את הרשומות החדשות ביומן:

    1. במסוף Google Cloud , נכנסים לדף Logs Explorer:

      כניסה אל Logs Explorer

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

    2. בסרגל הכלים, לוחצים על מעבר למיקום הנוכחי.

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

הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:

אם יצרתם פרויקט חדש ואתם כבר לא צריכים אותו, אתם יכולים למחוק את הפרויקט.

אם השתמשתם בפרויקט קיים, צריך לבצע את הפעולות הבאות:

  1. אם יצרתם מכונה וירטואלית, אתם יכולים למחוק אותה:

    1. נכנסים לדף VM instances במסוף Google Cloud .

      כניסה לדף VM instances

    2. מסמנים את התיבה שלצד המופע שרוצים למחוק.
    3. כדי למחוק את המכונה, לוחצים על More actions ואז על Delete ופועלים לפי ההוראות.
  2. מוחקים את מדיניות ההתראות שיצרתם:

    1. נכנסים לדף  Alerting במסוף Google Cloud :

      כניסה אל התראות

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

    2. בוחרים את מדיניות ההתראות שיצרתם ולוחצים על מחיקה.

המאמרים הבאים