آموزش نصب و پیکربندی ELK Stack – بخش ۴

elk-stack

در ادامه ی سلسله مطالب «آموزش نصب و پیکربندی ELK Stack» ، در بخش ۳ سرویس logstash را نصب کردیم و همچنین  SSL Certificates ایجاد کردیم.در این مطلب قصد داریم تا سرویس logstash را پیکربندی کنیم.

فایل های پیکربندی logstash به صورت JSON-format می باشند و در مسیر زیر قرار دارند :

 

/etc/logstash/conf.d

فایل های پیکربندی شامل سه قسمت inputs, filters و outputs می باشند.اکنون برای دریافت ورودی از filebeat فایل پیکربندی input زیر را ایجاد کنید :

 

#vi  /etc/logstash/conf.d/02-beats-input.conf

سپس خطوط زیر را درون فایل بنویسید :

input {
    beats {
        port => "5044"
        ssl => true
        ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
        ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
        }
} 

 

همانطور که در تنظیمات  input می بینید.beats روی پورت 5044 tcp قادر به listen می باشد و از ssl certificate و private key که قبلا ساختیم استفاده می کند.جهت بررسی درست بودن فایل پیکربندی کافیست تا دستورات پایین را اجرا کنید :

 

 


#cd /usr/share/logstash

# bin/logstash -f /etc/logstash/conf.d/02-beats-input.conf --config.test_and_exit

 

پس از اجرای دستور بالا خروجی مانند خط پایین را مشاهده خواهید کرد :

 

[INFO ] 2018-08-04 10:48:14.599 [LogStash::Runner] runner – Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

 

اکنون فایل پیکربندی زیر را برای filter کردن syslog messages ایجاد کنید :

 

#vi /etc/logstash/conf.d/10-syslog-filter.conf

 

سپس این خطوط را درون فایل بنویسید :

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

 

 

اکنون فایل پیکربندی output را ایجاد کنید :

 

 

#vi /etc/logstash/conf.d/30-elasticsearch-output.conf

سپس این خطوط را درون فایل بنویسید :

output {
   elasticsearch {
     hosts => ["localhost:9200"]
     sniffing => true
     manage_template => false
     index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
     document_type => "%{[@metadata][type]}"
   }
}

 

 

اکنون سرویس logstash را با استفاده از systemctl باید start و enable کنید :

 

#systemctl start logstash

#systemctl enable logstash

 

ادامه دارد …

 

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.