Stack معروف ELK شامل Elasticsearch، Logstash و Kibana است و یکی از قدرتمندترین ابزارها برای جمعآوری، تحلیل و نمایش لاگهای سرویسها و اپلیکیشنها محسوب میشود. این سیستم امکان مانیتورینگ در زمان واقعی (Real-time) را فراهم میکند.
ساختار کلی ELK برای مانیتورینگ
- Elasticsearch: پایگاه داده و موتور جستجو برای ذخیره و ایندکسگذاری لاگها.
- Logstash: جمعآوری و پردازش لاگها از منابع مختلف، تبدیل و ارسال به Elasticsearch.
- Kibana: نمایش دادهها، ساخت داشبورد و اجرای کوئریها برای تحلیل لاگها.
مثال عملی برای مانیتورینگ یک سرویس
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، تیمهای توسعه و عملیات میتوانند وضعیت سرویسها را به شکل مؤثر پایش کنند، مشکلات را سریعتر شناسایی کنند و تصمیمات بهتری در مدیریت زیرساختها اتخاذ کنند.