GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Elastic Stack di Ubuntu 16.04

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

Logstash adalah alat sumber terbuka untuk mengelola peristiwa dan log sistem. Ini menyediakan pipelining real-time untuk mengumpulkan data. Logstash akan mengumpulkan log atau data, mengubah semua data menjadi dokumen JSON, dan menyimpannya di Elasticsearch.

Kibana adalah antarmuka visualisasi data untuk Elasticsearch. Kibana menyediakan dasbor cantik (antarmuka web), memungkinkan Anda untuk mengelola dan memvisualisasikan semua data dari Elasticsearch sendiri. Tidak hanya cantik, tetapi juga kuat.

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

Prasyarat

  • Server Ubuntu 16.04 64 bit dengan RAM 4GB, nama host - elk-master
  • Klien Ubuntu 16.04 64 bit dengan RAM 1 GB, nama host - elk-client1
  • Klien CentOS 7 64 bit dengan RAM 1 GB, nama host - elk-client2

Langkah 1 - Instal Java

Java diperlukan untuk penyebaran tumpukan Elastis. Elasticsearch membutuhkan Java 8. Disarankan untuk menggunakan Oracle JDK 1.8. Kami akan menginstal Java 8 dari repositori PPA.

Instal paket baru 'python-software-properties' jadi kita bisa menambahkan repositori baru dengan mudah dengan perintah apt.

sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common apt-transport-https

Tambahkan repositori Java 8 PPA baru dengan perintah 'add-apt-repository', lalu perbarui repositori.

sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update

Instal Java 8 dari repositori webpub8 PPA.

sudo apt-get install -y Oracle-Java8-installer

Ketika instalasi selesai, pastikan Java diinstal dengan benar pada sistem dengan memeriksa versi Java.

java -versi

Langkah 2 - Instal dan Konfigurasi Elasticsearch

Pada langkah ini, kita akan menginstal dan mengkonfigurasi Elasticsearch. Instal Elasticsearch dari repositori elastis dan konfigurasikan agar berjalan di IP localhost.

Sebelum menginstal Elasticsearch, tambahkan kunci repositori elastic ke server.

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

Tambahkan repositori elastic 5.x ke direktori 'sources.list.d'.

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Perbarui repositori dan instal Elasticsearch 5.1 dengan perintah apt di bawah.

sudo apt-get update
sudo apt-get install -y elasticsearch

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 43. Kami melakukan ini untuk menonaktifkan swapping memori untuk Elasticsearch agar server tidak kelebihan beban.

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 vim.

Sekarang edit file layanan elasticsearch untuk konfigurasi lockall kunci memori.

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

Batalkan komentar Batas MEMLOCK baris.

LimitMEMLOCK=tak terhingga

Simpan file dan keluar.

Edit konfigurasi default untuk Elasticsearch di direktori /etc/default.

vim /etc/default/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 bawah alamat IP localhost dengan port 9200 dan kami menonaktifkan memori swap dengan mengaktifkan mlockall di server Ubuntu.

Muat ulang file layanan Elasticsearch dan aktifkan untuk berjalan saat boot, lalu mulai layanan.

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

Tunggu sebentar hingga Elasticsearch berjalan, 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. Periksa juga apakah Elasticsearch berjalan dengan perintah di bawah ini.

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

Anda akan melihat hasilnya di bawah.

Langkah 3 - Instal dan Konfigurasi Kibana dengan Nginx

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

Instal Kibana dengan perintah tepat ini:

sudo apt-get install -y kibana

Sekarang edit file konfigurasi kibana.yml.

vim /etc/kibana/kibana.yml

Batalkan komentar pada baris server.port, server.hos, dan elasticsearch.url.

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

Simpan file dan keluar dari vim.

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.

Selanjutnya, instal paket Nginx dan Apache2-utils.

sudo apt-get install -y nginx apache2-utils

Apache2-utils adalah paket yang berisi alat untuk server web yang bekerja dengan Nginx juga, kami akan menggunakan otentikasi dasar htpasswd untuk Kibana.

Nginx sudah terinstall. Sekarang kita perlu membuat file konfigurasi virtual host baru di direktori yang tersedia di situs Nginx. Buat file baru 'kibana' dengan vim.

cd /etc/nginx/
vim sites-available/kibana

Tempelkan konfigurasi di bawah.

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 file dan keluar dari vim

Buat file otentikasi dasar baru dengan perintah htpasswd.

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

Aktifkan host virtual kibana dengan membuat tautan simbolis dari file kibana di 'sites-available' ke direktori 'sites-enabled'.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/

Uji konfigurasi nginx dan pastikan tidak ada kesalahan, lalu tambahkan nginx untuk dijalankan saat boot dan mulai ulang nginx.

nginx -t
systemctl aktifkan nginx
systemctl restart nginx

Langkah 4 - Instal dan Konfigurasikan Logstash

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

Instal Logstash 5 dengan perintah apt di bawah ini.

sudo apt-get install -y logstash

Edit file host dengan vim.

vim /etc/hosts

Tambahkan alamat IP server dan nama host.

10.0.15.10    elk-master

Simpan file host dan keluar dari editor.

Sekarang buat file sertifikat SSL baru dengan OpenSSL sehingga sumber klien dapat mengidentifikasi server elastis.

cd /etc/logstash/
openssl req -subj /CN=elk-master -x509 -days 3650 -batch -nodes -newkey rsa:4096 -keyout logstash.key -out logstash.crt

Ubah '/CN ' ke nama host server elastis.

File sertifikat akan dibuat di direktori '/etc/logstash/'.

Selanjutnya, kita akan membuat file konfigurasi untuk logstash. Kami akan membuat file konfigurasi 'filebeat-input.conf' sebagai file input dari filebeat, 'syslog-filter.conf' untuk pemrosesan syslog, dan kemudian file 'output-elasticsearch.conf' untuk menentukan output Elasticsearch.

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

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

Konfigurasi masukan, rekatkan konfigurasi di bawah.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/logstash. crt"
    ssl_key => "/etc/logstash/logstash.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.

Setelah ini selesai, tambahkan logstash untuk memulai saat boot dan memulai layanan.

sudo systemctl aktifkan logstash
sudo systemctl start logstash

Langkah 5 - Instal dan Konfigurasi Filebeat pada Klien Ubuntu

Hubungkan ke server sebagai root dengan akun ssh.

ssh [dilindungi email]

Salin file sertifikat ke klien dengan perintah scp.

scp [dilindungi email]:/etc/logstash/logstash.crt .

Edit file host dan tambahkan alamat IP elk-master.

vim /etc/hosts

Tambahkan konfigurasi di bawah ini di akhir file.

10.0.15.10    elk-master

Simpan dan keluar.

Sekarang kita perlu menambahkan kunci elastis ke server elk-client1.

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

Kami akan menggunakan repositori elastis dengan transport unduhan https, jadi kami perlu menginstal paket 'apt-transport-https' ke server.

sudo apt-get install -y apt-transport-https

Tambahkan repositori elastis dan perbarui semua repositori Ubuntu.

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
sudo apt-get update

Sekarang instal 'filebeat' dengan perintah apt.

sudo apt-get install -y filebeat

Selanjutnya, masuk ke direktori konfigurasi filebeat dan edit file 'filebeat.yml' dengan vim.

cd /etc/filebeat/
vim filebeat.yml

Tambahkan file log baru di bawah 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.

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

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

output.logstash:
  # Host Logstash
  host:["elk-master:5443"]
  bulk_max_size:2048
  ssl.certificate_authorities:["/etc/ filebeat/logstash.crt"]
  template.name:"filebeat"
  template.path:"filebeat.template.json"
  template.overwrite:false

Simpan dan keluar.

Pindahkan file sertifikat ke direktori filebeat.

mv ~/logstash.crt /etc/filebeat/

Mulai filebeat dan tambahkan untuk dijalankan saat boot.

sudo systemctl start filebeat
sudo systemctl aktifkan filebeat

Periksa status layanan.

sudo systemctl status filebeat

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 mengirimkan data log ke server logstash melalui koneksi SSL yang aman.

Salin file sertifikat dari server elastis ke server client1. Masuk ke server client1.

ssh [dilindungi email]

Salin file sertifikat dengan perintah scp.

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

Edit file host dan tambahkan alamat server elk-master.

vim /etc/hosts

Tambahkan alamat server elk-master.

10.0.15.10    elk-master

Simpan dan keluar.

Selanjutnya, impor kunci elastis ke server elk-client2.

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

Tambahkan repositori elastis ke server.

cd /etc/yum.repos.d/
vim elastic.repo

Tempelkan konfigurasi di bawah ini.

[elastic-5.x]
name=Repositori elastis untuk paket 5.x
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Simpan dan keluar.

Instal filebeat dengan perintah yum ini.

sudo yum -y install filebeat

Filebeat telah terinstal, sekarang masuk ke direktori konfigurasi dan edit file 'filebeat.yml'.

cd /etc/filebeat/
vim filebeat.yml

Pada bagian jalur baris 21, tambahkan beberapa file log baru, kami akan menambahkan dua file di sini:'/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 ke 'syslog'.

  jenis dokumen:syslog

Secara default, filebeat menggunakan elasticsearch sebagai output. Dalam tutorial ini, kita akan mengubahnya menjadi logshtash. Nonaktifkan output elasticsearch dengan menambahkan komentar ke baris 83 dan 85.

Nonaktifkan output elasticsearch.

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

Sekarang tambahkan konfigurasi keluaran logstash baru, batalkan komentar pada konfigurasi keluaran logstash dan ubah semua nilai menjadi yang ditunjukkan pada konfigurasi di bawah ini.

output.logstash:
  # Host Logstash
  host:["elk-master:5443"]
  bulk_max_size:2048
  ssl.certificate_authorities:["/etc/ filebeat/logstash.crt"]
  template.name:"filebeat"
  template.path:"filebeat.template.json"
  template.overwrite:false

Simpan dan keluar.

Tambahkan filebeat untuk memulai saat boot dan memulainya.

sudo systemctl aktifkan filebeat
sudo systemctl start filebeat

Sekarang Anda dapat memeriksa dan melihat file log filebeat untuk memastikannya berjalan dengan benar.

tail -f /var/log/filebeat/filebeat

Langkah 8 - Pengujian

Buka browser web Anda dan kunjungi domain elastic stack yang Anda konfigurasikan dalam konfigurasi nginx, milik saya adalah 'elk-stack.co', ketik nama pengguna admin dengan sandi Anda dan tekan Enter untuk masuk ke dasbor Kibana.

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

Indeks default telah dibuat. Jika Anda memiliki beberapa ketukan di tumpukan elastis, Anda dapat mengonfigurasi ketukan default hanya dengan mengklik '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, coba saja!

Elastic Stack telah diinstal di server Ubuntu 16.04, filebeat telah diinstal di server klien Ubuntu dan CentOS.


Ubuntu
  1. Cara menginstal Graylog2 di Ubuntu 14.04

  2. Cara menginstal Graylog2 di Ubuntu 15.04 / 14.10

  3. Cara Menginstal Elasticsearch di Ubuntu 20.04

  1. Cara Menginstal Elasticsearch di Ubuntu 18.04

  2. Cara Menginstal R di Ubuntu 20.04

  3. Cara Menginstal dan Mengonfigurasi Elasticsearch di Ubuntu 20.04

  1. Cara Menginstal Go di Ubuntu 18.04

  2. Cara Menginstal R di Ubuntu 18.04

  3. Cara Menginstal Elasticsearch di Ubuntu 20.04