Stack معروف ELK شامل Elasticsearch، Logstash و Kibana است و یکی از قدرتمندترین ابزارها برای جمعآوری، تحلیل و نمایش لاگهای سرویسها و اپلیکیشنها محسوب میشود. این سیستم امکان مانیتورینگ در زمان واقعی (Real-time) را فراهم میکند.
ساختار کلی ELK برای مانیتورینگ
- Elasticsearch: پایگاه داده و موتور جستجو برای ذخیره و ایندکسگذاری لاگها.
- Logstash: جمعآوری و پردازش لاگها از منابع مختلف، تبدیل و ارسال به Elasticsearch.
- Kibana: نمایش دادهها، ساخت داشبورد و اجرای کوئریها برای تحلیل لاگها.
Logstash یکی از ابزارهای اصلی در اکوسیستم ELK (Elasticsearch, Logstash, Kibana) است که وظیفه جمعآوری، پردازش و انتقال دادهها را بر عهده دارد. این ابزار به عنوان یک pipeline عمل میکند که دادهها را از منابع مختلف دریافت کرده، آنها را پردازش میکند و در نهایت به مقصدی مانند Elasticsearch ارسال میکند.

کاربردهای اصلی Logstash
- جمعآوری دادهها: Logstash میتواند دادهها را از منابع متنوعی مانند فایلهای لاگ، دیتابیسها، سرویسها، پیامرسانها (Message Brokers) و حتی APIها دریافت کند.
- پردازش و تغییر شکل دادهها: قبل از ارسال داده به Elasticsearch، میتوان آنها را فیلتر، پاکسازی، ساختاردهی یا حتی تغییر فرمت داد. برای مثال، تبدیل یک رشته به تاریخ یا استخراج IP از متن.
- ارسال داده به مقصد: دادههای پردازششده معمولاً به Elasticsearch فرستاده میشوند، اما Logstash قابلیت ارسال به مقاصد دیگری مانند پایگاهدادهها یا سرویسهای ابری را هم دارد.
ارتباط Logstash با Elasticsearch
Logstash دادههای خام (مانند لاگهای برنامه، فایلهای سیستمی یا دادههای سنسورها) را جمعآوری کرده و آنها را به شکل ساختیافته و قابل جستجو در میآورد. سپس این دادههای پردازششده را به Elasticsearch ارسال میکند تا در ایندکسها ذخیره شوند. این کار باعث میشود جستجو، تحلیل و مانیتورینگ دادهها در Kibana سادهتر و مؤثرتر شود.
مثال عملی برای مانیتورینگ یک سرویس و تنظیمات log stash
input {
file {
path => "/var/log/my_service.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:level} %{GREEDYDATA:msg}" }
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "service-logs-%{+YYYY.MM.dd}"
}
}
- تنظیم Logstash برای دریافت لاگها از فایل یا سرویسها و ارسال به Elasticsearch:
- در Kibana میتوان داشبوردی برای نمایش وضعیت سرویسها ایجاد کرد:
- گروهبندی لاگها بر اساس سطح پیام (
level) - نمایش تعداد خطاها و هشدارها در بازههای زمانی
- فیلتر بر اساس سرویس یا مؤلفههای مختلف
- گروهبندی لاگها بر اساس سطح پیام (
- با استفاده از Visualize و Dashboard در Kibana، میتوان نمودارهای زمانبندی، جداول و هشدارها را به صورت Real-time مشاهده کرد.

مزایای استفاده از ELK برای مانیتورینگ
- دسترسی سریع به لاگها و اطلاعات سرویسها
- امکان جستجوی پیچیده و تحلیل دادهها با Query DSL
- ایجاد داشبوردهای قابل تنظیم و گزارشهای گرافیکی
- پشتیبانی از هشداردهی و اعلان در زمان واقعی
- مقیاسپذیری بالا برای سیستمهای بزرگ
با استفاده از ELK، تیمهای توسعه و عملیات میتوانند وضعیت سرویسها را به شکل مؤثر پایش کنند، مشکلات را سریعتر شناسایی کنند و تصمیمات بهتری در مدیریت زیرساختها اتخاذ کنند.