Quantcast
Viewing all articles
Browse latest Browse all 176

มาเล่น Logstash, ElasticSearch และ Kibana กัน

เนื่องจากมีผู้รู้แนะนำให้ลองเล่น Logstash. ElasticSearch และ Kibana เมื่อช่วงปลายปี 2013 มาวันนี้เพิ่งจะได้มาล่องเล่นดู เรื่องการจัดการ log ไฟล์ หลายคนอาจเคยได้ยิน syslog-ng หรืออะไรนองนั้น ซึ่งการเก็บ log ส่วนใหญ่เก็บลงไฟล์ เก็บไว้อย่างนั้นไม่ได้เอามาใช้ประโยชน์อะไร มันก็น่าเสียดาย เพราะ log เหล่านี้สามารถนำมาวิเคราะห์แบบ real time ได้ หากพบปัญหาที่ตรวจพบได้จาก log ก็สามารถแก้ไขได้ทันท่วงที Logstash และ ElasticSearh ต้องใช้ Java ดังนั้นติดตั้ง Java กันก่อน

apt-get install openjdk-7-jdk

จากนั้นดาวน์โหลด logstash และติดตั้งลงในเครื่อง

curl -O https://download.elasticsearch.org/logstash/logstash/logstash-1.4.1.tar.gz

tar zxvf logstash-1.4.1.tar.gz

cd logstash-1.4.1

ทดสอบการทำงานดูสักหน่อย

bin/logstash -e 'input { stdin { } } output { stdout {} }'

คุณจะพบว่า logstash ให้คุณพิมพ์อะไรลงไปก็ได้ จากนั้นก็จะ return log ออกมาดังภาพ

Image may be NSFW.
Clik here to view.

ติดตั้ง elasticsearch เราจะเอา log ที่ได้ไปเก็บไว้ในนี้

curl -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.1.tar.gz

tar zxvf elasticsearch-1.1.1.tar.gz

cd elasticsearch-1.1.1

./bin/elasticsearch

ทดสอบการทำงานดูสักหน่อย

bin/logstash -e 'input { stdin { } } output { elasticsearch { host => localhost } }'

logstash จะให้คุณพิมพ์อะไรสักอย่างลงไป จากนั้นให้คุณใช้ curl ลองดูใน ES ว่าเก็บข้อมูลจาก logstash จริงหรือไม่

curl 'http://localhost:9200/_search?pretty'

จะได้ผลลัพท์ดังนี้

Image may be NSFW.
Clik here to view.

ทีนี้มาลอง ส่ง log ของ Apache ไปเก็บไว้ใน ES กันบ้าง ให้เขียน config ไฟล์ ดังนี้

input {

file {

path => "/var/log/apache2/access.log"

start_position => beginning

}

}

filter {

if [path] =~ "access" {

mutate { replace => { "type" => "apache_access" } }

grok {

match => { "message" => "%{COMBINEDAPACHELOG}" }

}

}

date {

match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]

}

}

output {

elasticsearch {

host => localhost

}

stdout { codec => rubydebug }

}

จากนั้นใช้คำสั่ง

bin/logstash -f logstash-apache.conf

รอสักครู่ logstash จะอ่านไฟล์ log แล้วส่งข้อมูลไปยัง ES ให้เรื่อยๆ ครับ ข้อมูลที่เก็บใน ES จะเป็นข้อมูลแบบ json ถ้าต้องการ Query ก็สามารถ Query ผ่าน ES ได้ แต่เราจะมาใช้ เครื่องมืออีกตัวหนึ่งเพื่อให้ชีวิตง่ายขึ้น คือ Kibana

curl -O https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz

tar zxvf kibana-3.1.0.tar.gz

cd kibana-3.1.0/

แก้ไขไฟล์ config.js กำหนด ES Server ให้ถูกต้อง จากนั้นคัดลอกไฟล์ไปยัง Document Root ของ Web Server ที่เราใช้งานอยู่ จากนั้นเปิดเบราเซอร์ขึ้นมา เราจะได้หน้าจอดังนี้

Image may be NSFW.
Clik here to view.

ถ้ายังคิดอะไรไม่ออก คลิกไปที่ Link ที่เขียนว่า Logstash Dashboard คุณจะได้หน้าจอ Dashboard สำเร็จรูปมา 1 หน้าจอ

Image may be NSFW.
Clik here to view.

จากนี้คุณก็สามารถปรับแต่ง Dashboard ตามใจคุณได้แล้ว

Image may be NSFW.
Clik here to view.

Image may be NSFW.
Clik here to view.


Viewing all articles
Browse latest Browse all 176

Trending Articles