1. Trình làng
Với những khối hệ thống lớn việc vận hành log và phân loại log bằng việc xem file log của server để xác định thông tin của log, phân loại log là khá khó khăn. Quan trọng phải có một phương tiện vận hành log một kiểu tốt hơn, sớm phát hiện những lỗi phát sinh của server hoặc kiểm tra những thông tin về log. Hiện nay cũng có không ít phương tiện để vận hành log không giống nhau. Qua tìm hiểu thì bộ phương tiện Logstash, Elasticsearch, Kibana có nhiều ưu điểm như ứng dụng mã nguồn mở trọn vẹn miễn phí, hỗ trợ dịch vụ vận hành log rất tốt và dễ tận dụng. Sau đây tôi sẽ ra mắt về bộ phương tiện này.
Logstash: Đấy là một phương tiện tận dụng để tích lũy, xử lý log được viết bằng java. Nhiệm vụ chính của logstash là tích lũy log tiếp theo chuyển vào Elastichsearch. Mỗi dòng log của logstash được lưu trữ đưới dạng json.
Elasticsearch: tận dụng cơ sở tài liệu NoSQL dựa trên nền tảng của Apache Lucene engine. Dùng làm lưu trữ tài liệu và hỗ trợ interface được chấp nhận truy vấn đến cơ sở tài liệu.
Kibana: Đấy là giao diện tận dụng dành cho những người dùng trên môi trường xung quanh web. Kibana sẽ tận dụng Elashtichsearch để tìm kiếm những tài liệu phù phù hợp với yêu cầu của người tiêu dùng.
2. Thiết đặt
2.1 Thiết đặt java
Logstash được viết bằng java nên cần phải có một Java Virtual Machine để hoạt động và sinh hoạt. Vì vậy trước tiên người cần setup Java, nên cài phiên bạn dạng tiên tiến nhất của java hiện nay Java8
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer
2.2 Thiết đặt Logstash
sudo wget http://tải về.elastic.co/logstash/logstash/packages/debian/logstash_1.5.3-1_all.deb sudo dpkg -i logstash_1.5.3-1_all.deb sudo update-rc.d logstash defaults 95 10 sudo /etc/init.d/logstash restart
2.3 Thiết đặt Elasticsearch
sudo wget https://tải về.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.deb sudo dpkg -i elasticsearch-1.7.1.deb sudo update-rc.d elasticsearch defaults 95 10 sudo /etc/init.d/elasticsearch restart
2.4 Cài Kibana
Thiết đặt Kibana
cd /opt sudo wget https://tải về.elasticsearch.org/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz sudo tar xvfz kibana-4.1.1-linux-x64.tar.gz sudo ln -s kibana-4.1.1-linux-x64 kibana
Phát động Kibana tự động hóa
cd /etc/init.d sudo wget https://raw.githubusercontent.com/akabdog/scripts/master/kibana4_init sudo chmod 755 kibana4_init sudo update-rc.d kibana4_init defaults 95 10 sudo /etc/init.d/kibana4_init restart
Như vậy người đã xong việc setup bộ phương tiện này.
Để ý: Kibana mặc định hoạt động và sinh hoạt ở cổng 5601 http://localhost:5601
2.5 Kiểm tra hoạt động và sinh hoạt của logstash, Elasticsearch, Kibana
Tín đồ chạy lệnh sau để phát động logstash. Theo config này logstash sẽ nhận input là stdin (tài liệu nhập từ screen) và tài liệu được xuất ra Elasticsearch ở khu vực localhost
sudo -u logstash /opt/logstash/bin/logstash -e ‘input { stdin { } } output { elasticsearch { host => localhost } }’
3. Tận dụng Logstash, Elasticsearch, Kibana với Rails
Để tận dụng Logstash, Elasticsearch, Kibana hiệu suất cao thì log của Rails cũng rất cần được lưu trữ dưới dạng Json. Một số trong những gem tương trợ việc lưu trữ log dưới dạng Json cho Rails, trong đó gem logstash-logger khá tiện lợi, dễ dùng và được Reviews cao. Việc setup và tận dụng logstash-logger chúng ta cũng có thể xem thêm ở https://github.com/dwbutler/logstash-logger
Dưới đó là ví dụ một số trong những log được lưu trữ bởi logstash-logger
{“test”:1,”@timestamp”:”2015-09-19T09:54:09.309+07:00″,”@version”:”1″,”severity”:”INFO”,”host”:”somehost”} {“test”:2,”@timestamp”:”2015-09-19T09:54:09.309+07:00″,”@version”:”1″,”severity”:”ERROR”,”host”:”somehost”} {“test”:3,”@timestamp”:”2015-09-19T09:54:09.309+07:00″,”@version”:”1″,”severity”:”DEBUG”,”host”:”somehost”}
Tiếp sau đó người chạy logstash và config cho logstash đọc thông tin log thì file log của server như sau
example.config
input { file { type => “rails logs” path => “#path_your_log_file” codec => json { charset => “UTF-8” } } } output { stdout { codec => rubydebug } elasticsearch { embedded => true } }
Tiếp sau đó người phát động logstash và tận dụng file config này để thông số kỹ thuật cho logstash
sudo -u logstash /opt/logstash/bin/logstash -f example.config
Phát động lại elasticsearch
sudo /etc/init.d/elasticsearch restart
Tiếp sau đó người vào địa chỉ localhost:5601 và rất có thể thấy những log đã được hiển thị lên. Bạn cũng có thể tìm kiếm những log, hoặc tạo biểu đồ cho log. Như vậy việc setup và tận dụng bộ phương tiện Logstash, Elashticsearch, Kibana đã hoàn thành.
Bạn cũng có thể xem thêm thêm một số trong những hướng dẫn tận dụng Kibana cụ thể cho việc tìm kiếm, tạo biểu đồ, tạo report tại những link sau:
https://www.elastic.co/guide/en/beats/packetbeat/current/_kibana_query_and_filter.html https://www.digitalocean.com/community/tutorials/how-to-use-kibana-dashboards-and-visualizations