Apache CouchDB

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

מידע נוסף על CouchDB זמין במסמכי העזרה של Apache CouchDB.

דרישות מוקדמות

כדי לאסוף נתוני טלמטריה של CouchDB, צריך להתקין את סוכן התפעול:

  • כדי להשתמש במדדים, צריך להתקין את גרסה 2.10.0 ואילך.
  • כדי לראות את היומנים, צריך להתקין את גרסה 2.11.0 ואילך.

השילוב הזה תומך בגרסאות CouchDB‏ 2.3.x ו-3.1 ואילך.

הגדרת מופע CouchDB

כדי להשתמש בשילוב הזה בגרסאות CouchDB שקדמו לגרסה 3.4.0, או בהפצות מבוססות Debian, לא צריך לבצע הגדרות נוספות.

החל מגרסה 3.4.0, התנהגות CouchDB שונה בהפצות מבוססות RPM (כמו RHEL או Rocky Linux). כדי ש-CouchDB יפעל עם הגדרת ברירת המחדל של מקלט הרישום הזה במערכות כאלה, צריך להגדיר את Apache CouchDB כך שיכתוב ל-/var/log/couchdb/couchdb.log במקום ל-journald.

כדי לכתוב יומנים ל-/var/log/couchdb/couchdb.log, פועלים לפי השלבים הבאים:

  1. יוצרים את הקובץ /opt/couchdb/etc/local.d/ops-agent-filelog.ini.

  2. מוסיפים את השורות הבאות לקובץ:

    [log]
    writer = file
    file = /var/log/couchdb/couchdb.log
    level = info
    
  3. מפעילים מחדש את Apache CouchDB:

    sudo systemctl restart couchdb
    

הגדרת סוכן התפעול ל-CouchDB

פועלים לפי המדריך בנושא הגדרת Ops Agent, מוסיפים את הרכיבים הנדרשים לאיסוף נתוני טלמטריה ממופעי CouchDB ומפעילים מחדש את הסוכן.

הגדרה לדוגמה

הפקודות הבאות יוצרות את התצורה לאיסוף ולעיבוד של נתוני טלמטריה עבור CouchDB:

# 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:
    couchdb:
      type: couchdb
      username: admin
      password: otelp
      # To use the googlesecretmanager provider to replace plaintext passwords, refer to the example below.
      # password: ${googlesecretmanager:projects/<project-id>/secrets/<secret-id>/versions/<version-id>}
  service:
    pipelines:
      couchdb:
        receivers:
          - couchdb

logging:
  receivers:
    couchdb:
      type: couchdb
  service:
    pipelines:
      couchdb:
        receivers:
          - couchdb
EOF

כדי שהשינויים האלה ייכנסו לתוקף, צריך להפעיל מחדש את Ops Agent:

Linux

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

Windows

  1. מתחברים למופע באמצעות RDP או כלי דומה ומתחברים ל-Windows.
  2. פותחים טרמינל ב-PowerShell עם הרשאות אדמין על ידי לחיצה ימנית על סמל PowerShell ובחירה באפשרות הפעלה כמנהל מערכת.
  3. כדי להפעיל מחדש את הסוכן, מריצים את פקודת PowerShell הבאה:
    Restart-Service google-cloud-ops-agent -Force
    
  4. כדי לוודא שהסוכן הופעל מחדש, מריצים את הפקודה הבאה ומוודאים שהרכיבים Metrics Agent ו-Logging Agent הופעלו:
    Get-Service google-cloud-ops-agent*
    

הגדרת איסוף יומנים

כדי להטמיע יומנים מ-CouchDB, צריך ליצור מקלט ליומנים ש-CouchDB מייצר, ואז ליצור צינור למקלט החדש.

כדי להגדיר מקלט ליומני couchdb, מציינים את השדות הבאים:

שדה ברירת מחדל תיאור
exclude_paths רשימה של תבניות נתיבים במערכת הקבצים שצריך להחריג מהקבוצה שתואמת ל-include_paths.
include_paths [/var/log/couchdb/couchdb.log] רשימה של נתיבי מערכת קבצים לקריאה על ידי מעקב אחרי כל קובץ. אפשר להשתמש בתו כללי לחיפוש (*) בנתיבים. לדוגמה, /var/log/couchdb*/*.log.
record_log_file_path false אם הערך הוא true, הנתיב לקובץ הספציפי שממנו נלקחה רשומת היומן מופיע ברשומת היומן של הפלט כערך של התווית agent.googleapis.com/log_file_path. כשמשתמשים בתו כללי, רק הנתיב של הקובץ שממנו התקבל הרשומה מתועד.
type הערך חייב להיות couchdb.
wildcard_refresh_interval 60s המרווח שבו נתיבי קבצים עם תו כללי ב-include_paths מתרעננים. הערך מוצג כמשך זמן, לדוגמה 30s או 2m. הנכס הזה יכול להיות שימושי כשקצב העברת הנתונים של הרישום גבוה, וקובצי היומן מתחלפים מהר יותר מהמרווח שמוגדר כברירת מחדל.

מה נרשם ביומן

הערך של logName נגזר ממזהי המקלט שצוינו בהגדרה. השדות המפורטים בתוך התג LogEntry הם:

יומני couchdb מכילים את השדות הבאים ב-LogEntry:

שדה סוג תיאור
httpRequest אובייקט ראה HttpRequest
jsonPayload.host מחרוזת שם המכונה המארחת
jsonPayload.level מחרוזת רמת רשומת היומן
jsonPayload.message מחרוזת הודעה ביומן
jsonPayload.node מחרוזת שם המופע של הצומת
jsonPayload.path מחרוזת נתיב הבקשה
jsonPayload.pid מחרוזת מזהה תהליך
jsonPayload.remote_user מחרוזת שם המשתמש המאומת של הבקשה
jsonPayload.status_message מחרוזת הודעה של קוד הסטטוס
severity מחרוזת (LogSeverity) רמת רשומת היומן (מתורגמת).

הגדרת איסוף מדדים

כדי להטמיע מדדים מ-CouchDB, צריך ליצור מקלט למדדים ש-CouchDB מייצר ואז ליצור צינור למקלט החדש.

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

כדי להגדיר מקלט למדדים של couchdb, צריך לציין את השדות הבאים:

שדה ברירת מחדל תיאור
collection_interval 60s ערך של משך זמן, כמו 30s או 5m.
password הסיסמה שמשמשת לחיבור לשרת.
server_status_url http://localhost:5984 כתובת ה-URL שנחשפת על ידי CouchDB.
type הערך חייב להיות couchdb.
username שם המשתמש שמשמש לחיבור לשרת.

מה נבדק

בטבלה הבאה מפורטים המדדים שנאספים על ידי סוכן תפעול ממופע CouchDB.

סוג המדד 
סוג, סוג
משאבים במעקב
תוויות
workload.googleapis.com/couchdb.average_request_time
GAUGEDOUBLE
gce_instance
 
workload.googleapis.com/couchdb.database.open
GAUGEINT64
gce_instance
 
workload.googleapis.com/couchdb.database.operations
CUMULATIVEINT64
gce_instance
operation
workload.googleapis.com/couchdb.file_descriptor.open
GAUGEINT64
gce_instance
 
workload.googleapis.com/couchdb.httpd.bulk_requests
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/couchdb.httpd.requests
CUMULATIVEINT64
gce_instance
http_method
workload.googleapis.com/couchdb.httpd.responses
CUMULATIVEINT64
gce_instance
http_status_code
workload.googleapis.com/couchdb.httpd.views
CUMULATIVEINT64
gce_instance
view

אימות ההגדרה

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

כדי לוודא שיומני CouchDB נשלחים אל Cloud Logging, מבצעים את הפעולות הבאות:

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

    כניסה אל Logs Explorer

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

  2. מזינים את השאילתה הבאה בעורך ולוחצים על Run query:
    resource.type="gce_instance"
    log_id("couchdb")
    

כדי לוודא שמדדי CouchDB נשלחים אל Cloud Monitoring, צריך לבצע את הפעולות הבאות:

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

    כניסה אל Metrics Explorer

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

  2. בסרגל הכלים של החלונית ליצירת שאילתות, לוחצים על הלחצן ששמו  PromQL.
  3. מזינים את השאילתה הבאה בעורך ולוחצים על Run query:
    {"workload.googleapis.com/couchdb.database.open", monitored_resource="gce_instance"}
    

צפייה בלוח הבקרה

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

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

כדי לראות מרכז בקרה שהותקן:

  1. במסוף Google Cloud , עוברים לדף  Dashboards:

    מעבר אל מרכזי בקרה

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

  2. לוחצים על הכרטיסייה רשימת לוחות הבקרה ואז בוחרים בקטגוריה שילובים.
  3. לוחצים על השם של מרכז הבקרה שרוצים להציג.

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

כדי לראות תצוגה מקדימה סטטית של מרכז הבקרה:

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

    עוברים אל Integrations

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

  2. לוחצים על המסנן Compute Engine של פלטפורמת הפריסה.
  3. מאתרים את הרשומה של CouchDB ולוחצים על הצגת פרטים.
  4. לוחצים על הכרטיסייה מרכזי בקרה כדי לראות תצוגה מקדימה סטטית. אם מרכז הבקרה מותקן, אפשר לעבור אליו בלחיצה על View dashboard (הצגת מרכז הבקרה).

מידע נוסף על לוחות בקרה ב-Cloud Monitoring זמין במאמר בנושא לוחות בקרה וטבלאות.

מידע נוסף על השימוש בדף Integrations (שילובים) זמין במאמר ניהול שילובים.

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

מדיניות התראות מורה ל-Cloud Monitoring לשלוח לכם התראה כשמתרחשים תנאים מסוימים. השילוב של CouchDB כולל מדיניות התראות אחת או יותר שתוכלו להשתמש בהן. אפשר לראות ולהתקין את כללי המדיניות האלה להתראות בדף שילובים ב-Monitoring.

כדי לראות את התיאורים של כללי מדיניות ההתראות הזמינים ולהתקין אותם:

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

    עוברים אל Integrations

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

  2. מאתרים את הרשומה של CouchDB ולוחצים על הצגת פרטים.
  3. לוחצים על הכרטיסייה התראות. בכרטיסייה הזו מופיעים תיאורים של מדיניות ההתראות הזמינה וממשק להתקנתן.
  4. התקנה של כללי מדיניות התראות. כדי שמדיניות ההתראות תדע לאן לשלוח התראות על הפעלת ההתראה, היא צריכה לקבל מכם מידע להתקנה. כדי להתקין מדיניות התראות:
    1. ברשימת מדיניות ההתראות הזמינה, בוחרים את אלה שרוצים להתקין.
    2. בקטע הגדרת התראות, בוחרים ערוץ התראות אחד או יותר. יש לכם אפשרות להשבית את השימוש בערוצי התראות, אבל אם תעשו את זה, מדיניות ההתראות תופעל בשקט. אפשר לבדוק את הסטטוס שלהם בדף 'מעקב', אבל לא תקבלו התראות.

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

    3. לוחצים על יצירת מדיניות.

מידע נוסף על מדיניות התראות ב-Cloud Monitoring זמין במאמר מבוא להתראות.

מידע נוסף על השימוש בדף Integrations (שילובים) זמין במאמר ניהול שילובים.

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

בסרטון Install the Ops Agent to troubleshoot third-party applications מוסבר איך להשתמש ב-Ansible כדי להתקין את סוכן התפעול, להגדיר אפליקציית צד שלישי ולהתקין לוח בקרה לדוגמה.