Table of Contents
در محیط های مدرن 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 به آن، شما یک راه حل برش مقیاس پذیر و انعطاف پذیر را ایجاد می کنید که می تواند با زیرساخت های شما رشد کند.