::: שימו לב חשוב תמיכת Elasticsearch היא ניסיונית!
:::
Zabbix תומך באחסון נתונים היסטוריים באמצעות Elasticsearch במקום מסד נתונים. משתמשים יכולים לבחור את מקום האחסון עבור היסטוריים נתונים בין מסד נתונים תואם לבין Elasticsearch. ההגדרה ההליך המתואר בסעיף זה חל על Elasticsearch גרסה 7.X. במקרה שגרסה קודמת או מאוחרת יותר של Elasticsearch היא בשימוש, ייתכן שפונקציונליות מסוימת לא תפעל כמתוכנן.
::: הערה אזהרה אם כל נתוני ההיסטוריה מאוחסנים ב- Elasticsearch, מגמות לא מחושבות ואינן נשמרות במסד הנתונים. בלי טרנדים מחושב ומאוחסן, ייתכן שתצטרך להיות תקופת אחסון ההיסטוריה מורחב. :::
כדי להבטיח תקשורת תקינה בין כל הגורמים המעורבים יש לוודא פרמטרים של קובץ תצורת השרת וקובץ תצורת החזית הם מוגדר כהלכה.
טיוטת קובץ תצורת שרת Zabbix עם פרמטרים שיש לעדכן:
### אפשרות: HistoryStorageURL
# אחסון היסטוריה כתובת URL של HTTP[S].
#
# חובה: לא
# ברירת מחדל:
# HistoryStorageURL=
### אפשרות: HistoryStorageTypes
# רשימה מופרדת בפסיקים של סוגי ערכים שיש לשלוח לאחסון ההיסטוריה.
#
# חובה: לא
# ברירת מחדל:
# HistoryStorageTypes=uint,dbl,str,log,text
ערכי פרמטרים לדוגמה למילוי קובץ התצורה של שרת Zabbix עם:
תצורה זו מאלצת את Zabbix Server לאחסן ערכי היסטוריה של סוגים מספריים במסד הנתונים המתאים ונתוני היסטוריה טקסטואלית ב Elasticsearch.
Elasticsearch תומך בסוגי הפריטים הבאים:
הסבר על סוג פריט נתמך:
סוג ערך פריט | טבלת מסד נתונים | סוג Elasticsearch |
נומרי (לא חתום) | היסטוריה_uint | uint |
נומרי (צף) | היסטוריה | dbl |
דמות | היסטוריה_str | str |
לוג | היסטוריה_log | log |
טקסט | היסטוריה_טקסט | טקסט |
טיוטה של קובץ תצורה של Zabbix Frontend (conf/zabbix.conf.php
) עם פרמטרים שיש לעדכן:
// Elasticsearch url (יכול להיות מחרוזת אם משתמשים באותה url עבור כל הסוגים).
$HISTORY['url'] = [
'uint' => 'http://localhost:9200',
'text' => 'http://localhost:9200'
];
// סוגי ערכים המאוחסנים ב- Elasticsearch.
$HISTORY['types'] = ['uint', 'טקסט'];
ערכי פרמטרים לדוגמה למילוי קובץ התצורה של Zabbix Frontend עם:
תצורה זו מאלצת לאחסן היסטוריית 'טקסט', 'תווים' ו'יומן' ערכים ב- Elasticsearch.
זה גם נדרש להפוך את $HISTORY לגלובאלי ב-conf/zabbix.conf.php
ל לוודא שהכל עובד כמו שצריך (ראה conf/zabbix.conf.php.example
כיצד לעשות זאת):
שני השלבים האחרונים של הפעלת הדברים הם התקנת Elasticsearch עצמו ויצירת תהליך מיפוי.
כדי להתקין את Elasticsearch, עיין בסעיף התקנת Elasticsearch מדריך.
מיפוי הוא מבנה נתונים ב- Elasticsearch (בדומה ל-a טבלה במסד נתונים). מיפוי עבור כל סוגי נתוני ההיסטוריה זמין כאן: database/elasticsearch/elasticsearch.map
.
::: הערה אזהרה יצירת מיפוי היא חובה. קצת פונקציונליות ישבר אם המיפוי לא ייווצר על פי ה הוראה. :::
כדי ליצור מיפוי עבור סוג 'טקסט' שלח את הבקשה הבאה אל Elasticsearch:
תלתל -X PUT \
http://your-elasticsearch.here:9200/text \
-H 'content-type:application/json' \
-d '{
"הגדרות": {
"אינדקס": {
"מספר_העותקים": 1,
"מספר_שברים": 5
}
},
"מיפויים": {
"נכסים": {
"מספר זיהוי של הפריט": {
"type": "ארוך"
},
"שעון": {
"format": "epoch_second",
"type": "תאריך"
},
"ערך": {
"שדות": {
"נתח": {
"אינדקס": נכון,
"type": "טקסט",
"analyzer": "סטנדרטי"
}
},
"index": false,
"type": "טקסט"
}
}
}
}'
בקשה דומה נדרשת להתבצע עבור תווים
ויומן
ערכי היסטוריה מיפוי יצירת עם תיקון סוג מתאים.
כדי לעבוד עם Elasticsearch, עיין בסעיף דרישה page לתוספת מֵידָע.
עוזר בית אינו מוחק נתונים מ- Elasticsearch.
סעיף זה מתאר שלבים נוספים הנדרשים לעבודה עם צינורות ולבלוע צמתים.
מלכתחילה, עליך ליצור תבניות למדדים.
הדוגמה הבאה מציגה בקשה ליצירת תבנית uint:
תלתל -X PUT \
http://your-elasticsearch.here:9200/_template/uint_template \
-H 'content-type:application/json' \
-d '{
"index_patterns": [
"לא*"
],
"הגדרות": {
"אינדקס": {
"מספר_העותקים": 1,
"מספר_שברים": 5
}
},
"מיפויים": {
"נכסים": {
"מספר זיהוי של הפריט": {
"type": "ארוך"
},
"שעון": {
"format": "epoch_second",
"type": "תאריך"
},
"ערך": {
"type": "ארוך"
}
}
}
}'
כדי ליצור תבניות אחרות, המשתמש צריך לשנות את כתובת האתר (החלק האחרון הוא שם התבנית), שנה את השדה "index_patterns"
כך שיתאים לשם האינדקס וכדי להגדיר מיפוי חוקי, שניתן לקחת ממנו database/elasticsearch/elasticsearch.map
.
לדוגמה, ניתן להשתמש בפקודה הבאה כדי ליצור תבנית עבור אינדקס טקסט:
תלתל -X PUT \
http://your-elasticsearch.here:9200/_template/text_template \
-H 'content-type:application/json' \
-d '{
"index_patterns": [
"טֶקסט*"
],
"הגדרות": {
"אינדקס": {
"מספר_העותקים": 1,
"מספר_שברים": 5
}
},
"מיפויים": {
"נכסים": {
"מספר זיהוי של הפריט": {
"type": "ארוך"
},
"שעון": {
"format": "epoch_second",
"type": "תאריך"
},
"ערך": {
"שדות": {
"נתח": {
"אינדקס": נכון,
"type": "טקסט",
"analyzer": "סטנדרטי"
}
},
"index": false,
"type": "טקסט"
}
}
}
}'
זה נדרש כדי לאפשר ל-Elasticsearch להגדיר מיפוי חוקי עבור מדדים נוצר באופן אוטומטי. אז זה נדרש ליצור את הצינור הַגדָרָה. צינור הוא סוג של עיבוד מקדים של נתונים לפני כן הכנסת נתונים למדדים. ניתן להשתמש בפקודה הבאה כדי ליצור צינור לאינדקס uint:
תלתל -X PUT \
http://your-elasticsearch.here:9200/_ingest/pipeline/uint-pipeline \
-H 'content-type:application/json' \
-d '{
"description": "שם אינדקס Uint יומי",
"מעבדים": [
{
"date_index_name": {
"field": "שעון",
"פורמטים_תאריך": [
"UNIX"
],
"index_name_prefix": "uint-",
"date_rounding": "ד"
}
}
]
}'
המשתמש יכול לשנות את פרמטר העיגול ("תאריך_rounding") כדי להגדיר א תקופת סיבוב מדד ספציפית. כדי ליצור צינורות אחרים, המשתמש צריך שנה את כתובת האתר (החלק האחרון הוא שם הצינור) ושנה שדה "index_name_prefix" כדי להתאים לשם האינדקס.
ראה גם Elasticsearch תיעוד.
בנוסף, אחסון נתוני היסטוריה במספר מדדים מבוססי תאריכים צריך להיות מופעל גם בפרמטר החדש בתצורת שרת Zabbix:
### אפשרות: HistoryStorageDateIndex
# אפשר עיבוד מקדים של ערכי היסטוריה באחסון ההיסטוריה כדי לאחסן ערכים במדדים שונים על סמך תאריך.
# 0 - השבת
# 1 - אפשר
#
# חובה: לא
# ברירת מחדל:
# HistoryStorageDateIndex=0
השלבים הבאים עשויים לעזור לך לפתור בעיות עם הגדרת Elasticsearch:
http://localhost:9200/uint
).אם אתה עדיין נתקל בבעיות בהתקנה שלך אז אנא צור דוח באג עם כל המידע מהרשימה הזו (מיפוי, יומני שגיאות, תצורה, גרסה וכו')