
مقدمه
مجموعه Elastic Stack — که پیشتر با نام ELK Stack شناخته میشد — مجموعهای از نرمافزارهای متنباز است که توسط شرکت Elastic ارائه میشود. این ابزارها امکان جستجو، تحلیل و تجسمسازی لاگها را در هر قالبی فراهم میکنند؛ فرآیندی که به آن مدیریت متمرکز لاگها (Centralized Logging) میگویند. مدیریت متمرکز لاگها به شما اجازه میدهد تا عیبیابی سرورها و برنامهها را تنها از یک نقطه انجام دهید.
مجموعه Elastic Stack از چهار بخش اصلی تشکیل شده است:
-
Elasticsearch: موتور جستجو و تحلیل داده توزیعشده که تمامی دادهها را ذخیره میکند.
-
Logstash: بخش پردازش دادهها که لاگهای ورودی را دریافت، فیلتر و به Elasticsearch ارسال میکند.
-
Kibana: رابط کاربری تحت وب برای جستجو، تحلیل گرافیکی و تجسم لاگها.
-
Beats: ایجنتهای سبک برای جمعآوری و ارسال لاگها از ماشینهای مختلف به Logstash یا Elasticsearch.
در این مقاله، تمامی اجزای Elastic Stack (از جمله Filebeat برای جمعآوری لاگهای سیستم) را روی یک سرور ابری Ubuntu 24.04 نصب کرده و برای دسترسی ایمن به Kibana، یک Reverse Proxy با Nginx تنظیم میکنیم.
پیشنیازها
-
یک سرور ابری Ubuntu 24.04 با حداقل ۴ گیگابایت رم و ۲ هسته CPU (میتوانید سرور ابری خود را از پارمین کلود تهیه کنید).
-
کاربر با دسترسی
sudoو فایروال UFW فعال. -
نصب بودن Open-JDK 17 یا بالاتر (
sudo apt install openjdk-17-jdk -y). -
نصب بودن وبسرور Nginx (
sudo apt install nginx -y).
گام اول — نصب و پیکربندی Elasticsearch
پکیجهای Elastic به صورت پیشفرض در مخازن اوبونتو وجود ندارند، بنابراین ابتدا کلید GPG و مخزن رسمی Elastic (نسخه 8.x) را به سیستم اضافه میکنیم.
۱. افزودن کلید GPG و مخزن Elastic
ابزار gpg و curl را نصب کرده و کلید رسمی را اضافه کنید:
sudo apt update
sudo apt install curl gnupg apt-transport-https -y
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
سپس مخزن Elastic 8.x را به لیست منابع سیستم اضافه کنید:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
فهرست پکیجها را بهروزرسانی کرده و Elasticsearch را نصب کنید:
sudo apt update
sudo apt install elasticsearch -y
نکته مهم در نسخه ۸ به بعد: پس از اتمام نصب، در خروجی ترمینال یک رمز عبور اولیه برای کاربر
elasticو یک Token نمایش داده میشود. آن را در جایی امن کپی کنید.
۲. پیکربندی Elasticsearch
فایل تنظیمات اصلی را باز کنید:
sudo nano /etc/elasticsearch/elasticsearch.yml
تنظیمات شبکه را پیدا کرده و مقدار network.host را روی localhost قرار دهید تا دسترسیهای خارجی مستقیم به پورت 9200 محدود شود:
network.host: localhost
توضیح: در صورت نیاز به غیرفعالسازی موقت SSL داخلی در محیطهای تست، میتوانید
xpack.security.enabled: falseرا قرار دهید، اما برای محیط تولید پیشنهاد میشود امنیت X-Pack فعال بماند.
فایل را ذخیره کرده و سرویس را فعال و روشن کنید:
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
برای تست فعال بودن سرویس دستور زیر را اجرا کنید:
curl -X GET "localhost:9200"
گام دوم — نصب و پیکربندی داشبورد Kibana
Kibana رابط بصری شما برای تحلیل دادههاست و باید پس از Elasticsearch نصب شود.
با توجه به افزودن مخزن در گام قبل، مستقیم دستور نصب را اجرا کنید:
sudo apt install kibana -y
سرویس Kibana را فعال و روشن کنید:
sudo systemctl enable kibana
sudo systemctl start kibana
تنظیم Reverse Proxy با Nginx برای Kibana
از آنجا که Kibana بهطور پیشفرض فقط روی localhost:5601 گوش میدهد، از Nginx به عنوان پروکسی معکوس استفاده میکنیم تا بتوانید با احراز هویت امن به آن دسترسی داشته باشید.
ابتدا ابزار apache2-utils را برای ساخت فایل رمز عبور نصب کنید:
sudo apt install apache2-utils -y
یک کاربر جدید (مثلاً kibanaadmin) ایجاد کنید:
sudo htpasswd -c /etc/nginx/htpasswd.users kibanaadmin
حالا یک فایل کانفیگ جدید برای Nginx بسازید:
sudo nano /etc/nginx/sites-available/kibana
محتوای زیر را درون آن قرار دهید (به جای your_domain_or_ip آدرس آیپی سرور ابری پارمین کلود یا دامنه خود را بنویسید):
server {
listen 80;
server_name your_domain_or_ip;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
فایل را فعال کرده و صحت کانفیگ را بررسی کنید:
sudo ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
در صورت فعال بودن فایروال UFW، دسترسی به Nginx را باز کنید:
sudo ufw allow 'Nginx Full'
اکنون میتوانید از طریق مرورگر به آدرس http://your_domain_or_ip بروید و پس از وارد کردن نام کاربری و رمز عبوری که در htpasswd ساختید، وارد داشبورد Kibana شوید.
گام سوم — نصب و پیکربندی Logstash
پکیج Logstash را نصب کنید:
sudo apt install logstash -y
خط لوله (Pipeline) در Logstash شامل ورودی (Input)، فیلتر (Filter) و خروجی (Output) است.
۱. فایل کانفیگ ورودی برای دریافت اطلاعات از Filebeat روی پورت 5044 را بسازید:
sudo nano /etc/logstash/conf.d/02-beats-input.conf
input {
beats {
port => 5044
}
}
۲. فایل کانفیگ خروجی برای ارسال دادهها به Elasticsearch را بسازید:
sudo nano /etc/logstash/conf.d/30-elasticsearch-output.conf
output {
elasticsearch {
hosts => ["http://localhost:9200"]
manage_template => false
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}
تست صحت پیکربندی Logstash:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
در صورت مشاهده پیام Config Validation Result: OK سرویس را روشن و فعال کنید:
sudo systemctl start logstash
sudo systemctl enable logstash
گام چهارم — نصب و پیکربندی Filebeat
برای جمعآوری لاگهای سیستمعامل و ارسال آنها به Logstash، از ایجنت Filebeat استفاده میکنیم.
نصب Filebeat:
sudo apt install filebeat -y
فایل تنظیمات filebeat.yml را ویرایش کنید:
sudo nano /etc/filebeat/filebeat.yml
۱. بخش output.elasticsearch را پیدا کرده و با گذاشتن # در ابتدای خطوط، آن را کامنت و غیرفعال کنید. ۲. بخش output.logstash را پیدا کرده و از حالت کامنت خارج کنید:
output.logstash:
hosts: ["localhost:5044"]
ماژول system را برای جمعآوری لاگهای لینوکس فعال کنید:
sudo filebeat modules enable system
خط لولهها و داشبوردهای پیشفرض را بارگذاری کرده و سرویس را فعال کنید:
sudo filebeat setup --pipelines --modules system
sudo systemctl start filebeat
sudo systemctl enable filebeat
برای تست دریافت دادهها توسط Elasticsearch دستور زیر را بزنید:
curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'
گام پنجم — بررسی لاگها در داشبورد Kibana
وارد وبسایت Kibana شوید:
-
از منوی سمت چپ به بخش Discover بروید.
-
الگوی ایندکس
filebeat-*را انتخاب کنید تا لاگهای ۱۵ دقیقه اخیر سرور خود را مشاهده کنید. -
با مراجعه به بخش Dashboard و جستجوی عبارت [Filebeat System] میتوانید نمودارهای گرافیکی آماده مربوط به وضعیت سیستمعامل و ورودهای موفق/ناموفق کاربر
sudoرا مشاهده کنید.
جمعبندی
شما با موفقیت Elastic Stack را روی سرور ابری اوبونتو ۲۴.۰۴ در پارمین کلود راهاندازی کردید. اکنون تمام لاگهای سرور شما به صورت متمرکز جمعآوری شده و از طریق محیط امن Kibana قابل تحلیل و بررسی هستند.
از همراهی شما با پارمین کلود متشکریم.




