ส่วนประกอบของได้ข้อมูลมาแสดงผลบน Kibana ประกอบด้วย

  • Logstash : ทำหน้าที่เป็น Server ในการรับ Log จากเครื่องต่างๆ ใน How- To ครั้งนี้จะเรียกเครื่องที่ลง Logstash ว่า Logstash Server
  • Elasticsearch : ทำหน้าที่เก็บข้อมูล Log
  • Kibana : ทำหน้าที่เป็นตัวแสดงผลที่สามารถค้นหาและเรียกดูรายระเอียดได้ผ่านทาง Web Interface
  • Logstash Forwarder : ทำหน้าที่เป็นตัวส่ง Log ของเครื่องต่างๆไปยัง Logstash Server ใน How-to ครั้งนี้จะเรียกเครื่องนี้ว่า Logstash Client

เตรียมเครื่องที่จะเป็น Logstash Server ด้วยขั้นตอนต่อไปนี้
เพิ่ม Repository และติดตั้ง Java 7 ด้วยคำสั่ง

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

sudo apt-get update

sudo apt-get -y install oracle-java7-installer

ติดตั้ง Elasticsearch ด้วยคำสั่ง

wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -

echo 'deb http://packages.elasticsearch.org/elasticsearch/1.1/debian stable main' | sudo tee /etc/apt/sources.list.d/elasticsearch.list

sudo apt-get update

sudo apt-get -y install elasticsearch=1.1.1

ตั้งค่า Elasticsearch โดยการแก้ไขไฟล์ elasticsearch.yml ด้วยคำสั่ง

sudo nano /etc/elasticsearch/elasticsearch.yml

เพิ่มเนื้อหาดังนี้

 script.disable_dynamic: true

และนำเครื่องหมาย # ออกจาก

network.host: localhost

สั่งให้และตั่งค่าให้ Elasticsearch ทำงานทุกครั้งที่เปิดเครื่องด้วยคำสั่ง

sudo service elasticsearch restart

sudo update-rc.d elasticsearch defaults 95 10

ติดตั้ง Kibana ด้วยคำสั่ง

cd ~; wget https://download.elasticsearch.org/kibana/kibana/kibana-3.0.1.tar.gz

tar xvf kibana-3.0.1.tar.gz

ตั่งค่า port การเชื่อมต่อของ Kibana โดยการแก้ไขไฟล์ config.js ด้วยคำสั่ง

sudo nano ~/kibana-3.0.1/config.js

ทำการแก้ไขจาก Port 9200 เป็น 80 โดยการแก้ไขเนื้อหาไฟล์ดังนี้

elasticsearch: "http://"+window.location.hostname+":80",

ทำการย้ายไฟล์ของ kibana ทั้งหมดไปไว้ใน /var/www ด้วยคำสั่ง

sudo mkdir -p /var/www/kibana3

sudo cp -R ~/kibana-3.0.1/* /var/www/kibana3/

ติดตั้ง Nginx ด้วยคำสั่ง

sudo apt-get install nginx

cd ~; wget https://gist.githubusercontent.com/thisismitch/2205786838a6a5d61f55/raw/f91e06198a7c455925f6e3099e3ea7c186d0b263/nginx.conf

ตั้งค่า Nginx โดยการแก้ไขไฟล์ nginx.conf ด้วยคำสั่ง

nano nginx.conf

แก้ไขเนื้อหาไฟล์ดังนี้

server_name FQDN;
root /var/www/kibana3;

คัดลอกไฟล์ nginx.conf ไปไว้ใน /etc/nginx/sites-available/default ด้วยคำสั่ง

sudo cp nginx.conf /etc/nginx/sites-available/default

ติดตั้ง apache2-utils เพื่อใช้งาน htpasswd สร้างรหัสผ่าน ด้วยคำสั่ง

sudo apt-get install apache2-utils

สร้างรหัสผ่านด้วยคำสั่ง

sudo htpasswd -c /etc/nginx/conf.d/kibana.myhost.org.htpasswd user

โดยทำการเปลี่ยนค่า user เป็นชื่อที่ต้องการเช่น

sudo htpasswd -c /etc/nginx/conf.d/kibana.myhost.org.htpasswd tomson

Restart Nginx ด้วยคำสั่ง

sudo service nginx restart

ติดตั้ง Logstash ด้วยคำสั่ง

echo 'deb http://packages.elasticsearch.org/logstash/1.4/debian stable main' | sudo tee /etc/apt/sources.list.d/logstash.list

sudo apt-get update

sudo apt-get install logstash=1.4.2-1-2c0f5a1

ตั้งค่า Logstash โดยการสร้างและแก้ไขไฟล์ 01-lumberjack-input.conf ด้วยคำสั่ง

sudo nano /etc/logstash/conf.d/01-lumberjack-input.conf

โดยทำการเพิ่มเนื้อหาดังนี้

input {
  lumberjack {
    port => 5000
    type => "logs"
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }
}

ตั้งค่ารูปแบบข้อมูลของ syslog โดยการสร้างและแก้ไขไฟล์ 10-syslog.conf ด้วยคำสั่ง

sudo nano /etc/logstash/conf.d/10-syslog.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" ]
    }
  }
}

สร้างและตั้งค่าไฟล์ 30-lumberjack-output.conf ด้วยคำสั่ง

sudo vi /etc/logstash/conf.d/30-lumberjack-output.conf

โดยทำการเพิ่มเนื้อหาดังนี้

output {
  elasticsearch { host => localhost }
  stdout { codec => rubydebug }
}

Restart Logstash ด้วยคำสั่ง

sudo service logstash restart

ติดตั้ง Logstash Forwarder ในเครื่อง Logstash Client ด้วยขั้นตอนต่อไปนี้
สร้าง SSL Certificates ด้วยคำสั่ง
sudo mkdir -p /etc/pki/tls/certs

sudo mkdir /etc/pki/tls/private

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

ติดตั้ง Logstash Forwarder ด้วยคำสั่ง

echo 'deb http://packages.elasticsearch.org/logstashforwarder/debian stable main' | sudo tee /etc/apt/sources.list.d/logstashforwarder.list

sudo apt-get update

sudo apt-get install logstash-forwarder

cd /etc/init.d/; sudo wget https://raw.github.com/elasticsearch/logstash-forwarder/master/logstash-forwarder.init -O logstash-forwarder

sudo chmod +x logstash-forwarder

sudo update-rc.d logstash-forwarder defaults

คัดลอกไฟล์ SSL Certificate จาก /tmp มาที่ /etc/pki/tls/certs/ ด้วยคำสั่ง

sudo mkdir -p /etc/pki/tls/certs

sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

ตั้งค่า Logstash Forwarder โดยการสร้างและแก้ไขไฟล์ logstash-forwarder ด้วยคำสั่ง

sudo nano /etc/logstash-forwarder

โดยการเพิ่มเนื้อหาดังนี้

{
  "network": {
    "servers": [ "logstash_server_private_IP:5000" ],
    "timeout": 15,
    "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
  },
  "files": [
    {
      "paths": [
        "/var/log/syslog",
        "/var/log/auth.log"
       ],
      "fields": { "type": "syslog" }
    }
   ]
}

Restart Logstash Forwarder ด้วยคำสั่ง

sudo service logstash-forwarder restart

กลับมาที่ Logstash Server ทำการคัดลอกไฟล์ SSL Certificate และ Logstash Forwarder มาจากเครื่อง Logstash Clientด้วยคำสั่ง

scp /etc/pki/tls/certs/logstash-forwarder.crt user@server_private_ip:/tmp

โดยทำการเปลี่ยนค่า user@server_private_ip เป็นบัญชีผ็ใช้และหมายเลข IP Address ของเครื่อง Server ที่ได้ลง Logstash ไว้ ตัวอย่างเช่น

scp /etc/pki/tls/certs/logstash-forwarder.crt tomson@172.21.14.11:/tmp

วิธีการเช้าใช้งานเปิดเว็บเบราเซอร์แล้วไปที่

http://server_ip/

เช่น

http://172.21.14.88/

ก็จะพบกับหน้าแรกของ Kibana

Comments are closed.