پشته ELK از 3 جزء اصلی منبع باز تشکیل شده است. Elasticsearch، Logstash و Kibana که با هم کار می کنند تا به کاربران امکان جمع آوری، تجزیه و تحلیل و تجسم گزارش ها را بدهد. نقش هر جزء در پشته ELK در زیر توضیح داده شده است:

  • Elasticsearch – این هسته نرم افزار Elastic است. Elasticsearch یک موتور جستجو و تجزیه و تحلیل است. در پشته ELK، برای ذخیره گزارش های ورودی از Logstash استفاده می شود و امکان جستجوی گزارش ها را در زمان واقعی ارائه می دهد.
  • Logstash – این بسته داده‌ها را جمع‌آوری می‌کند، گزارش‌های دریافتی از چندین منبع را به طور همزمان تبدیل می‌کند و به ذخیره‌سازی می‌فرستد.
  • Kibana – Kibana یک ابزار گرافیکی برای تجسم داده ها است. برای تولید نمودارها و نمودارها به منظور درک داده های خام در پایگاه داده شما استفاده می شود.

پشته ELK را می توان همراه با Beats برای جمع آوری گزارش استفاده کرد. بیت‌ها را می‌توان به عنوان ارسال‌کننده‌های داده سبک وزن تعریف کرد که به منابع/شاخص‌های داده متعدد اجازه می‌دهد و آنها را به Logstash یا Elasticsearch ارسال می‌کند. چندین بسته ضرب وجود دارد که شامل؛

  • Metricbeat – قبل از اینکه مستقیماً به Logstash یا Elasticsearch ارسال شود، معیارها را از سیستم‌ها و سرویس‌ها از جمله CPU، میزان استفاده از حافظه و بار و همچنین سایر آمارهای داده از داده‌های شبکه و داده‌های پردازش جمع‌آوری می‌کند.
  • Auditbeat – برای جمع‌آوری داده‌های چارچوب ممیزی لینوکس و نظارت بر یکپارچگی فایل، قبل از ارسال مستقیم به Logstash یا Elasticsearch استفاده می‌شود.
  • Filebeat – هدف آن فوروارد کردن و فایل‌ها است، معمولاً با فرمت .log متمرکز کردن گزارش‌ها و یا فرمت json.
  • ضربان قلب – برای بررسی فعال برای تعیین اینکه آیا خدمات در دسترس هستند استفاده می شود.
  • Packetbeat – از مجموعه ای از پروتکل های شبکه از برنامه و پروتکل های سطح پایین تر، پایگاه های داده و فروشگاه های ارزش کلیدی، از جمله HTTP، DNS، Flow ها، DHCPv4، MySQL و TLS پشتیبانی می کند. به شناسایی فعالیت های شبکه مشکوک کمک می کند.
  • Winlogbeat – برای مدیریت گزارش رویدادهای ویندوز در نظر گرفته شده است.

این راهنما یک تصویر عمیق از نحوه نصب و استفاده از Elastic Stack 8 (ELK 8) در RHEL 8 / CentOS Stream 8 ارائه می دهد.

1. جاوا را روی RHEL 8 / CentOS Stream 8 نصب کنید

Elasticsearch به جاوا 8، 11 نصب شده روی سیستم نیاز دارد. اگر جاوا را قبلاً نصب کرده اید، می توانید از این مرحله صرف نظر کنید. در غیر این صورت جاوا 8 را با استفاده از دستور نصب کنید:

sudo yum -y install java-11-openjdk java-11-openjdk-devel

پس از نصب، نسخه جاوا را تأیید کنید.

$ java -version
openjdk version "11.0.15" 2022-04-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.15+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.15+9-LTS, mixed mode, sharing)

2. مخازن Elastic Stack 8.x را در RHEL 8 / CentOS Stream 8 اضافه کنید

ELK stack 8 و Beats را می توان از مخازن رسمی Elastic Stack 8.x دانلود کرد که می توان با استفاده از دستورات زیر به سیستم اضافه کرد:

ابتدا امضای کلید GPG را برای مخزن وارد کنید.

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

اکنون مخزن Elastic Stack 8.x را در RHEL 8 / CentOS Stream 8 اضافه کنید.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

پس از اضافه شدن، فهرست بسته YUM را به روز کنید.

sudo yum clean all
sudo yum makecache

3. Elasticsearch 8 را در RHEL 8 / CentOS 8 نصب و پیکربندی کنید

ما آخرین نسخه Elasticsearch را از مخازن اضافه شده با استفاده از دستور نصب خواهیم کرد:

sudo yum install elasticsearch

درخت وابستگی:

Last metadata expiration check: 0:00:07 ago on Mon 21 Mar 2022 05:27:10 AM EDT.
Dependencies resolved.
================================================================================
 Package             Architecture Version         Repository               Size
================================================================================
Installing:
 elasticsearch       x86_64       8.1.0-1         elasticsearch-8.x       492 M

Transaction Summary
================================================================================
Install  1 Package

Total download size: 492 M
Installed size: 1.0 G
Is this ok [y/N]: y

Elasticsearch را با ویرایش فایل YAML زیر پیکربندی کنید.

sudo vi /etc/elasticsearch/elasticsearch.yml

در فایل تنظیمات زیر را انجام دهید

# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/elasticsearch
#
# Path to log files:
#
path.logs: /var/log/elasticsearch
#

# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
. . .

# --------------------------------------------------------------------------------

# Enable security features
xpack.security.enabled: false

xpack.security.enrollment.enabled: false

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
  enabled: false

اگر یک مسیر داده سفارشی برای Elasticsearch تنظیم کنید، باید SELinux را غیرفعال کنید یا آن را در حالت مجاز تنظیم کنید تا مسیر قابل دسترسی باشد.

sudo setenforce 0

با تنظیم محدودیت های حافظه، گزینه های JVM را پیکربندی کنید :

$ sudo vi /etc/elasticsearch/jvm.options
-Xms1g
-Xmx1g

اگر سیستم حافظه کم دارد، آن را طوری پیکربندی کنید که از کمترین حافظه استفاده کند:

-Xms256m
-Xmx512m

Elasticsearch 8 را با استفاده از دستور شروع و فعال کنید:

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

بررسی کنید که آیا Elasticsearch به سؤالات پاسخ می دهد:

$ curl -X GET localhost:9200
{
  "name" : "localhost.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "_yNoaSr4SeShhkRNDkDC6A",
  "version" : {
    "number" : "8.1.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "3700f7679f7d95e36da0b43762189bab189bc53a",
    "build_date" : "2022-03-03T14:20:00.690422633Z",
    "build_snapshot" : false,
    "lucene_version" : "9.0.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

4. Logstash را در RHEL 8 / CentOS Stream 8 نصب و پیکربندی کنید

Logstash را روی RHEL 8 / CentOS Stream 8 با استفاده از دستور نصب کنید:

 sudo yum -y install logstash

پس از نصب، باید Logstash را با ایجاد یک پیکربندی در /etc/logstash/conf.d/ پیکربندی کنید . این فایل دارای 3 بخش است یعنی ورودی، فیلتر و خروجی. تمام 3 بخش می توانند در یک یا در 3 فایل مختلف وجود داشته باشند.

sudo vi /etc/logstash/conf.d/beats.conf

در این راهنما، ما هر 3 بخش را در یک فایل واحد به شرح زیر خواهیم داشت:

input {
  beats {
    port => 5044
  }
}
filter {
  if [type] == "syslog" {
     grok {
        match => { "message" => "%{SYSLOGLINE}" }
  }
     date {
        match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
     }
  }
}
output {
  elasticsearch {
    hosts => ["192.168.205.8:9200"]
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  }
}

Logstash را راه اندازی و فعال کنید.

sudo systemctl start logstash
sudo systemctl enable logstash

5. Kibana را روی RHEL 8 / CentOS 8 نصب و پیکربندی کنید

اکنون می خواهیم Kibana، ابزار تجسم در پشته ELK را نصب کنیم. Kibana را با استفاده از دستور نصب کنید:

sudo yum -y install kibana

پس از نصب، کیبانا را پیکربندی کنید.

sudo vi /etc/kibana/kibana.yml

در فایل باز شده تنظیمات زیر را انجام دهید:

# line 11 : uncomment and change (listen all)
server.host: "0.0.0.0"
# line 32 : uncomment and change (specify own hostname)
server.name: "node1"
# line 43 : uncomment and change if you need
# set if elasticsearch and Kibana are running on different Host
elasticsearch.hosts: ["http://192.168.205.8:9200"]

Kibana را راه اندازی و فعال کنید.

sudo systemctl enable --now kibana

پورت های 5601 و 5044 را از طریق فایروال مجاز کنید.

sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --add-port=5044/tcp --permanent
sudo firewall-cmd --reload

6. Filebeat را در RHEL 8 / CentOS 8 نصب و پیکربندی کنید

در این مرحله، داشبورد کیبانا در پورت 5601 موجود است . ما می‌خواهیم Filebeat را نصب و پیکربندی کنیم تا به جمع‌آوری گزارش‌ها و ارسال آنها به Logstash کمک کند تا آنها را به قالبی تبدیل کند که به راحتی توسط Elasticsearch قابل درک باشد. Filebeat را می توان روی همان ماشین یا کلاینت که می خواهید لاگ ها را از آن جمع آوری کنید نصب کرد.

پیشنهاد ویژه قائم هاست خرید سرور مجازی ایران با ترافیک نامحدود و نصب و راه اندازی انواع سیستم عامل همچون لینوکس CentOS و Ubuntu با خدمات و پشتیبانی 24 ساعته حتی در ایام تعطیل ؛ جهت مشاوره و سوالات قبل از خرید از طریق ارسال تیکت با ما در ارتباط باشید.

با استفاده از دستور Filebeat را روی RHEL 8 / CentOS Stream 8 نصب کنید:

sudo dnf -y install filebeat

پس از نصب، ادامه دهید و آن را پیکربندی کنید تا گزارش‌ها به Logstash ارسال شود:

sudo vi /etc/filebeat/filebeat.yml

در فایل باز شده تنظیمات زیر را انجام دهید.

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

.....
#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["192.168.205.8:5044"]
....

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/messages
    #- c:\programdata\elasticsearch\logs\*

Filebeat را شروع و فعال کنید.

sudo systemctl enable --now filebeat

7. به رابط وب کیبانا دسترسی داشته باشید.

با استفاده از URL http://IP_Address:5601 می توان به رابط وب کیبانا دسترسی داشت .

آموزش نصب Elastic Stack 8 (ELK 8) در RHEL 8|CentOS 8

آموزش نصب Elastic Stack 8 (ELK 8) در RHEL 8|CentOS 8

اکنون ماژول Filebeat را در دستگاه مشتری فعال کنید. با فهرست کردن ماژول ها شروع کنید:

$ sudo filebeat modules list
Enabled:

Disabled:
activemq
apache
auditd
aws
awsfargate
azure
barracuda
bluecoat
cef
checkpoint
cisco
coredns
....

اکنون ماژول مورد نظر را فعال کنید. Logstash به صورت زیر:

$ sudo filebeat modules enable logstash
Enabled logstash

پس از فعال شدن، الگوی فهرست را در Elasticsearch و داشبوردها را به صورت زیر در Kibana بارگیری کنید.

$ sudo filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=['192.168.205.8:9200'] -E setup.kibana.host=192.168.205.8:5601
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.

Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Loaded Ingest pipelines

اکنون در رابط Kibana در قسمت Discover ، Filebeat را مانند زیر خواهید داشت .

آموزش نصب Elastic Stack 8 (ELK 8) در RHEL 8|CentOS 8

آموزش نصب Elastic Stack 8 (ELK 8) در RHEL 8|CentOS 8

همچنین می توانید داده ها را با استفاده از نمودار/گراف مورد نظر تجسم کنید.

آموزش نصب Elastic Stack 8 (ELK 8) در RHEL 8|CentOS 8

آموزش نصب Elastic Stack 8 (ELK 8) در RHEL 8|CentOS 8

افکار بسته

در این مرحله، می‌توانیم فرض کنیم که راه‌اندازی Elastic Stack 8 (ELK 8) در RHEL 8 / CentOS Stream 8 کاملاً کار می‌کند. اکنون می‌توانیم لاگ‌ها را جمع‌آوری کرده و به Logstash یا Elasticsearch ارسال کنیم. امیدوارم این مقاله مفید و قابل توجه بوده باشد.

سایر مطالب مرتبط »

5/5 - (10 امتیاز)