linux graylog server - It costs 3 mins to read

Bài này mình chỉ ghi nhận lại những bước mình đã làm, các câu lệnh đã dùng cùng những tùy chỉnh trong quá trình cài đặt thử nghiệm Graylog 1.0.x (Nâng cấp từ Graylog2). Mình sẽ dành thời gian chỉn chu bài viết hơn cũng như đánh giá hiệu quả, chia sẻ kinh nghiệm về sử dụng Graylog để quản lý, phân tích Log cho các ứng dụng Web sau thời gian thử nghiệm Graylog thực tế.

Graylog là một trong những Open Source Log Management được nhiều người biết đến (Bên cạnh LogStash của Elastic Co và các SaaS như Loggly, Papertrail). Bạn có thể sử dụng Graylog để xây dựng một hệ thống quản lý Log tập trung: Log của ứng dụng Web, Log của Web Server, Log của SSH, Log của Hệ thống (Syslog)…

Môi trường

Tìm tất cả các tập tin có tên nginx.conf bắt đầu từ thư mục root

find / -name nginx.conf

Stop Rails Application đang chạy (Nginx and Phusion Passenger)

Remove các dòng liên quan đến App XYZ trong File cấu hình nginx.conf, restart service nginx (Phusion Passenger sẽ tự stop app đó, không cần cấu hình gì thêm).

Stop Postgresql

/etc/init.d/postgresql-9.4 stop

Stop Redis

/etc/init.d/redis_6379 stop

Clear Cronjob

crontab -e

Cập nhật lại Logrotate

vi /etc/logrotate.conf

Cài đặt Errbit (Ứng dụng quản lý các Exception)

git clone https://github.com/errbit/errbit.git
bundle install
RAILS_ENV=production bundle exec rake errbit:bootstrap
vi .env.default
vi config/initializers/action_mailer.rb

Cài đặt Elasticsearch

Graylog sử dụng ElasticSearch để thực hiện Full-Text-Search

Tham khảo đường dẫn - https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-4-on-centos-7

curl localhost:9200/_nodes/process?pretty

Cài đặt MongoDB

Tham khảo đường dẫn - http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/

Khởi động dịch vụ MongoDB

service mongod start
chkconfig mongod on

Cài đặt Graylog

Graylog có cung cấp Image đã cài đặt và cấu hình sẵn Graylog-Server cũng như Graylog-Web-Interface dành cho các distribution như Ubuntu, CentOS và Docker… nhưng việc restore Image lên VPS của Linode là thuộc phạm vi của một bài viết khác, với lại, mình thấy cài đặt thủ công sẽ thú vị hơn, chủ động hơn… do đó, mình chọn cách làm này.

Cài đặt Graylog-Server

Làm theo hướng dẫn tại http://docs.graylog.org/en/latest/pages/installation.html#manual-setup-graylog-server-on-linux

Khởi động Graylog-Server

./graylogctl start

Đọc Log của Graylog để Debug khi gặp lỗi

tail -f /opt/graylog-1.0.2/log
Cài đặt Graylog-Web-Interface

Làm theo hướng dẫn tại http://docs.graylog.org/en/latest/pages/installation.html#manual-setup-graylog-web-interface-on-linux

Khởi động Graylog-Web-Interface

nohup /opt/graylog-web-interface-1.0.2/bin/graylog-web-interface &

Cấu hình Graylog và ElasticSearch

Cấu hình Graylog và ElasticSearch, tham khảo tại http://docs.graylog.org/en/latest/pages/configuring_es.html

Increase File Open Limit của CentOS 6.6 theo khuyến nghị của GrayLog - Tham khảo tại http://pro.benjaminste.in/post/318453669/increase-the-number-of-file-descriptors-on-centos

Kiểm tra Health Status của ElasticSearch Cluster:

curl -XGET 'http://localhost:9200/_cluster/health/twitter?level=shards'

Nếu là Red thì Graylog-Server sẽ không thể Start được, còn cách để chuyển Health Status từ Red về Yellow hay Green thì mình sẽ tìm hiểu thêm.

Cấu hình Firewall

Hệ thống của mình sử dụng Iptables nên mình sẽ mở các cổng 12201, 12301, 12302 (UDP) để các ứng dụng có thể gửi Log về Server, Mở cổng 9000 (TCP) để mình có thể truy cập vào Graylog bằng Web Interface.

Lưu và phục hồi lại cấu hình Iptables:

iptables-save > /etc/sysconfig/iptables
iptables-restore < /etc/sysconfig/iptables
service iptables restart

Thành Quả


Có thể thay thế Graylog + Mongodb + Elasticsearch bằng Logstash + Elasticsearch + Kibana 4 + Logstash Forwarder

Tìm hiểu về Log Data Mining - Log Analysis - Dù có sử dụng Log Management thì nếu không lưu ý cách khai thác các dữ liệu đã log một cách hiệu quả thì cũng như thật lãng phí, tốn tài nguyên của hệ thống.

Cập nhật tình hình là mình phải gỡ Graylog-Server ra vì nó ngốn quá nhiều tài nguyên của Hệ thống quá. Process Graylog-Server hay bị ngắt giữa chừng. Log ghi nhận nhiều nhưng mình chưa biết cách khai thác nên chưa thấy được sự hữu ích.

Cập nhật thêm - Tháng 6/2016 - về sau mình có cài thêm ELK Stack (ElasticSearch - Logstash - Kibana) cho ứng dụng của mình và cảm nhận có phần chủ quan là mình thích ELK hơn so với Graylog.