در محیط های مدرن IT، مدیریت logs به طور موثر برای حفظ سلامت سیستم، مسائل عیب یابی و اطمینان از امنیت. Docker container، در حالی که انعطاف پذیر است، می تواند مقادیر زیادی از داده های log را ایجاد کند که باید جمع آوری و تجزیه و تحلیل شوند. Fluentd یک جمع آوری داده منبع باز است که جمع آوری داده ها را ساده می کند، و آن را انتخاب عالی برای محیط های containerized است.

Fluentd چیست؟

Fluentd یک لایه ثبت نام یکپارچه است که به شما اجازه می دهد تا جمع آوری، پردازش و حمل و نقل از منابع مختلف به مقاصد مختلف است، آن را بسیار قابل پیکربندی، پشتیبانی از پلاگین های متعدد، و می تواند حجم بالایی از داده های log با حداقل تاخیر آن انعطاف پذیری آن را ایده آل برای ادغام با زیرساخت های مبتنی بر Docker.

تنظیم Fluentd با Docker

برای ایجاد یک زیرساخت مبتنی بر داکتر، با استقرار Fluentd به عنوان یک container شروع کنید، شما به یک فایل پیکربندی نیاز خواهید داشت که تعریف می کند که چگونه log ها جمع آوری شده و در کجا ارسال می شوند، نمونه ای اساسی از تنظیمات Docker Compose برای Fluentd است:

version: '3'
services:
 fluentd:
 image: fluent/fluentd:v1.14-1
 ports:
 - "24224:24224"
 - "24224:24224/udp"
 volumes:
 - ./fluentd/conf:/fluentd/etc
 - ./logs:/fluentd/log
 environment:
 - FLUENTD_ARGS=--no-supervisor -v

ایجاد یک فایل پیکربندی Fluentd

فایل پیکربندی منابع ورودی، فیلترها و مقاصد خروجی را مشخص می کند، در اینجا یک مثال ساده برای جمع آوری logs از ظروف Docker و ارسال آنها به Elasticsearch است:

<source>
 @type forward
 port 24224
 bind 0.0.0.0
</source>

<match **>
 @type elasticsearch
 host elasticsearch
 port 9200
 logstash_format true
 include_tag_key true
 flush_interval 5s
</match>

ادغام Docker Containers

برای ارسال logs از ظروف Docker به Fluentd، Docker daemon را پیکربندی کنید تا از Fluentd به عنوان راننده log استفاده کنید.این می تواند با تنظیم راننده log در Docker اجرا فرمان یا در Docker Compose انجام شود:

services:
 myapp:
 image: myapp:latest
 logging:
 driver: fluentd
 options:
 fluentd-address: localhost:24224

مزایای استفاده از Fluentd با Docker

  • [[۱] [۱۰] [۱] [۱] [۱] [۱]] [۱]] [۱]] [۱] [۱]] [۱]] [۱]] [۱] [۱]] [۱]] [۱]] [۱] [۱]] [۱] [۱] [۱]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۵] [۱] [۱] [۱] [۱] [۱]]] [۱] [۱]] [۱] [۱] [۱]]]]] [۱]]]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]]] [۱] [۱]]] [۱] [۱
  • [[۱] [۱۰]: [[۱۰] [۱۰] [۱]] [۱]] [۱۰] [۱]] [۱]] [۱] [۱۰]] [۱] [۱]] [۱] [۱۰]] [۱] [۱]] [۱] [۱]] [۱] [۱]] [۱] [۲] [۱] [۱] [۱] [۲] [۱] [۲] [۲] [۲] [۲] [۱] [۱] [۱]] [۲] [۲]] [۲] [۲]] [۲] [۲] [۲] [۱]]]] [۱]]]] [۲] [۲] [۲] [۱] [۲] [۲] [۲] [۱] [۱] [۱] [۱] [۲]] [۲] [۲] [۲] [۲] [۱] [۱] [۱] [۱]] [۱] [۱] [۱] [۲] [۲] [۲] [۲] [۲]]] [۲] [۲] [۲] [۲] [۱
  • [[۱] [۱۰]: [[۱۰] [۱۰] [۱۰] [۱]] [۱۰]] [۱]] [۱] [۱]]) حجم زیادی از داده های log را به طور موثر مدیریت می کند.
  • قابلیت: به راحتی با پلاگین های سفارشی و فیلتر گسترش می یابد.

نتیجه گیری

پیاده سازی یک زیرساخت مبتنی بر داکتر با Fluentd توانایی شما برای نظارت، عیب یابی و تجزیه و تحلیل برنامه های containerized را افزایش می دهد.با تنظیم Fluentd به عنوان یک جمع آوری کننده ی log متمرکز و پیکربندی ظروف Docker برای ارسال logs به آن، شما یک راه حل برش مقیاس پذیر و انعطاف پذیر را ایجاد می کنید که می تواند با زیرساخت های شما رشد کند.