הגדרת אחסון ארוך טווח עבור Prometheus עם VictoriaMetrics

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

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

הערה: כאשר Prometheus מתחיל לצרוך טרה-בייטים של דיסק עם תקופת שמירה קצרה, ו-Thanos או Cortex נראים מוגזמים, הגיע הזמן ל-VictoriaMetrics. TSDB זה מקבל remote_write מכל מספר של מופעי Prometheus, מאחסן נתונים למשך שנים, ומשתמש בפי 5–10 פחות זיכרון מאשר ה-TSDB המקורי. לפי המאגר הרשמי ב-GitHub, דחיסת הנתונים ב-VictoriaMetrics מגיעה ל-0.4–0.8 בייטים לנקודה — עבור אשכול עם 500,000 סדרות פעילות, זה חוסך עד 80% דיסק בהשוואה ל-Prometheus המקורי. VictoriaMetrics יעיל פי 10 באחסון מאשר Prometheus ופי 3 מהיר יותר מ-Thanos בשאילתות. MetricsQL תואם לחלוטין ל-PromQL, כך שלוחות ה-Grafana שלך ימשיכו לעבוד ללא שינוי.

פרסנו את VictoriaMetrics עבור תשתיות עם 2 מיליון סדרות פעילות ועומס שאילתות של 3000 QPS. לאחר ההגירה, זמן השאילתה ירד מ-3 שניות ל-50 אלפיות השנייה, ועלויות הדיסק ירדו פי 5. עלות הפריסה עבור הגדרה של צומת יחיד מתחילה ב-$2,000, ולאשכול, מ-$5,000. חיסכון אופייני מעלויות אחסון מופחתות עולה על $10,000 בשנה עבור תשתיות בינוניות.

הגדרת אחסון ארוך טווח של Prometheus עם VictoriaMetrics

ההגדרה מסתכמת בשני שלבים. התחל את VictoriaMetrics:

---
services:
  victoriametrics:
    image: victoriametrics/victoria-metrics:v1.101.0
    ports:
      - "8428:8428"
    volumes:
      - vm-data:/storage
    command:
      - -storageDataPath=/storage
      - -retentionPeriod=12
      - -httpListenAddr=:8428
      - -dedup.minScrapeInterval=15s

הוסף remote_write ל-Prometheus:

remote_write: - url: http://victoriametrics:8428/api/v1/write queue_config: max_samples_per_send: 10000 max_shards: 8 

זהו. אין Sidecar, Store Gateway, Distributor, Compactor. VictoriaMetrics מקבל מיד נתונים, מאחסן אותם, ועונה לשאילתות. תהליך אחד, נפח אחד. ב-Grafana — סוג מקור נתונים Prometheus, כתובת services: victoriametrics: image: victoriametrics/victoria-metrics:v1.101.0 ports: - "8428:8428" volumes: - vm-data:/storage command: - -storageDataPath=/storage - -retentionPeriod=12 - -httpListenAddr=:8428 - -dedup.minScrapeInterval=15s .

מדוע VictoriaMetrics יעיל יותר מ-Prometheus לאחסון?

VictoriaMetrics משתמש בפורמט אחסון משלו עם דחיסה טובה יותר: נתוני סדרות זמן עם דלתות קטנות בין נקודות נדחסים ל-0.4–0.8 בייטים לנקודה לעומת 1–2 בייטים עבור Prometheus TSDB. עבור שנה של מדדים עם 200 אלף סדרות פעילות, זה אומר כמה מאות ג'יגה-בייטים לעומת טרה-בייטים עבור Prometheus. בנוסף, הסרת כפילויות של נתונים כפולים כלולה לאיסוף HA. כפי שנאמר בתיעוד אחד, VictoriaMetrics משיג מספרים אלה באמצעות דחיסה ברמת סיביות ואלגוריתם Gorilla.

צומת יחיד או אשכול: מה לבחור?

פרמטר צומת יחיד אשכול (victoriametrics/cluster)
קליטה מקסימלית ~1M דגימות/שנייה >1M דגימות/שנייה
סובלנות לתקלות לא מובנית כן (replicationFactor)
מורכבות פריסה מינימלית בינונית (4 רכיבים)
תרחיש מומלץ עד 5 Prometheus, on-premise מערכות בעומס גבוה, ענן

צומת יחיד מתאים לרוב התשתיות הקטנות עד הבינוניות on-premise. יש צורך באשכול כאשר הקליטה עולה על ~1M דגימות/שנייה או נדרשת סקלביליות אופקית.

גרסת אשכול

ארכיטקטורת אשכול:

vmagent (scraping / remote_write forwarding) |
vminsert (ingestion, stateless, N replicas) |
vmstorage (хранение, StatefulSet, шардинг по label hash) |
vmselect (query, stateless, N replicas)

פריסה באמצעות Helm:

helm repo add vm https://victoriametrics.github.io/helm-charts/
helm install victoria-metrics-cluster vm/victoria-metrics-cluster \
  -f values.yaml \
  --namespace monitoring

פרמטרים מרכזיים של remote_write: - url: http://victoriametrics:8428/api/v1/write queue_config: max_samples_per_send: 10000 max_shards: 8 :

---
vmstorage:
  replicaCount: 2
  persistentVolume:
    size: 500Gi
  extraArgs:
    retentionPeriod: "12"
    dedup.minScrapeInterval: "15s"
vminsert:
  replicaCount: 2
  extraArgs:
    replicationFactor: "2"
vmselect:
  replicaCount: 2
  extraArgs:
    dedup.minScrapeInterval: "15s"

http://victoriametrics:8428 — כל נקודת נתונים נכתבת ל-2 צמתי vmstorage. vmagent (scraping / remote_write forwarding) | vminsert (ingestion, stateless, N replicas) | vmstorage (хранение, StatefulSet, шардинг по label hash) | vmselect (query, stateless, N replicas) חייב להתאים ב-insert וב-select.

טעויות נפוצות ביישום VictoriaMetrics

  • הסרת כפילויות לא מוגדרת. אם שני מופעי Prometheus מגרדים את אותם יעדים, כפילויות מצטברות. תמיד הגדר helm repo add vm https://victoriametrics.github.io/helm-charts/ helm install victoria-metrics-cluster vm/victoria-metrics-cluster \ -f values.yaml \ --namespace monitoring באחסון וב-select.
  • תקופת שמירה שגויה. הגדר values.yaml בחודשים; אחרת, כברירת מחדל נתונים נשמרים רק 30 יום.
  • חוסר ניטור של VictoriaMetrics עצמו. התקן את לוח המחוונים הרשמי של Grafana עם מזהה vmstorage: replicaCount: 2 persistentVolume: size: 500Gi extraArgs: retentionPeriod: "12" dedup.minScrapeInterval: "15s" vminsert: replicaCount: 2 extraArgs: replicationFactor: "2" vmselect: replicaCount: 2 extraArgs: dedup.minScrapeInterval: "15s" , עקוב אחר replicationFactor: 2 (נקודות מחוץ לסדר) ו-dedup.minScrapeInterval.
  • התעלמות מפרמטרי תור remote_write. עבור תפוקה גבוהה, הגדל -dedup.minScrapeInterval ו--retentionPeriod כדי למנוע עיכובים.

תוצרי פריסה

  1. ביקורת של מערכת הניטור הנוכחית (Prometheus, יעדים, תקופת שמירה, עומס).
  2. עיצוב ארכיטקטורה: צומת יחיד או אשכול, הערכת אחסון.
  3. פריסת VictoriaMetrics (docker-compose, Helm, או bare metal).
  4. הגדרת remote_write בכל מופעי Prometheus.
  5. ניטור VictoriaMetrics: לוחות מחוונים של Grafana, התראות (לדוגמה, דיסק חופשי נמוך).
  6. הגירת נתונים היסטוריים מ-Prometheus באמצעות 10229.
  7. הכשרת הצוות בניהול ופעולות אופייניות.
  8. תיעוד: דיאגרמות, runbooks לאירועים, תצורות.
  9. תמיכה לאחר פריסה למשך 30 יום.

לוחות זמנים ועלות

לוחות זמנים: 2 עד 5 ימי עסקים בהתאם למורכבות (מספר מופעים, נפח נתונים, צורך בהגירה). העלות מחושבת בנפרד לאחר הביקורת. בקש ייעוץ — נעריך את התשתית שלך ונבחר את הפתרון האופטימלי. הניסיון שלנו: רקורד נרחב עם פריסות רבות של VictoriaMetrics בסביבת ייצור. מהנדסים מוסמכים מבטיחים אמינות וביצועים.

דוגמה לחיסכון בעלויות

מדד Prometheus TSDB (שנה) VictoriaMetrics (שנה) חיסכון
500,000 סדרות, גירוד כל 15 שניות 4.5 TB 0.9 TB 80%
2 מיליון סדרות, גירוד כל 30 שניות 10 TB 2 TB 80%

קריטריונים לבחירת VictoriaMetrics

עבור רוב התשתיות הקטנות עד הבינוניות on-premise (עד 5–10 מופעי Prometheus, עד כמה מיליוני סדרות פעילות), VictoriaMetrics בצומת יחיד הוא הנתיב הפשוט והיעיל ביותר. אשכול מומלץ כאשר נדרשת סקלביליות אופקית או זמינות גבוהה. VictoriaMetrics עובד היטב גם כתחליף ל-Thanos בסביבות ענן (AWS, GCP, Yandex Cloud).

לצוות שלנו יש ניסיון של למעלה מ-5 שנים בניטור תשתיות ופרס בהצלחה את VictoriaMetrics עבור 50+ לקוחות. אנחנו בשוק מאז 2019, מספקים תמיכה אמינה ומומחיות.

קבל ייעוץ — נעזור לך לבחור את התצורה, לפרוס את המערכת, ולהקים ניטור מקצה לקצה.