সেন্টোস/আরএইচএল 7 এ কীভাবে ইলাস্টিকসার্ক, লগস্ট্যাশ এবং কিবানা (ELK স্ট্যাক) ইনস্টল করবেন
আপনি যদি লিনাক্সে সিস্টেম লগগুলি পরিদর্শন ও বিশ্লেষণের দায়িত্বে থাকেন বা অতীতে ছিলেন, আপনি যদি জানেন যে একসাথে একাধিক পরিষেবা নিরীক্ষণ করা হয় তবে সেই কাজটি কী দুঃস্বপ্ন হতে পারে।
আগের দিনগুলিতে, সেই কাজটি বেশিরভাগ ম্যানুয়ালি করেই করা হত, প্রতিটি লগের টাইপ আলাদাভাবে পরিচালনা করা হত। ভাগ্যক্রমে, ক্লায়েন্ট সাইডে ফাইলবিট সহ সার্ভার সাইডে ইলাস্টিকসার্ক, লগস্ট্যাশ এবং কিবানার সংমিশ্রণটি পার্কে হাঁটার মতো একসময় কঠিন কাজটিকে দেখায়।
প্রথম তিনটি উপাদান যা ELK স্ট্যাক নামে পরিচিত তাকে গঠন করে, যার মূল উদ্দেশ্য একইসাথে একাধিক সার্ভার থেকে লগ সংগ্রহ করা (কেন্দ্রীভূত লগিং হিসাবে পরিচিত)।
একটি অন্তর্নির্মিত জাভা ভিত্তিক ওয়েব ইন্টারফেস আপনাকে সহজে তুলনা এবং সমস্যা সমাধানের জন্য এক নজরে লগগুলি দ্রুত পরীক্ষা করতে সহায়তা করে। এই ক্লায়েন্ট লগগুলি ফাইলবিট দ্বারা একটি কেন্দ্রীয় সার্ভারে প্রেরণ করা হয়, যা লগ শিপিং এজেন্ট হিসাবে বর্ণনা করা যেতে পারে।
আসুন দেখুন কীভাবে এই সমস্ত টুকরা এক সাথে খাপ খায়। আমাদের পরীক্ষার পরিবেশে নিম্নলিখিত মেশিনগুলি থাকবে:
Central Server: CentOS 7 (IP address: 192.168.0.29). 2 GB of RAM. Client #1: CentOS 7 (IP address: 192.168.0.100). 1 GB of RAM. Client #2: Debian 8 (IP address: 192.168.0.101). 1 GB of RAM.
দয়া করে নোট করুন যে এখানে সরবরাহ করা র্যাম মানগুলি কঠোর পূর্বশর্ত নয়, তবে কেন্দ্রীয় সার্ভারে ELK স্ট্যাকের সফল প্রয়োগের জন্য প্রস্তাবিত মানগুলি। ক্লায়েন্টগুলিতে কম রu্যাম মোটেই বেশি পার্থক্য আনবে না,
সার্ভারে ইএলকে স্ট্যাক ইনস্টল করা হচ্ছে
আসুন সার্ভারে ELK স্ট্যাক ইনস্টল করে প্রতিটি উপাদান কী করে তার একটি সংক্ষিপ্ত বিবরণ দিয়ে শুরু করা যাক:
- ইলাস্টিকসার্ক ক্লায়েন্টদের দ্বারা প্রেরিত লগগুলি সঞ্চয় করে।
- লগস্ট্যাশ log লগগুলি প্রক্রিয়া করে
- কিবানা ওয়েব ইন্টারফেস সরবরাহ করে যা আমাদের লগগুলি পরীক্ষা ও বিশ্লেষণ করতে সহায়তা করে
কেন্দ্রীয় সার্ভারে নিম্নলিখিত প্যাকেজগুলি ইনস্টল করুন। প্রথমে, আমরা জাভা জেডিকে সংস্করণ 8 ইনস্টল করব (আপডেট 102, এই লেখার সময় সর্বশেষতম একটি), যা ELK উপাদানগুলির নির্ভরতা।
নতুন কোনও আপডেট উপলব্ধ কিনা তা দেখতে আপনি এখানে জাভা ডাউনলোড পৃষ্ঠায় প্রথমে চেক করতে চাইতে পারেন।
# yum update # cd /opt # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jre-8u102-linux-x64.rpm" # rpm -Uvh jre-8u102-linux-x64.rpm
ইনস্টলেশনটি সফলভাবে সমাপ্ত হয়েছে কিনা তা যাচাই করার সময়:
# java -version
ইলাস্টিকসার্ক, লগস্ট্যাশ এবং কিবানার সর্বশেষতম সংস্করণগুলি ইনস্টল করতে, আমাদের ম্যানুয়ালি ইয়মের জন্য সংগ্রহস্থলগুলি তৈরি করতে হবে:
1. আরপিএম প্যাকেজ পরিচালকের কাছে ইলাস্টিক অনুসন্ধান সর্বজনীন জিপিজি কী আমদানি করুন:
# rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch
2. সংগ্রহস্থল কনফিগারেশন ফাইল elasticsearch.repo
এ নিম্নলিখিত লাইনগুলি সন্নিবেশ করুন:
[elasticsearch] name=Elasticsearch repository baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
৩. ইলাস্টিকসার্ক প্যাকেজ ইনস্টল করুন।
# yum install elasticsearch
ইনস্টলেশনটি সম্পূর্ণ হয়ে গেলে, আপনাকে ইলাস্টিক অনুসন্ধান শুরু এবং সক্ষম করতে অনুরোধ করা হবে:
৪. পরিষেবাটি চালু করুন এবং সক্ষম করুন।
# systemctl daemon-reload # systemctl enable elasticsearch # systemctl start elasticsearch
5. আপনার ফায়ারওয়ালে টিসিপি পোর্ট 9200 দিয়ে ট্র্যাফিকের অনুমতি দিন:
# firewall-cmd --add-port=9200/tcp # firewall-cmd --add-port=9200/tcp --permanent
Check. ইলাস্টিকের অনুসন্ধানটি HTTP- র মাধ্যমে সাধারণ অনুরোধগুলিতে সাড়া দেয় কিনা তা পরীক্ষা করুন:
# curl -X GET http://localhost:9200
উপরের কমান্ডের আউটপুট অনুরূপ হওয়া উচিত:
নিশ্চিত করুন যে আপনি উপরের পদক্ষেপগুলি সম্পূর্ণ করেছেন এবং তারপরে লগস্ট্যাশ দিয়ে এগিয়ে যান proceed যেহেতু লগস্ট্যাশ এবং কিবানা উভয়েই ইলাস্টিকসার্চ জিপিজি কী ভাগ করে, তাই প্যাকেজগুলি ইনস্টল করার আগে এটি পুনরায় আমদানির দরকার নেই।
Os. সংগ্রহস্থল কনফিগারেশন ফাইল logstash.repo
এ নিম্নলিখিত লাইনগুলি সন্নিবেশ করান:
[logstash] name=Logstash baseurl=http://packages.elasticsearch.org/logstash/2.2/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch enabled=1
8. লগস্ট্যাশ প্যাকেজ ইনস্টল করুন:
# yum install logstash
9. [v3_ca]
বিভাগের /etc/pki/tls/openssl.cnf:
[ v3_ca ] subjectAltName = IP: 192.168.0.29
10. 365 দিনের জন্য বৈধ স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন:
# cd /etc/pki/tls # openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
১১. লগস্ট্যাশ ইনপুট, আউটপুট এবং ফিল্টার ফাইলগুলি কনফিগার করুন:
ইনপুট: /etc/logstash/conf.d/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" } }
আউটপুট ( /etc/logstash/conf.d/output.conf
) ফাইল:
output { elasticsearch { hosts => ["localhost:9200"] sniffing => true manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }
ফিল্টার করুন ( /etc/logstash/conf.d/filter.conf
) ফাইল। সরলতার জন্য আমরা সিসলগ বার্তাগুলি লগ করব:
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
12. লগস্ট্যাশ কনফিগারেশন ফাইলগুলি যাচাই করুন।
# service logstash configtest
13. লগস্ট্যাশ শুরু করুন এবং সক্ষম করুন:
# systemctl daemon-reload # systemctl start logstash # systemctl enable logstash
14. লগস্ট্যাশকে ক্লায়েন্টের (লগ টিসিপি পোর্ট 5044) থেকে লগ পাওয়ার অনুমতি দেওয়ার জন্য ফায়ারওয়ালটি কনফিগার করুন:
# firewall-cmd --add-port=5044/tcp # firewall-cmd --add-port=5044/tcp --permanent
14. সংগ্রহস্থল কনফিগারেশন ফাইল kibana.repo
এ নিম্নলিখিত লাইনগুলি সন্নিবেশ করান:
[kibana] name=Kibana repository baseurl=http://packages.elastic.co/kibana/4.4/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1
15. কিবানা প্যাকেজ ইনস্টল করুন:
# yum install kibana
16. কিবানা শুরু করুন এবং সক্ষম করুন।
# systemctl daemon-reload # systemctl start kibana # systemctl enable kibana
17. আপনি অন্য কম্পিউটার থেকে কিবানার ওয়েব ইন্টারফেস অ্যাক্সেস করতে পারবেন তা নিশ্চিত করুন (টিসিপি পোর্ট 5601 ট্র্যাফিকের অনুমতি দিন):
# firewall-cmd --add-port=5601/tcp # firewall-cmd --add-port=5601/tcp --permanent
18. আপনি ওয়েব ইন্টারফেস অ্যাক্সেস করতে পারবেন তা যাচাই করতে কিবানা ( http://192.168.0.29:5601
) চালু করুন:
আমরা ক্লায়েন্টগুলিতে ফাইলবিট ইনস্টল ও কনফিগার করার পরে আমরা এখানে ফিরে আসব।
ক্লায়েন্ট সার্ভারে ফাইলবিট ইনস্টল করুন
ক্লায়েন্ট # 1 এর জন্য এটি কীভাবে করা যায় তা আমরা আপনাকে দেখাব (পরে ক্লায়েন্ট # 2 এর জন্য পুনরাবৃত্তি করুন, আপনার বিতরণে প্রযোজ্য হলে পাথ পরিবর্তন করুন)।
1. সার্ভার থেকে ক্লায়েন্টগুলিতে এসএসএল শংসাপত্র অনুলিপি করুন:
# scp /etc/pki/tls/certs/logstash-forwarder.crt [email :/etc/pki/tls/certs/
2. আরপিএম প্যাকেজ পরিচালকের কাছে ইলাস্টিক অনুসন্ধান সর্বজনীন জিপিজি কী আমদানি করুন:
# rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch
৩. সেন্টোস ভিত্তিক বিতরণে ফাইলবিট ( /etc/yum.repos.d/filebeat.repo
) জন্য একটি সংগ্রহস্থল তৈরি করুন:
[filebeat] name=Filebeat for ELK clients baseurl=https://packages.elastic.co/beats/yum/el/$basearch enabled=1 gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch gpgcheck=1
৪. ডেবিয়ান এবং এর ডেরাইভেটিভগুলিতে ফাইলবিট ইনস্টল করতে উত্সটি কনফিগার করুন:
# aptitude install apt-transport-https # echo "deb https://packages.elastic.co/beats/apt stable main" > /etc/apt/sources.list.d/filebeat.list # aptitude update
5. ফাইলবিট প্যাকেজ ইনস্টল করুন:
# yum install filebeat [On CentOS and based Distros] # aptitude install filebeat [On Debian and its derivatives]
6. ফাইলবিট শুরু এবং সক্ষম করুন:
# systemctl start filebeat # systemctl enable filebeat
এখানে সতর্কতার একটি শব্দ। ফাইলবিট কনফিগারেশনটি একটি ওয়াইএএমএল ফাইলে সংরক্ষণ করা হয়, যার জন্য কঠোর ইন্ডেন্টেশন প্রয়োজন। আপনি /etc/filebeat/filebeat.yml
সম্পাদনা করার সাথে সাথে সাবধান হন:
- পাথের নীচে, কোন লগ ফাইলগুলি ELK সার্ভারে "চালিত" করা উচিত তা নির্দেশ করুন
- প্রসপেক্টরগুলির অধীনে:
input_type: log document_type: syslog
- আউটপুট আওতায়:
- লগস্ট্যাশ দিয়ে শুরু হওয়া লাইনটি কমেন্ট করুন
- আপনার ELK সার্ভার এবং পোর্টের আইপি ঠিকানাটি নির্দেশ করুন যেখানে লগস্ট্যাশ হোস্টে শুনছে is
- নিশ্চিত করুন যে শংসাপত্রের পথটি আপনি উপরের প্রথম ধাপে (লগস্ট্যাশ বিভাগ) তৈরি প্রকৃত ফাইলটির দিকে নির্দেশ করছে
উপরের পদক্ষেপগুলি নিম্নলিখিত চিত্রটিতে চিত্রিত হয়েছে:
পরিবর্তনগুলি সংরক্ষণ করুন এবং তারপরে ক্লায়েন্টগুলিতে ফাইলবিট পুনরায় চালু করুন:
# systemctl restart filebeat
একবার আমরা ক্লায়েন্টদের উপরের পদক্ষেপগুলি শেষ করে নিলে নির্দ্বিধায়
ক্লায়েন্টদের কাছ থেকে লগগুলি সফলভাবে প্রেরণ এবং প্রাপ্ত করা যায় তা যাচাই করতে ELK সার্ভারে নিম্নলিখিত কমান্ডটি চালান:
# curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'
আউটপুটটি অনুরূপ হওয়া উচিত (লক্ষ্য করুন কীভাবে/var/লগ/বার্তাগুলি এবং/var/লগ/সুরক্ষিত ক্লায়েন্ট 1 এবং ক্লায়েন্ট 2 থেকে প্রাপ্ত হচ্ছে):
অন্যথায়, ত্রুটির জন্য ফাইলবিট কনফিগারেশন ফাইলটি পরীক্ষা করুন।
# journalctl -xe
ফাইলবিট পুনরায় চালু করার চেষ্টা করার পরে আপনাকে আপত্তিকর লাইন (গুলি) নির্দেশ করবে।
আমরা যাচাই করার পরে যে লগগুলি ক্লায়েন্টদের দ্বারা প্রেরণ করা হচ্ছে এবং সার্ভারে সফলভাবে প্রাপ্ত হয়েছে। কিবানাতে আমাদের প্রথমে যা করতে হবে তা হ'ল একটি সূচি প্যাটার্নটি কনফিগার করে এটি ডিফল্ট হিসাবে সেট করা।
আপনি একটি সূচককে একটি সম্পর্কিত ডেটাবেস প্রসঙ্গে পুরো ডাটাবেস হিসাবে বর্ণনা করতে পারেন। আমরা
ফাইলবিট- *
নিয়ে যাব (অথবা আপনি অফিসিয়াল ডকুমেন্টেশনে বর্ণিত আরও সুনির্দিষ্ট অনুসন্ধানের মানদণ্ড ব্যবহার করতে পারেন)।সূচকের নাম বা প্যাটার্ন ক্ষেত্রে
ফাইলবিট- *
লিখুন এবং তারপরে তৈরি ক্লিক করুন:দয়া করে নোট করুন যে আপনাকে পরে আরও সূক্ষ্ম অনুসন্ধানের মানদণ্ডে প্রবেশের অনুমতি দেওয়া হবে। এরপরে, সবুজ আয়তক্ষেত্রের অভ্যন্তরে তারাটিকে ডিফল্ট সূচক প্যাটার্ন হিসাবে কনফিগার করতে ক্লিক করুন:
অবশেষে, আবিষ্কার মেনুতে আপনি লগ ভিজ্যুয়ালাইজেশন রিপোর্টে যুক্ত করতে বেশ কয়েকটি ক্ষেত্র পাবেন। তাদের উপর কেবল ঘোরাফেরা করুন এবং অ্যাড ক্লিক করুন:
উপরের চিত্রের মতো ফলাফলগুলি পর্দার কেন্দ্রীয় অঞ্চলে প্রদর্শিত হবে। কিবানার সাথে পরিচিত হওয়ার জন্য নিখরচায় (লগ রিপোর্ট থেকে ক্ষেত্রগুলি যুক্ত করুন এবং সরিয়ে ফেলুন) খেলুন Fe
ডিফল্টরূপে, কিবানা সর্বশেষ 15 মিনিটের সময় প্রক্রিয়া করা রেকর্ডগুলি প্রদর্শন করবে (উপরের ডানদিকে দেখুন) তবে আপনি অন্য সময় ফ্রেম নির্বাচন করে সেই আচরণটি পরিবর্তন করতে পারেন:
সারসংক্ষেপ
এই নিবন্ধে আমরা ব্যাখ্যা করেছি যে কীভাবে দুটি ক্লায়েন্ট, একটি সেন্টোস 7 এবং একটি ডেবিয়ান 8 মেশিন প্রেরিত সিস্টেম লগগুলি সংগ্রহ করতে একটি ELK স্ট্যাক সেট আপ করবেন।
এখন আপনি অফিসিয়াল ইলাস্টিকসার্ক ডকুমেন্টেশন দেখুন এবং আপনার লগগুলি আরও দক্ষতার সাথে পরিদর্শন ও বিশ্লেষণ করতে এই সেটআপটি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও বিশদ জানতে পারেন।
আপনার যদি কোনও প্রশ্ন থাকে তবে জিজ্ঞাসা করতে দ্বিধা করবেন না। আমরা আপনার কাছ থেকে শ্রবণ করার জন্য উন্মুখ।