تخطَّ إلى المحتوى

Vector - خط أنابيب بيانات الملاحظة عالي الأداء (Cheatsheet)

Vector - خط أنابيب بيانات الملاحظة عالي الأداء (Cheatsheet)

Vector (بواسطة Datadog، مفتوح المصدر) هو خط أنابيب ملاحظة عالي الأداء ** مكتوب بـ Rust. يجمع السجلات والمقاييس والتتبعات من أي مصدر، يعيد تشكيلها من خلال تحويلات، وينقلها إلى أي بالوعة — الكل غير معتمد على البائع، بحيث يمكنك التبديل بين الخلفيات بدون إعادة أدوات مرة أخرى. عادة ما يستخدم جزء من CPU والذاكرة من Logstash أو Fluentd، والذي يأتي عندما يعمل عامل على كل عقدة.

التثبيت

الطريقةالأمر
سكريبت التثبيت`curl —proto ‘=https’ —tlsv1.2 -sSf https://sh.vector.dev
Debian/Ubuntu.deb من إصدارات Vector
macOS (Homebrew)brew install vectordotdev/brew/vector
Dockerdocker run -v $PWD/vector.yaml:/etc/vector/vector.yaml timberio/vector:latest-alpine
التحققvector --version

النموذج: المصادر → التحويلات → البالوعات

# vector.yaml
sources:
  app_logs:
    type: file
    include: ["/var/log/app/*.log"]

transforms:
  parse:
    type: remap
    inputs: ["app_logs"]
    source: |
      . = parse_json!(.message)
      .env = "production"
      del(.password)

sinks:
  out:
    type: elasticsearch
    inputs: ["parse"]
    endpoints: ["http://es:9200"]
المرحلةالغرض
sourcesمصدر البيانات
transformsتحليل، تصفية، إثراء، تحرير، تجميع
sinksحيث تذهب البيانات
inputsأسلاك المكونات إلى DAG

المصادر الشائعة

المصدريجمع
fileملفات السجل (tailing)
journaldدفتر systemd
kubernetes_logsسجلات Pod مع البيانات الوصفية k8s
docker_logsسجلات الحاوية
http_serverنقطة نهاية الدفع
syslogSyslog عبر TCP/UDP
prometheus_scrapeاستخراج نقاط نهاية المقاييس
opentelemetryاستيعاب OTLP

البالوعات الشائعة

البالوعةيرسل إلى
elasticsearchElasticsearch/OpenSearch
lokiGrafana Loki
clickhouseClickHouse
aws_s3S3 (أرشفة)
prometheus_exporterكشف المقاييس
datadog_logs / splunk_hecالبواجهات الخلفية للبائعين
consolestdout (تصحيح)
blackholeتجاهل (اختبار)

VRL (Vector Remap Language)

تحويل remap حيث يحدث معظم العمل.

# تحليل، إثراء، تحرير، وإسقاط الضوضاء
. = parse_json!(.message)
.timestamp = parse_timestamp!(.ts, "%+")
.service = "checkout"
del(.credit_card)
if .level == "debug" { abort }
دالة VRLالغرض
parse_json!, parse_regex!, parse_grok!هيكل النص الخام
del(.field)إزالة حقل (تحرير PII)
to_int!, to_float!إكراه النوع
abortإسقاط الحدث
merge, flattenإعادة تشكيل الكائنات

التحويلات المفيدة

التحويليفعل
remapإعادة تشكيل قائم على VRL (الحصان العامل)
filterالاحتفاظ بالأحداث المطابقة لشرط
routeتقسيم التدفق إلى فروع مسماة
aggregateدحرجة المقاييس على فترة
throttleأحداث مزعجة بمعدل
dedupeإسقاط النسخ المكررة
sampleالاحتفاظ بنسبة مئوية من الأحداث

تشغيل Vector

الأمرالوصف
vector --config vector.yamlتشغيل مع إعداد
vector validateتحقق من الإعداد قبل النشر
vector testشغّل اختبارات الوحدة المحددة في الإعداد
vector topTUI مباشر للإنتاجية لكل مكون
vector tap <component>الأحداث المتدفقة عبر مكون
--watch-configإعادة تحميل ساخن على تغيير الإعداد
# تصحيح ما الذي يصدره التحويل بالفعل
vector tap parse

الموثوقية

الميزةملاحظة
مخازن الأقراصنجاة من إعادة التشغيل/الضغط الخلفي (buffer.type: disk)
الإقرارضمانات التسليم من النهاية إلى النهاية
المقابلة التكيفيةمعدل طلب البالوعة التلقائي
فحوصات الصحةالفشل السريع على البالوعات التي لا يمكن الوصول إليها

Vector مقابل البدائل

الجانبVectorFluent BitLogstash
اللغةRustCJRuby/JVM
استخدام المواردمنخفض جداًمنخفض جداًعالي
لغة التحويلVRL (غني)Lua/filtersRuby/grok
أنواع البياناتالسجلات والمقاييس والتتبعاتالسجلات والمقاييسالسجلات
الأفضل لـخطوط أنابيب غير معتمدة على البائععامل الحافة الفائق الخفةمكدسات ELK الموروثة

يغذي بالوعات مثل OpenObserve، Loki، و Elasticsearch؛ قارن مع Fluentd.

الموارد