GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal Elastic Stack di CentOS 7

Elasticsearch adalah mesin pencari open source berbasis Lucene, yang dikembangkan di Jawa. Ini menyediakan mesin pencari teks lengkap terdistribusi dan multitenant dengan antarmuka web Dasbor HTTP (Kibana). Data ditanyakan, diambil, dan disimpan dengan skema dokumen JSON. Elasticsearch adalah mesin pencari terukur yang dapat digunakan untuk mencari semua jenis dokumen teks, termasuk file log. Elasticsearch adalah inti dari 'Elastic Stack' atau ELK Stack.

Logstash adalah alat sumber terbuka untuk mengelola acara dan log. Ini menyediakan pipelining real-time untuk pengumpulan data. Logstash akan mengumpulkan data log Anda, mengubah data menjadi dokumen JSON, dan menyimpannya di Elasticsearch.

Kibana adalah alat visualisasi data open source untuk Elasticsearch. Kibana menyediakan antarmuka web dasbor yang cantik. Ini memungkinkan Anda untuk mengelola dan memvisualisasikan data dari Elasticsearch. Tidak hanya cantik, tetapi juga kuat.

Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengkonfigurasi Elastic Stack di server CentOS 7 untuk memantau log server. Kemudian saya akan menunjukkan cara menginstal 'Elastic beats' di CentOS 7 dan sistem operasi klien Ubuntu 16.04.

Prasyarat

  • CentOS 7 64 bit dengan RAM 4GB - elk-master
  • CentOS 7 64 bit dengan 1 GB RAM - client1
  • Ubuntu 16.04 64 bit dengan 1GB RAM - client2

Langkah 1 - Siapkan Sistem Operasi

Dalam tutorial ini, kami akan menonaktifkan SELinux di server CentOS 7. Edit file konfigurasi SELinux.

vim /etc/sysconfig/selinux

Ubah nilai SELinux dari menegakkan menjadi dinonaktifkan.

SELINUX=dinonaktifkan

Kemudian reboot server.

boot ulang

Masuk ke server lagi dan periksa status SELinux.

dapatkan

Pastikan hasilnya dinonaktifkan.

Langkah 2 - Instal Java

Java diperlukan untuk penyebaran tumpukan Elastis. Elasticsearch membutuhkan Java 8, disarankan untuk menggunakan Oracle JDK 1.8. Saya akan menginstal Java 8 dari paket rpm Oracle resmi.

Unduh Java 8 JDK dengan perintah wget.

wget --no-cookies --no-check-certificate --header "Cookie:gpw_e24=http:%2F%2Fwww.Oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http:// download.Oracle.com/otn-pub/java/jdk/8u77-b02/jdk-8u77-linux-x64.rpm"

Kemudian instal dengan perintah rpm ini;

rpm -ivh jdk-8u77-linux-x64.rpm

Terakhir, periksa versi Java JDK untuk memastikannya berfungsi dengan baik.

java -versi

Anda akan melihat server versi Java.

Langkah 3 - Instal dan Konfigurasi Elasticsearch

Pada langkah ini, kita akan menginstal dan mengkonfigurasi Elasticsearch. Saya akan menginstal Elasticsearch dari paket rpm yang disediakan oleh elastic.co dan mengonfigurasinya untuk berjalan di localhost (untuk membuat penyiapan aman dan memastikannya tidak dapat dijangkau dari luar).

Sebelum menginstal Elasticsearch, tambahkan kunci elastic.co ke server.

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

Selanjutnya, unduh Elasticsearch 5.1 dengan wget lalu instal.

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.rpm
rpm -ivh elasticsearch-5.1.1.rpm

Elasticsearch diinstal. Sekarang masuk ke direktori konfigurasi dan edit file konfigurasi elasticsaerch.yml.

cd /etc/elasticsearch/
vim elasticsearch.yml

Aktifkan kunci memori untuk Elasticsearch dengan menghapus komentar pada baris 40. Ini menonaktifkan pertukaran memori untuk Elasticsearch.

bootstrap.memory_lock:true

Di blok 'Jaringan', batalkan komentar pada baris network.host dan http.port.

network.host:localhost
http.port:9200

Simpan file dan keluar dari editor.

Sekarang edit file elasticsearch.service untuk konfigurasi kunci memori.

vim /usr/lib/systemd/system/elasticsearch.service

Batalkan komentar Batas MEMLOCK baris.

LimitMEMLOCK=tak terhingga

Simpan dan keluar.

Edit file konfigurasi sysconfig untuk Elasticsearch.

vim /etc/sysconfig/elasticsearch

Batalkan komentar pada baris 60 dan pastikan nilainya 'tidak terbatas'.

MAX_LOCKED_MEMORY=tidak terbatas

Simpan dan keluar.

Konfigurasi Elasticsearch selesai. Elasticsearch akan berjalan di alamat IP localhost pada port 9200, kami menonaktifkan pertukaran memori untuk itu dengan mengaktifkan mlockall di server CentOS.

Muat ulang systemd, aktifkan Elasticsearch untuk memulai saat boot, lalu mulai layanan.

sudo systemctl daemon-reload
sudo systemctl aktifkan elasticsearch
sudo systemctl start elasticsearch

Tunggu sebentar hingga Eelasticsearch memulai, lalu periksa port yang terbuka di server, pastikan 'status' untuk port 9200 adalah 'LISTEN'.

netstat -plntu

Kemudian periksa kunci memori untuk memastikan bahwa mlockall diaktifkan, dan periksa apakah Elasticsearch berjalan dengan perintah di bawah.

curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'
curl -XGET 'localhost:9200/?pretty'

Anda akan melihat hasilnya di bawah.

Langkah 4 - Instal dan Konfigurasi Kibana dengan Nginx

Pada langkah ini, kita akan menginstal dan mengkonfigurasi Kibana dengan server web Nginx. Kibana akan mendengarkan alamat IP localhost dan Nginx bertindak sebagai proxy terbalik untuk aplikasi Kibana.

Download Kibana 5.1 dengan wget, lalu install dengan perintah rpm:

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.1.1-x86_64.rpm
rpm -ivh kibana-5.1.1-x86_64.rpm

Sekarang edit file konfigurasi Kibana.

vim /etc/kibana/kibana.yml

Batalkan komentar pada baris konfigurasi untuk server.port, server.host, dan elasticsearch.url.

server.port:5601
server.host:"localhost"
elasticsearch.url:"http://localhost:9200"

Simpan dan keluar.

Tambahkan Kibana untuk dijalankan saat boot dan mulai.

sudo systemctl aktifkan kibana
sudo systemctl start kibana

Kibana akan berjalan pada port 5601 sebagai aplikasi node.

netstat -plntu

Instalasi Kibana selesai. Sekarang kita perlu menginstal Nginx dan mengkonfigurasinya sebagai proxy terbalik untuk dapat mengakses Kibana dari alamat IP publik.

Nginx tersedia di repositori Epel, instal epel-release dengan yum.

yum -y install epel-release

Selanjutnya, instal paket Nginx dan httpd-tools.

yum -y install nginx httpd-tools

Paket httpd-tools berisi alat untuk server web, kami akan menggunakan otentikasi dasar htpasswd untuk Kibana.

Edit file konfigurasi Nginx dan hapus 'server {} ', sehingga kami dapat menambahkan konfigurasi host virtual baru.

cd /etc/nginx/
vim nginx.conf

Hapus blok server {}.

Simpan file dan keluar dari vim.

Sekarang kita perlu membuat file konfigurasi virtual host baru di direktori conf.d. Buat file baru 'kibana.conf' dengan vim.

vim /etc/nginx/conf.d/kibana.conf

Tempelkan konfigurasi di bawah ini.

server {
    listen 80;

    nama_server elk-stack.co;

    auth_basic "Akses Terbatas";
    auth_basic_user_file /etc/nginx /.kibana-user;

    location / {
        proxy_pass http://localhost:5601;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
proxy_set_header Koneksi 'upgrade';
        proxy_set_header Host $host;
       proxy_cache_bypass $http_upgrade;
    }
}

Simpan dan keluar.

Kemudian buat file otentikasi dasar baru dengan perintah htpasswd.

sudo htpasswd -c /etc/nginx/.kibana-user admin
KETIKA SANDI ANDA

Uji konfigurasi Nginx dan pastikan tidak ada kesalahan. Kemudian tambahkan Nginx untuk dijalankan pada saat boot dan mulai Nginx.

nginx -t
systemctl aktifkan nginx
systemctl start nginx

Langkah 5 - Instal dan Konfigurasikan Logstash

Pada langkah ini, kita akan menginstal Logsatash dan mengonfigurasinya untuk memusatkan log server dari klien dengan filebeat, lalu memfilter dan mengubah data Syslog dan memindahkannya ke simpanan (Elasticsearch).

Unduh Logstash dan instal dengan rpm.

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.rpm
rpm -ivh logstash-5.1.1.rpm

Buat file sertifikat SSL baru sehingga klien dapat mengidentifikasi server elastis.

Buka direktori tls dan edit file openssl.cnf.

cd /etc/pki/tls
vim openssl.cnf

Tambahkan baris baru di bagian '[ v3_ca ]' untuk identifikasi server.

[ v3_ca ]

# Alamat IP Server
subjectAltName =IP:10.0.15.10

Simpan dan keluar.

Buat file sertifikat dengan perintah openssl.

openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash-forwarder.key -out / etc/pki/tls/certs/logstash-forwarder.crt

File sertifikat dapat ditemukan di direktori '/etc/pki/tls/certs/' dan '/etc/pki/tls/private/'.

Selanjutnya, kita akan membuat file konfigurasi baru untuk Logstash. Kami akan membuat file 'filebeat-input.conf' baru untuk mengonfigurasi sumber log untuk filebeat, kemudian file 'syslog-filter.conf' untuk pemrosesan syslog dan file 'output-elasticsearch.conf' untuk menentukan output Elasticsearch.

Buka direktori konfigurasi logstash dan buat file konfigurasi baru di subdirektori 'conf.d'.

cd /etc/logstash/
vim conf.d/filebeat-input.conf

Konfigurasi input:rekatkan konfigurasi di bawah ini.

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

Simpan dan keluar.

Buat file syslog-filter.conf.

vim conf.d/syslog-filter.conf

Tempelkan konfigurasi di bawah ini.

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}" ]
    }
    tanggal {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Kami menggunakan plugin filter bernama 'grok ' untuk mengurai file syslog.

Simpan dan keluar.

Buat file konfigurasi keluaran 'output-elasticsearch.conf'.

vim conf.d/output-elasticsearch.conf

Tempelkan konfigurasi di bawah ini.

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

Simpan dan keluar.

Terakhir tambahkan logstash untuk memulai saat boot dan memulai layanan.

sudo systemctl aktifkan logstash
sudo systemctl start logstash

Langkah 6 - Instal dan Konfigurasi Filebeat pada Klien CentOS

Beats adalah pengirim data, agen ringan yang dapat diinstal pada node klien untuk mengirim data dalam jumlah besar dari mesin klien ke server Logstash atau Elasticsearch. Ada 4 ketukan yang tersedia, 'Filebeat' untuk 'Log Files', 'Metricbeat' untuk 'Metrics', 'Packetbeat' untuk 'Network Data' dan 'Winlogbeat' untuk 'Event Log' klien Windows.

Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengkonfigurasi 'Filebeat' untuk mentransfer file log data ke server Logstash melalui koneksi SSL.

Masuk ke server klien1. Kemudian salin file sertifikat dari server elastis ke server client1.

ssh [dilindungi email]

Salin file sertifikat dengan perintah scp.

scp [dilindungi email]:~/logstash-forwarder.crt .
TYPE elk-server password

Buat direktori baru dan pindahkan file sertifikat ke direktori tersebut.

sudo mkdir -p /etc/pki/tls/certs/
mv ~/logstash-forwarder.crt /etc/pki/tls/certs/

Selanjutnya, impor kunci elastis di server client1.

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

Unduh Filebeat dan instal dengan rpm.

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-x86_64.rpm
rpm -ivh filebeat-5.1.1-x86_64.rpm

Filebeat telah diinstal, buka direktori konfigurasi dan edit file 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

Di bagian jalur pada baris 21, tambahkan file log baru. Kami akan menambahkan dua file '/var/log/secure' untuk aktivitas ssh dan '/var/log/messages' untuk log server.

  jalur:
    - /var/log/secure
    - /var/log/messages

Tambahkan konfigurasi baru pada baris 26 untuk menentukan jenis file syslog.

  jenis dokumen:syslog

Filebeat menggunakan Elasticsearch sebagai target output secara default. Dalam tutorial ini, kita akan mengubahnya menjadi Logshtash. Nonaktifkan output Elasticsearch dengan menambahkan komentar pada baris 83 dan 85.

Nonaktifkan output elasticsearch.

#-------------------------- Keluaran pencarian elastis ------------------ ------------
#output.elasticsearch:
  # Array host yang akan dihubungkan.
#  hosts:["localhost:9200"]

Sekarang tambahkan konfigurasi output logstash baru. Batalkan komentar pada konfigurasi output logstash dan ubah semua nilai ke konfigurasi yang ditunjukkan di bawah ini.

output.logstash:
  # Host Logstash
  host:["10.0.15.10:5443"]
  bulk_max_size:1024
  ssl.certificate_authorities:["/etc/ pki/tls/certs/logstash-forwarder.crt"]
  template.name:"filebeat"
  template.path:"filebeat.template.json"
  template.overwrite:false

Simpan file dan keluar dari vim.

Tambahkan Filebeat untuk memulai saat boot dan memulainya.

sudo systemctl aktifkan filebeat
sudo systemctl start filebeat

Langkah 7 - Instal dan Konfigurasi Filebeat di Klien Ubuntu

Hubungkan ke server dengan ssh.

ssh [dilindungi email]

Salin file sertifikat ke klien dengan perintah scp.

scp [dilindungi email]:~/logstash-forwarder.crt .

Buat direktori baru untuk file sertifikat dan pindahkan file ke direktori tersebut.

sudo mkdir -p /etc/pki/tls/certs/
mv ~/logstash-forwarder.crt /etc/pki/tls/certs/

Tambahkan kunci elastis ke server.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Unduh paket Filebeat .deb dan instal dengan perintah dpkg.

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb
dpkg -i filebeat-5.1.1-amd64.deb

Buka direktori konfigurasi filebeat dan edit file 'filebeat.yml' dengan vim.

cd /etc/filebeat/
vim filebeat.yml

Tambahkan jalur file log baru di bagian konfigurasi jalur.

  jalur:
    - /var/log/auth.log
    - /var/log/syslog

Setel jenis dokumen ke syslog.

  jenis dokumen:syslog

Nonaktifkan output elasticsearch dengan menambahkan komentar ke baris yang ditunjukkan di bawah ini.

#-------------------------- Keluaran pencarian elastis ------------------ ------------
#output.elasticsearch:
  # Array host yang akan dihubungkan.
#  hosts:["localhost:9200"]

Aktifkan keluaran logstash, batalkan komentar pada konfigurasi dan ubah nilainya seperti yang ditunjukkan di bawah ini.

output.logstash:
  # Host Logstash
  host:["10.0.15.10:5443"]
  bulk_max_size:1024
  ssl.certificate_authorities:["/etc/ pki/tls/certs/logstash-forwarder.crt"]
  template.name:"filebeat"
  template.path:"filebeat.template.json"
  template.overwrite:false

Simpan file dan keluar dari vim.

Tambahkan Filebeat untuk memulai saat boot dan memulainya.

sudo systemctl aktifkan filebeat
sudo systemctl start filebeat

Periksa status layanan.

systemctl status filebeat

Langkah 8 - Menguji Elastic Stack

Buka browser web Anda dan kunjungi domain tumpukan elastis yang Anda gunakan dalam konfigurasi Nginx,  milik saya adalah 'elk-stack.co'. Masuk sebagai pengguna admin dengan kata sandi Anda dan tekan Enter untuk masuk ke dasbor Kibana.

Buat indeks default baru 'filebeat-*' dan klik tombol 'Buat'.

Indeks default telah dibuat. Jika Anda memiliki beberapa ketukan di tumpukan elastis, Anda dapat mengonfigurasi ketukan default hanya dengan satu klik pada tombol 'bintang'.

Buka 'Temukan ' dan Anda akan melihat semua file log dari server elk-client1 dan elk-client2.

Contoh output JSON dari log server elk-client1 untuk login ssh yang tidak valid.

Dan masih banyak lagi yang dapat Anda lakukan dengan dasbor Kibana, cukup bermain-main dengan opsi yang tersedia.

Elastic Stack telah diinstal pada server CentOS 7. Filebeat telah diinstal pada CentOS 7 dan klien Ubuntu.


Cent OS
  1. Cara menginstal Graylog2 di CentOS 7 / RHEL 7

  2. Cara Install Ntopng di CentOS 6

  3. Cara Memasang ELK Stack di CentOS 7

  1. Cara Menginstal Paket RPM di CentOS

  2. Cara Menginstal Elasticsearch di CentOS 7

  3. Cara Menginstal Elasticsearch di CentOS 8

  1. Cara Menginstal Graylog dengan Elasticsearch di CentOS 8

  2. Cara Memasang LAMP Stack di CentOS 7

  3. Cara Memasang Elastic Stack (Elasticsearch, Logstash dan Kibana) di CentOS 8