اوبنتودواپسسرور

آموزش نصب Elastic Stack (شامل Elasticsearch, Logstash, Kibana و Filebeat) در اوبونتو 24.04

مقدمه

مجموعه 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 را نصب کرده و کلید رسمی را اضافه کنید:

Bash

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 را به لیست منابع سیستم اضافه کنید:

Bash

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 را نصب کنید:

Bash

sudo apt update
sudo apt install elasticsearch -y

نکته مهم در نسخه ۸ به بعد: پس از اتمام نصب، در خروجی ترمینال یک رمز عبور اولیه برای کاربر elastic و یک Token نمایش داده می‌شود. آن را در جایی امن کپی کنید.

۲. پیکربندی Elasticsearch

فایل تنظیمات اصلی را باز کنید:

Bash

sudo nano /etc/elasticsearch/elasticsearch.yml

تنظیمات شبکه را پیدا کرده و مقدار network.host را روی localhost قرار دهید تا دسترسی‌های خارجی مستقیم به پورت 9200 محدود شود:

YAML

network.host: localhost

توضیح: در صورت نیاز به غیرفعال‌سازی موقت SSL داخلی در محیط‌های تست، می‌توانید xpack.security.enabled: false را قرار دهید، اما برای محیط تولید پیشنهاد می‌شود امنیت X-Pack فعال بماند.

فایل را ذخیره کرده و سرویس را فعال و روشن کنید:

Bash

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

برای تست فعال بودن سرویس دستور زیر را اجرا کنید:

Bash

curl -X GET "localhost:9200"

گام دوم — نصب و پیکربندی داشبورد Kibana

Kibana رابط بصری شما برای تحلیل داده‌هاست و باید پس از Elasticsearch نصب شود.

با توجه به افزودن مخزن در گام قبل، مستقیم دستور نصب را اجرا کنید:

Bash

sudo apt install kibana -y

سرویس Kibana را فعال و روشن کنید:

Bash

sudo systemctl enable kibana
sudo systemctl start kibana

تنظیم Reverse Proxy با Nginx برای Kibana

از آنجا که Kibana به‌طور پیش‌فرض فقط روی localhost:5601 گوش می‌دهد، از Nginx به عنوان پروکسی معکوس استفاده می‌کنیم تا بتوانید با احراز هویت امن به آن دسترسی داشته باشید.

ابتدا ابزار apache2-utils را برای ساخت فایل رمز عبور نصب کنید:

Bash

sudo apt install apache2-utils -y

یک کاربر جدید (مثلاً kibanaadmin) ایجاد کنید:

Bash

sudo htpasswd -c /etc/nginx/htpasswd.users kibanaadmin

حالا یک فایل کانفیگ جدید برای Nginx بسازید:

Bash

sudo nano /etc/nginx/sites-available/kibana

محتوای زیر را درون آن قرار دهید (به جای your_domain_or_ip آدرس آی‌پی سرور ابری پارمین کلود یا دامنه خود را بنویسید):

Nginx

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;
    }
}

فایل را فعال کرده و صحت کانفیگ را بررسی کنید:

Bash

sudo ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

در صورت فعال بودن فایروال UFW، دسترسی به Nginx را باز کنید:

Bash

sudo ufw allow 'Nginx Full'

اکنون می‌توانید از طریق مرورگر به آدرس http://your_domain_or_ip بروید و پس از وارد کردن نام کاربری و رمز عبوری که در htpasswd ساختید، وارد داشبورد Kibana شوید.

گام سوم — نصب و پیکربندی Logstash

پکیج Logstash را نصب کنید:

Bash

sudo apt install logstash -y

خط لوله (Pipeline) در Logstash شامل ورودی (Input)، فیلتر (Filter) و خروجی (Output) است.

۱. فایل کانفیگ ورودی برای دریافت اطلاعات از Filebeat روی پورت 5044 را بسازید:

Bash

sudo nano /etc/logstash/conf.d/02-beats-input.conf
Plaintext

input {
  beats {
    port => 5044
  }
}

۲. فایل کانفیگ خروجی برای ارسال داده‌ها به Elasticsearch را بسازید:

Bash

sudo nano /etc/logstash/conf.d/30-elasticsearch-output.conf
Plaintext

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    manage_template => false
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

تست صحت پیکربندی Logstash:

Bash

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t

در صورت مشاهده پیام Config Validation Result: OK سرویس را روشن و فعال کنید:

Bash

sudo systemctl start logstash
sudo systemctl enable logstash

گام چهارم — نصب و پیکربندی Filebeat

برای جمع‌آوری لاگ‌های سیستم‌عامل و ارسال آن‌ها به Logstash، از ایجنت Filebeat استفاده می‌کنیم.

نصب Filebeat:

Bash

sudo apt install filebeat -y

فایل تنظیمات filebeat.yml را ویرایش کنید:

Bash

sudo nano /etc/filebeat/filebeat.yml

۱. بخش output.elasticsearch را پیدا کرده و با گذاشتن # در ابتدای خطوط، آن را کامنت و غیرفعال کنید. ۲. بخش output.logstash را پیدا کرده و از حالت کامنت خارج کنید:

YAML

output.logstash:
  hosts: ["localhost:5044"]

ماژول system را برای جمع‌آوری لاگ‌های لینوکس فعال کنید:

Bash

sudo filebeat modules enable system

خط لوله‌ها و داشبوردهای پیش‌فرض را بارگذاری کرده و سرویس را فعال کنید:

Bash

sudo filebeat setup --pipelines --modules system
sudo systemctl start filebeat
sudo systemctl enable filebeat

برای تست دریافت داده‌ها توسط Elasticsearch دستور زیر را بزنید:

Bash

curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'

گام پنجم — بررسی لاگ‌ها در داشبورد Kibana

وارد وب‌سایت Kibana شوید:

  1. از منوی سمت چپ به بخش Discover بروید.

  2. الگوی ایندکس filebeat-* را انتخاب کنید تا لاگ‌های ۱۵ دقیقه اخیر سرور خود را مشاهده کنید.

  3. با مراجعه به بخش Dashboard و جستجوی عبارت [Filebeat System] می‌توانید نمودارهای گرافیکی آماده مربوط به وضعیت سیستم‌عامل و ورودهای موفق/ناموفق کاربر sudo را مشاهده کنید.

جمع‌بندی

شما با موفقیت Elastic Stack را روی سرور ابری اوبونتو ۲۴.۰۴ در پارمین کلود راه‌اندازی کردید. اکنون تمام لاگ‌های سرور شما به صورت متمرکز جمع‌آوری شده و از طریق محیط امن Kibana قابل تحلیل و بررسی هستند.

از همراهی شما با پارمین کلود متشکریم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا