elk چیست ؟ آموزش نصب elk stack به طور کامل
ELK چیست ؟ دلیل اهمیت elk stack چیست ؟ ما در این مقاله با توضیح در مورد اینکه elk معنی چیست و چگونه میتوان از آن استفاده کرد، تلاش میکنیم با پاسخ به این سوالت، شما را با تمامی جنبههای ELK آشنا کنیم؛ با ما همراه باشید.
elk چیست ؟
اگر شما هم با این سوال مواجهید که elk یعنی چه و یا اینکه elk مخفف چه کلماتی است باید عنوان کنیم که به طورکلی ELK Stack مجموعهای از سه محصول منبع باز Elasticsearch، Logstash و Kibana بوده که همگی توسط Elastic توسعه، مدیریت و نگهداری میشوند. بیایید برای درک درست معنای elk هرکدام از این محصولات را بررسی کنیم.
- Elasticsearch: موتور تجزیهوتحلیل متنباز و مبتنی بر موتور جستجوی Apache Lucene
- Logstash: Logstash یک log aggregator است که دادهها را از منابع ورودی مختلف جمعآوری کرده و پس از انجام تبدیلهای مختلف، آنها را به مقصدهای خروجی مختف میفرستد. (از آنجایی آشنایی با Logstash و کاربردهای آن اهمیت بالایی برای درک آموزش elk stack دارد، پیشنهاد میکنیم ابتدای مقالهی Logstash چیست را مطالعه نمایید.)
- Kibana: یک visualization است که در بالای Elasticsearch کار میکند و به کاربران امکان میدهد به تجزیه، تحلیل و visualization دادهها بپردازند. (پیشنهاد ميکنیم پیش از ادامهی این مقاله، به درستی با مفهوم کیبانا آشنا شوید، برای این کار، مقالهی kibana چیست را مطالعه نمایید.)
هرکدام از این بخشها برای نظارت، عیبیابی و ایمنسازی محیطهای فناوری اطلاعات استفاده میشوند؛ هرچند که موارد استفاده بیشتری برای ELK Stack مانند هوش تجاری و تجزیه و تحلیل وب وجود دارد. Beats و Logstash از جمعآوری و پردازش دادهها مراقبت میکنند، Elasticsearch دادهها را فهرستبندی و ذخیره میکند و Kibana یک رابط کاربری برای جستجوی دادهها و visualization آنها فراهم میکند.
دلیل اهمیت elk چیست؟
امروزه ELK Stack بسیار محبوب بوده و کاربران بسیاری از آن استفاده مینمایند. دلیل این امر این است که این ابزار، نیازها را در فضای مدیریت گزارش و تجزیه و تحلیل برآورده میکند. نظارت بر برنامههای کاربردی مدرن و زیرساختهای فناوری اطلاعات که روی آنها مستقر شدهاند، نیازمند یک راهحل مدیریت گزارش و تجزیه و تحلیل است که مهندسان را قادر میسازد تا چالشهای نظارت بر محیطهای بسیار پراکنده، پویا و پر سروصدا برطرف کنند.
ELK Stack با ارائه یک پلتفرم قدرتمند به کاربران کمک میکند تا دادهها را از چندین منبع داده جمعآوری و پردازش کنند. پس از آن، این دادهها در یک stores داده متمرکز ذخیره میشوند که مقیاس پذیر است و مجموعهای از ابزارها را برای تجزیه و تحلیل دادهها در اختیار شما میگذارد.
امتیاز دیگری که در مورد ELK Stack وجود دارد، منبع باز بودن آن است (opensource). با توجه به اینکه سازمانهای فناوری اطلاعات از محصولات منبع باز حمایت می کنند، این موضوع میتواند به تنهایی محبوبیت بالای آن را توجیح نماید.
دلیل اهمیت تجزیه و تحلیل دادهها چیست؟
در دنیای رقابتی امروز، حتی یک ثانیه از کار افتادگی یا عملکرد کند برنامههای سازمانهای میتواند برای آنها زیان بار باشد. مسائل مربوط به عملکرد یک برنامه میتواند به یک برند آسیب رسانده و ضررهایی را در پی داشته باشید. به همین دلیل، رعایت نکردن استانداردهای نظارتی میتواند منجر به جریمههای سنگین شده و به کسبوکار آنها آسیب وارد نماید.
برای اطمینان از اینکه برنامهها همیشه در دسترس، کارآمد و ایمن هستند، مهندسان به انواع مختلف دادههای تولید شده توسط برنامههای کاربردیشان و زیرساختهایی که از آنها پشتیبانی میکنند، تکیه دارند. به یاد داشته باشید که لاگها همیشه وجود داشتهاند و به همین ترتیب ابزارهای مختلف برای تجزیه و تحلیل آنها موجود است.
با این حال آنچه تغییر کرده، معماری زیربنایی محیطهایی است که این گزارشها را تولید میکنند. به عبارتی معماری میکروسرویسها، کانتینرها و زیرساختهای ارکستراسیون که روی ابر یا در محیطهای ترکیبی مستقر شدهاند، تکامل یافته است. علاوهبرآن، حجم عظیم دادههای تولید شده توسط این محیطها به طور مداوم در حال رشد است که کنترل آنها خود یک چالش است. روزهایی که یک مهندس میتوانست به سادگی SSH را در یک ماشین قرار دهد و یک فایل گزارش را grep کند، گذشته است. این کار را نمیتوان در محیطهای متشکل از صدها کانتینر انجام داد که TB دادههای گزارش را روزانه تولید میکنند.
اینجاست که راهحلهای مدیریت لاگ متمرکز و تحلیلی مانند ELK Stack به کارآمده و به مهندسان DevOps، IT Operations یا SREs اجازه میدهد تا لاگهای مورد نیاز خود را به دست آورده و در نهایت اطمینان حاصل کنند که برنامهها همیشه در دسترس و کارآمد هستند.
sre چیست؟
sre مخفف عبارت Site reliability engineering است که در زبان فارسی با نام مهندسی قابلیت اطمینان سایت نیز شناخته میشود. شغل sre یک رویکرد مهندسی نرم افزار برای عملیات فناوری اطلاعات است که برای پیشبرد اهداف و عملکردهای متفاوتی مورد استفاده قرار میگیرد. بهطور مثال، تیم sre از نرمافزار به عنوان ابزاری برای مدیریت سیستمها، حل مشکلات و خودکارسازی وظایف عملیات بهره میگیرد.
E وظایفی را که در طول تاریخ توسط تیمهای عملیات و اغلب به صورت دستی انجام میشد را برعهدهی مهندسان یا تیمهای عملیاتی قرار میداد تا با استفاده از نرمافزار و اتوماسیونهای مختلف برای حل مشکلات و مدیریت سیستمهای تولید استفاده کنند. همین امر، SRE را به یک روش ارزشمند و قابل اعتماد در زمان ایجاد سیستمهای نرمافزاری مقیاسپذیر تبدیل کرده است.
SRE به شما کمک میکند تا سیستمهای بزرگ را از طریق کدها مدیریت کنید که همین امر موجب میشود sysadmin هایی که هزاران یا صدها هزار ماشین را مدیریت میکنند، مقیاس پذیرتر و پایدارتر عمل نمایند.
از آنجایی که صحبت بیشتر در مورد sre و مزایای استفاده از آن، در این مقاله نمیگنجد، ما در مقالهای دیگر به تفصیل در این مورد توضیح دادهایم. شما با مراجعه به وبلاگ ابرآراز و مطالعهی مقالهی sre چیست میتوانید از مزایای بیشمار آن بهره ببرید.
آشنایی با راهحلهای تجزیهوتحلیل دادهها
بهطورکلی، راهحلهای مدیریت لاگ مدرن و تجزیهوتحلیل شامل قابلیتهای کلیدی زیر است:
- توانایی جمعآوری و ارسال گزارشها از چندین منبع داده.
- توانایی تبدیل پیامهای گزارش به دادههای معنیدار برای تجزیهوتحلیل آسانتر.
- توانایی ذخیره دادهها برای دورههای زمانی طولانی جهت امکان نظارت، تجزیهوتحلیل روند و موارد استفاده امنیتی.
نحوهی تجزیه و تحلیل دادهها با استفاده از elk چیست
همانطور که پیش از این نیز عنوان کردیم، اجزای مختلف ELK (Elasticsearch، Logstash و Kibana) یک راهحل ساده و در عین حال قدرتمند برای مدیریت گزارش و تجزیهوتحلیل ارائه میکنند. اجزای مختلف در ELK به گونهای طراحی شدهاند که بدون تنظیمات اضافی با یکدیگر تعامل داشته و به خوبی با یکدیگر کار کنند. با این حال، نحوه طراحی stack در محیط مورد استفاده شما متفاوت است. برای یک محیط توسعه با اندازه کوچک، معماری کلاسیک به صورت زیر خواهد بود:
برای مدیریت مقادیر زیادی داده در تولید، احتمالاً اجزای اضافی به معماری لاگ شما اضافه میشوند؛ برای انعطافپذیری (Kafka RabbitMQ ،Redis) و امنیت (nginx):
همانطور که از یک پروژه متنباز بسیار محبوب انتظار میرود، ELK Stack به طور مداوم و مکرر با ویژگیهای جدید بروز میشود. در جریان بودن این تغییرات چالش برانگیز است؛ بنابراین در این بخش، ویژگیهای جدید معرفی شده در نسخههای اصلی را بررسی خواهیم کرد.
آشنایی با Elasticsearch
راهاندازی Elasticsearch 7.x بسیار ساده است. بهبودهای عملکردی شامل قطع کننده مدار حافظه، عملکرد جستجوی بهبود یافته و… . علاوه بر این، یک لایه جدید هماهنگی خوشهای، Elasticsearch را مقیاس پذیرتر و انعطاف پذیرتر میکند.
منظور از Kibana چیست ؟
کیبانا با صفحات جدید و بهبود قابلیت استفاده، دستخوش تغییرات اساسی شده است. آخرین نسخه شامل حالت dark-mode، جستجو، فیلتر بهبود یافته و بهبود Canvas است.
Beats یعنی چه؟
Beats 7.x با طرح جدید Elastic Common Schema (ECS) مطابقت دارد؛ یک استاندارد جدید برای قالببندی فیلد. Metricbeat از یک ماژول جدید AWS برای استخراج دادهها از Amazon CloudWatch، Kinesis و SQS پشتیبانی میکند. علاوه برآن، ماژولهای جدید Filebeat و Auditbeat نیز معرفی شدهاند.
نحوهی نصب elk چیست ؟
در زمان نصب ELK Stack گزینههای بسیاری پیش روی شماست؛ از جمله:
- قابلیت نصب بر روی مجموعه وسیعی از سیستمعاملها و محیطهای مختلف
- نصب به صورت محلی و ابری
- نصب با استفاده از Docker و سیستمهای مدیریت پیکربندی مانند Ansible، Puppet و Chef
بسیاری از مراحل نصب ELK از محیطی به محیط دیگر مشابه است و از آنجایی که نمیتوانیم تمام سناریوهای مختلف را پوشش دهیم، نمونهای برای نصب تمام اجزای stack یعنی Elasticsearch، Logstash، Kibana و Beats در لینوکس را بررسی میکنیم.
ابتدا، باید کلید Elastic را اضافه کنید تا بسته دانلود شده تأیید شود.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
برای دبیان، باید بسته apt-transport-https را نصب کنیم:
sudo apt-get update sudo apt-get install apt-transport-https
در مرحله بعدی باید repository را به سیستم خود اضافه کنید:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
تنها کاری که باید انجام دهید این است که مخازن خود را به روز و Elasticsearch را نصب کنید:
sudo apt-get update sudo apt-get install elasticsearch
پیکربندیهای Elasticsearch با استفاده از یک فایل پیکربندی انجام میشوند که به شما امکان میدهد تنظیمات کلی و همچنین تنظیمات شبکه (مانند پورت)، جایی که دادهها، حافظه، فایلهای گزارش ذخیره میشوند را پیکربندی کنید.
به عنوان مثال، از آنجایی که ما در حال نصب Elasticsearch هستیم، بهترین روش اتصال Elasticsearch به یک IP خصوصی یا local است:
sudo vim /etc/elasticsearch/elasticsearch.yml network.host: "localhost" http.port:9200 cluster.initial_master_nodes: ["<PrivateIP"]
برای اجرای Elasticsearch از دستور زیر استفاده کنید :
sudo service elasticsearch start
برای تایید اینکه همه چیز درست کار میکند، در مرورگر http://localhost:9200 را وارد کنید. خروجی باید مانند زیر باشد:
{ "name" : "ip-172-31-10-207", "cluster_name" : "elasticsearch", "cluster_uuid" : "bzFHfhcoTAKCH-Niq6_GEA", "version" : { "number" : "7.1.1", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "7a013de", "build_date" : "2019-05-23T14:04:00.380842Z", "build_snapshot" : false, "lucene_version" : "8.0.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
نصب Logstash
Logstash برای اجرا به جاوا 8 یا جاوا 11 نیاز دارد:
sudo apt-get install default-jre
java -version openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Logstash را نصب کنید:
sudo apt-get install logstash
نصب کیبانا
مانند قبل، از یک دستور apt ساده برای نصب کیبانا استفاده میکنیم:
sudo apt-get install kibana
فایل پیکربندی Kibana را در آدرس زیر باز کنید: /etc/kibana/kibana.yml، و مطمئن شوید که تنظیمات زیر را وارد کرده اید:
server.port: 5601 elasticsearch.url: "http://localhost:9200"
این پیکربندی به Kibana میگویند که به کدام Elasticsearch متصل شده و از کدام پورت استفاده کند. پس از آن، Kibana را استارت کنید
sudo service kibana start
نصب Beats
sudo apt-get install metricbeat pipeline
برای Metric Beat استارت، وارد کنید:
sudo service metricbeat start
Metricbeat شروع به نظارت بر سرور شما کرده و یک لیست Elasticsearch ایجاد میکند که میتوانید آن را در Kibana تعریف کنید. در قسمت بعدی نحوه راهاندازی pipeline داده با استفاده از Logstash را شرح خواهیم داد.
چرا ابرآراز برای خرید سرور مجازی انتخاب مناسبی است؟
با خرید سرور مجازی تحویل آنی ایران که با تکنولوژی ابری در ابر آراز ارائه میشود، یک آی پی شخصی به شما اختصاص مییابد. با استفاده از این تکتولوژی امکان استفاده از بهترین منابع سختافزاری و نرمافزاری برای شما فراهم شده و میتوانید از ترافیک نامحدود این سرویسها نیز بهرهمند شوید.
ترافیک نامحدود بدین معناست که برای میزان مصرف شما هیچ محدودیتی وجود ندارد و میتوان به میزان دلخواه از ترافیک استفاده کرد. همچنین با خرید vps ایران امنیت سایت شما با فایروال ابری تامین میگردد و یک دواپس همیشه در کنار شماست تا Up time بودن، مقیاسپذیر بودن، امنیت و قابلاطمینان بودن سرویس شما را تضمین کند؛ مضاف بر آنکه کارشناسان فنی ما در ۲۴ ساعت شبانه روز در خدمت شما عزیزان هستند.