در این مجموعه مطلب قصد داریم تا ELK Stack را نصب و پیکربندی کنیم.ELK سر نام واژه های Elasticsearch,Logstash و Kibana می باشد.با ترکیب این سه نرم افزار مجموعه ای که به ELK Stack معروف می باشد بوجود می آید که در واقع یک سیستم متمرکز برای log ها می باشد.
Elasticsearch : یک نرم افزار Open Source می باشد که به عنوان search engine شناخته می شود و با جاوا توسعه داده شده است.داده ها به صورت JSON بر روی Elasticsearch ذخیره و بازیابی خواهند شد و به زبان دیگر Elasticsearch قلب ELK Stack می باشد.
Logstash : یک نرم افزار Open Source برای مدیریت event ها و log ها می باشد.logstash تمام log data ها را جمع آوری و آنها را به صورت JSON document تبدیل می کند و بر روی Elasticsearch ذخیره می کند.
Kibana : یک ابزار data visualization برای Elasticsearch می باشد که به صورت Open Source است.Kibana یک dashboard قدرتمند به صورت یک رابط وب ارائه می دهد که با استفاده از آن می توان داده های Elasticsearch را مدیریت و visualize کرد.
Filebeat : ابزاری جهت ارسال log ها از client server به logstash می باشد.که در واقع یک agent می باشد که باید بر روی ماشین هایی که قرار است لاگ های خود را به ELK Stack ارسال کنند، نصب می شود.
سناریو به این صورت می باشد که ما قصد داریم تا ELK را بر روی یک سرور با توزیع CentOS 7.x نصب کنیم. سپس برای ارسال لاگ ها از سایر سیستم ها (Clients) از Filebeat استفاده خواهیم کرد که در واقع لاگ های مورد نیاز را به ELK Stack ارسال می کند.
نمای کلی معماری به شکل زیر خواهد بود :
برای شروع کار ابتدا بسته های مورد نیاز را بر روی ELK Server نصب و پیکربندی می کنیم.به همین منظور ابتدا java را نصب کنید :
#yum install java
جهت بررسی نسخه ی جاوای نصب شده می توان دستور پایین را اجرا کرد :
#java -version
نمونه ی خروجی از اجرای دستور بالا را در تصویر پایین مشاهده می کنید :
نصب Elsaticserch :
ابتدا فایل مخزن elasticsearch را ایجاد کنید :
#vi /etc/yum.repos.d/elasticsearch.repo
سپس این خطوط را درون فایل بنویسید :
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
اکنون برای نصب elasticsearch دستور پایین را اجرا کنید :
#yum install elasticsearch
سپس فایل پیکربندی elasticsearch را باز کنید :
#vi /etc/elasticsearch/elasticsearch.yml
و تنظیمات زیر را انجام دهید :
network.host: localhost
http.port: 9200
اکنون سرویس elasticsearch را start و enable کنید :
# systemctl daemon-reload
# systemctl start elasticsearch
# systemctl enable elasticsearch
جهت بررسی اینکه elasticsearch بر روی port مورد نظر فعال شده است می توانید این دستور را اجرا کنید :
#netstat -antupl | grep 9200
یک نمونه خروجی از اجرای دستور گفته شده را در تصویر پایین مشاهده می کنید :
جهت بررسی فعال بودن سرویس elasticsearch نیز می توانید از دستور پایین استفاده کنید :
#curl -X GET http://localhost:9200
یک نمونه خروجی از اجرای دستور بالا را در عکس پایین می توان مشاهده کرد :
ادامه دارد …
منتظر ادامه مطلب هستم ولی تا اینجای کار به نظر میرسه با استفاده از network.host: localhost برای Elasticsearch میخوای کل استک رو روی یه سرور نصب کنی که به نظر منطقی نمیاد و قابل گسترش نیست.
خواهش میکنم.
آره بر اساس همون سناریو قراره کل ELK روی یه سرور نصب بشه.ولی خب آره برای موضوع گسترش میشه توی یه مطلب دیگه ازش نوشت.هدف از این مطلب فقط نصب و آشنایی های اولیه هست.
سلام . این ارور موقع نصب الستیک برای چیه و چطوری میشه رفعش کرد؟
Elasticsearch repository for 7.x packages 0.0 B/s | 0 B 00:06
Errors during downloading metadata for repository ‘elasticsearch’:
– Status code: 451 for https://artifacts.elastic.co/packages/7.x/yum/repodata/repomd.xml (IP: 151.101.2.222)
Error: Failed to download metadata for repo ‘elasticsearch’: Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
تشکر
مشکل بخاطر بودن سرور داخل ایران بود . که با تغییر DNS مشکل حل شد