This is a translation of the original English documentation page. Help us make it better.

16 סוכן HTTP

סקירה כללית

סוג פריט זה מאפשר סקר נתונים באמצעות פרוטוקול HTTP/HTTPS. לכידה אפשרית גם באמצעות פרוטוקול Zabbix sender או Zabbix sender.

בדיקת פריט HTTP מבוצעת על ידי שרת Zabbix. עם זאת, כאשר המארחים מנוטר על ידי פרוקסי Zabbix, בדיקות פריטי HTTP מבוצעות על ידי פרוקסי.

בדיקות פריטי HTTP אינן מחייבות אף סוכן הפועל על ישות מארח מפוקח.

סוכן HTTP תומך גם ב-HTTP וגם ב-HTTPS. Zabbix תעקוב באופן אופציונלי הפניות מחדש (ראה את האפשרות עקוב אחר הפניות מחדש למטה). מספר מקסימלי של הפניות מחדש מקודד קשה ל-10 (באמצעות אפשרות cURL CURLOPT_MAXREDIRS).

::: שימו לב חשוב יש להגדיר תחילה את השרת/פרוקסי של Zabbix עם תמיכה ב-cURL (libcurl). :::

סקירה כללית

סוג פריט זה מאפשר סקר נתונים באמצעות פרוטוקול HTTP/HTTPS. לכידה אפשרית גם באמצעות פרוטוקול Zabbix sender או Zabbix sender.

בדיקת פריט HTTP מבוצעת על ידי שרת Zabbix. עם זאת, כאשר המארחים מנוטר על ידי פרוקסי Zabbix, בדיקות פריטי HTTP מבוצעות על ידי פרוקסי.

בדיקות פריטי HTTP אינן מחייבות אף סוכן הפועל על ישות מארח מפוקח.

סוכן HTTP תומך גם ב-HTTP וגם ב-HTTPS. Zabbix תעקוב באופן אופציונלי הפניות מחדש (ראה את האפשרות עקוב אחר הפניות מחדש למטה). מספר מקסימלי של הפניות מחדש מקודד קשה ל-10 (באמצעות אפשרות cURL CURLOPT_MAXREDIRS).

::: שימו לב חשוב יש להגדיר תחילה את השרת/פרוקסי של Zabbix עם תמיכה ב-cURL (libcurl). :::

דוגמאות

דוגמה 1

שלח בקשות GET פשוטות לאחזור נתונים משירותים כגון Elasticsearch:

  • צור פריט GET עם כתובת אתר: localhost:9200/?pretty
  • שימו לב לתגובה:
 {
          "name" : "YQ2VAY-",
          "cluster_name" : "elasticsearch",
          "cluster_uuid" : "kH4CYqh5QfqgeTsjh2F9zg",
          "גרסה" : {
            "number" : "6.1.3",
            "build_hash" : "af51318",
            "build_date" : "2018-01-26T18:22:55.523Z",
            "build_snapshot" : false,
            "lucene_version" : "7.1.0",
            "minimum_wire_compatibility_version" : "5.6.0",
            "minimum_index_compatibility_version" : "5.0.0"
          },
          "tagline" : "אתה יודע, לחיפוש"
        }
  • כעת חלץ את מספר הגרסה באמצעות שלב עיבוד מקדים של JSONPath: $.version.number
דוגמה 2

שלח בקשות POST פשוטות לאחזור נתונים משירותים כגון Elasticsearch:

  • צור פריט POST עם כתובת URL: http://localhost:9200/str/values/_search?scroll=10s
  • הגדר את גוף ה-POST הבא כדי להשיג את עומס המעבד (1 ממוצע מינימלי לכל ליבה)
 {
            "שאילתא": {
                "בול": {
                    "צריך": [{
                        "התאמה": {
                            "itemid": 28275
                        }
                    }],
                    "מסנן": [{
                        "טווח": {
                            "שעון": {
                                "gt": 1517565836,
                                "lte": 1517566137
                            }
                        }
                    }]
                }
            }
        }
  • קיבלו:
 {
           
            "לקח": 18,
            "פסק זמן": false,
            "_שברים": {
                "סה"כ": 5,
                "מוצלח": 5,
                "דילג": 0,
                "נכשל": 0
            },
            "hits": {
                "סה"כ": 1,
                "max_score": 1.0,
                "hits": [{
                    "_index": "dbl",
                    "_type": "ערכים",
                    "_id": "dqX9VWEBV6sEKSMyk6sw",
                    "_score": 1.0,
                    "_source": {
                        "itemid": 28275,
                        "value": "0.138750",
                        "שעון": 1517566136,
                        "ns": 25388713,
                        "ttl": 604800
                    }
                }]
            }
        }
  • כעת השתמש בשלב עיבוד מקדים של JSONPath כדי לקבל את ערך הפריט: $.hits.hits[0]._source.value
דוגמה 3

בודק אם Zabbix API פעיל, באמצעות apiinfo.version.

  • תצורת פריט:

שימו לב לשימוש בשיטת POST עם נתוני JSON, הגדרת כותרות בקשות ומבקש להחזיר כותרות בלבד:

  • עיבוד מקדים של ערך פריט עם ביטוי רגולרי כדי לקבל קוד HTTP:

  • בדיקת התוצאה בנתונים אחרונים:

דוגמה 4

אחזור מידע מזג אוויר על ידי התחברות למפת Openweathermap שירות ציבורי.

  • הגדר פריט מאסטר לאיסוף נתונים בכמות גדולה ב-JSON יחיד:

שימו לב לשימוש בפקודות מאקרו בשדות שאילתה. עיין במפת Openweathermap API כיצד למלא אותם.

JSON לדוגמה הוחזר בתגובה לסוכן HTTP:

{
            "גוף": {
                "coord": {
                    "לון": 40.01,
                    "lat": 56.11
                },
                "מזג אוויר": [{
                    "מזהה": 801,
                    "main": "עננים",
                    "description": "מעט עננים",
                    "סמל": "02n"
                }],
                "base": "תחנות",
                "ראשי": {
                    "טמפ'": 15.14,
                    "לחץ": 1012.6,
                    "לחות": 66,
                    "temp_min": 15.14,
                    "temp_max": 15.14,
                    "גובה_ים": 1030.91,
                    "grnd_level": 1012.6
                },
                "רוח": {
                    "מהירות": 1.86,
                    "דרגה": 246.001
                },
                "עננים": {
                    "הכל": 20
                },
                "dt": 1526509427,
                "sys": {
                    "הודעה": 0.0035,
                    "country": "RU",
                    "זריחה": 1526432608,
                    "שקיעה": 1526491828
                },
                "id": 487837,
                "name": "סטברובו",
                "קוד": 200
            }
       }

המשימה הבאה היא להגדיר פריטים תלויים המחלצים נתונים מה- JSON.

  • הגדר פריט תלוי לדוגמה עבור לחות:

מדדי מזג אוויר אחרים כגון 'טמפרטורה' מתווספים באותו אופן דֶרֶך.

  • עיבוד מקדים של ערך פריט תלוי לדוגמה עם JSONPath:

  • בדוק את התוצאה של נתוני מזג האוויר ב-נתונים אחרונים:

דוגמה 5

מתחבר לדף הסטטוס של Nginx ומקבל את המדדים שלו בכמויות גדולות.

  • הגדר פריט אב לאיסוף נתונים בכמות גדולה:

פלט סטטוס Nginx לדוגמה:

 חיבורים פעילים: 1 חיבורים פעילים:
        השרת מקבל בקשות שטופלו
         52 52 52
        קריאה: 0 כתיבה: 1 המתנה: 0

המשימה הבאה היא להגדיר פריטים תלויים המחלצים נתונים.

  • הגדר פריט תלוי לדוגמה עבור בקשות לשנייה:

  • עיבוד מקדים של ערך פריט תלוי לדוגמה עם ביטוי רגולרי שרת מקבל בקשות מטופלות\s+([0-9]+) ([0-9]+) ([0-9]+):

  • בדוק את התוצאה המלאה ממודול ה-stub ב-נתונים אחרונים: