Thứ hai, 21/03/2016 | 00:00 GMT+7

Cách cài đặt Graylog 1.x trên CentOS 7

Trong hướng dẫn này, ta sẽ trình bày cách cài đặt Graylog v1.3.x (đôi khi được gọi là Graylog2) trên CentOS 7 và cấu hình nó để tập hợp các log hệ thống của bạn ở một vị trí tập trung. Graylog là một công cụ phân tích và quản lý log mạnh mẽ có nhiều trường hợp sử dụng, từ theo dõi đăng nhập SSH và hoạt động bất thường đến gỡ lỗi ứng dụng. Nó dựa trên Elasticsearch, Java và MongoDB.

Có thể sử dụng Graylog để thu thập và theo dõi nhiều loại log , nhưng ta sẽ giới hạn phạm vi của hướng dẫn này là thu thập log hệ thống. Ngoài ra, vì ta đang trình bày những điều cơ bản của Graylog, ta sẽ cài đặt tất cả các thành phần trên một server duy nhất.

Giới thiệu về các thành phần Graylog

Graylog có bốn thành phần chính:

  • Các node Server Graylog: Đóng role như một nhân viên nhận và xử lý thông báo, đồng thời giao tiếp với tất cả các thành phần không phải server khác. Hiệu suất của nó phụ thuộc vào CPU
  • Các node Elasticsearch : Lưu trữ tất cả log / tin nhắn. Hiệu suất của nó phụ thuộc vào RAM và đĩa I / O
  • MongoDB : Lưu trữ metadata và không tải nhiều
  • Giao diện Web : Giao diện user

Đây là sơ đồ của các thành phần Graylog ( lưu ý các thông báo được gửi từ các server khác của bạn):

 Cài đặt  Graylog cơ bản

Hướng dẫn này sẽ thực hiện cài đặt Graylog rất cơ bản, với tất cả các thành phần được cài đặt trên cùng một server . Đối với một cài đặt production lớn hơn, bạn nên cài đặt cài đặt các thành phần trên các server riêng biệt vì lý do hiệu suất.

Yêu cầu

Việc cài đặt được mô tả trong hướng dẫn này yêu cầu server CentOS 7 có ít nhất 2GB RAM. Bạn cũng cần quyền truy cập root hoặc superuser (Bước 1-4 của Cài đặt Server Ban đầu với CentOS 7 ).

Nếu bạn sử dụng VPS có RAM dưới 2GB, bạn sẽ không thể khởi động tất cả các thành phần của Graylog.

Hãy bắt đầu cài đặt phần mềm!

Cài đặt MongoDB

Việc cài đặt MongoDB rất đơn giản và nhanh chóng. Chạy lệnh sau để nhập khóa GPG công khai MongoDB vào rpm:

  • sudo rpm --import https://www.mongodb.org/static/pgp/server-3.2.asc

Tạo danh sách nguồn MongoDB:

  • echo '[mongodb-org-3.2]
  • name=MongoDB Repository
  • baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
  • gpgcheck=1
  • enabled=1' | sudo tee /etc/yum.repos.d/mongodb-org-3.2.repo

Cài đặt version MongoDB ổn định mới nhất bằng lệnh này:

  • sudo yum install -y mongodb-org

Bây giờ hãy bắt đầu MongoDB:

  • sudo systemctl restart mongod

MongoDB sẽ được cài đặt và chạy ngay bây giờ. Hãy chuyển sang cài đặt Java.

Cài đặt Java

Elasticsearch và Logstash yêu cầu Java, vì vậy ta sẽ cài đặt nó ngay bây giờ. Ta sẽ cài đặt version gần đây của Oracle Java 8 vì đó là những gì Elasticsearch đề xuất. Tuy nhiên, nó sẽ hoạt động tốt với OpenJDK, nếu bạn quyết định đi theo con đường đó. Làm theo các bước trong phần này nghĩa là bạn chấp nhận Thỏa thuận cấp phép binary của Oracle cho Java SE.

Thay đổi folder chính của bạn và download Oracle Java 8 (Bản cập nhật 73, mới nhất tại thời điểm viết bài này) JDK RPM với các lệnh sau:

  • wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u73-b02/jdk-8u73-linux-x64.rpm"

Sau đó cài đặt RPM bằng lệnh yum này (nếu bạn đã download một bản phát hành khác, hãy thay thế tên file tại đây):

  • sudo yum -y localinstall jdk-8u73-linux-x64.rpm

Bây giờ Java sẽ được cài đặt tại /usr/java/jdk1.8.0_73/jre/bin/java và được liên kết từ /usr/bin/java .

Bạn có thể xóa file lưu trữ mà bạn đã download trước đó:

  • rm ~/jdk-8u*-linux-x64.rpm

Bây giờ Java đã được cài đặt, hãy cài đặt Elasticsearch.

Cài đặt Elasticsearch

Graylog 1.x chỉ hoạt động với các version Elasticsearch trước 2.0, vì vậy ta sẽ cài đặt Elasticsearch 1.7.x. Elasticsearch có thể được cài đặt với trình quản lý gói bằng cách thêm danh sách nguồn gói của Elastic.

Chạy lệnh sau để nhập khóa GPG công khai Elasticsearch vào rpm:

  • sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

Tạo một file repository yum mới cho Elasticsearch bằng cách chạy lệnh sau:

  • echo '[elasticsearch-1.7]
  • name=Elasticsearch repository for 1.7.x packages
  • baseurl=http://packages.elastic.co/elasticsearch/1.7/centos
  • gpgcheck=1
  • gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
  • enabled=1' | sudo tee /etc/yum.repos.d/elasticsearch.repo

Cài đặt Elasticsearch bằng lệnh này:

  • sudo yum -y install elasticsearch

Elasticsearch hiện đã được cài đặt. Hãy chỉnh sửa cấu hình:

  • sudo vi /etc/elasticsearch/elasticsearch.yml

Tìm phần chỉ định cluster.name . Bỏ ghi chú nó và thay thế giá trị mặc định bằng "greylog-development", vì vậy nó trông giống như sau:

asticsearch.yml - 1 trong 2
cluster.name: graylog-development 

Bạn cần hạn chế quyền truy cập từ bên ngoài vào version Elasticsearch của bạn (cổng 9200), vì vậy người ngoài không thể đọc dữ liệu hoặc tắt cụm Elasticsearch của bạn thông qua API HTTP. Tìm dòng chỉ định network.host , bỏ ghi chú và thay thế giá trị của nó bằng “localhost” để nó trông giống như sau:

asticsearch.yml - 2 trên 2
network.host: localhost 

Lưu và thoát elasticsearch.yml .

Bây giờ bắt đầu Elasticsearch:

  • sudo systemctl restart elasticsearch

Sau đó chạy lệnh sau để khởi động Elasticsearch khi khởi động:

  • sudo systemctl enable elasticsearch

Sau một lúc, hãy chạy phần sau để kiểm tra xem Elasticsearch có chạy đúng cách không:

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true' 

Bây giờ Elasticsearch đã được cài đặt và chạy, hãy cài đặt server Graylog.

Cài đặt Server Graylog

Bây giờ ta đã cài đặt phần mềm cần thiết khác, hãy cài đặt thành phần server của Graylog, graylog-server .

Đầu tiên, download gói Graylog RPM vào hệ thống của bạn bằng lệnh sau:

  • sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-1.3-repository-el7_latest.rpm

Sau đó, cài đặt gói graylog-server bằng các lệnh sau:

  • sudo yum -y install graylog-server

Cài đặt pwgen, mà ta sẽ sử dụng để tạo khóa bí mật của password :

  • sudo yum -y install epel-release
  • sudo yum -y install pwgen

Bây giờ ta phải cấu hình password quản trị và khóa bí mật. Khóa bí mật password được cấu hình trong server.conf , bằng tham số password_secret . Ta có thể tạo một khóa ngẫu nhiên và chèn nó vào cấu hình Graylog bằng hai lệnh sau:

  • SECRET=$(pwgen -s 96 1)
  • sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/' /etc/graylog/server/server.conf

Các password quản trị được gán bằng cách tạo ra một shasum của password mong muốn, và gán nó vào root_password_sha2 tham số trong file cấu hình Graylog. Tạo password mong muốn của bạn bằng lệnh sau, thay thế "mật khẩu" được đánh dấu bằng của bạn . Lệnh sed sẽ chèn nó vào cấu hình Graylog cho bạn:

  • PASSWORD=$(echo -n password | sha256sum | awk '{print $1}')
  • sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf

Bây giờ password administrator đã được cài đặt , hãy mở cấu hình Graylog để thực hiện một số thay đổi:

  • sudo vi /etc/graylog/server/server.conf

Bạn sẽ thấy rằng password_secretroot_password_sha2 có các chuỗi ngẫu nhiên cho chúng vì các lệnh bạn đã chạy trong các bước trên.

Bây giờ ta sẽ cấu hình rest_transport_uri , đó là cách giao diện web Graylog sẽ giao tiếp với server . Vì ta đang cài đặt tất cả các thành phần trên một server duy nhất, hãy đặt giá trị thành 127.0.0.1 hoặc localhost . Tìm và bỏ ghi chú rest_transport_uri và thay đổi giá trị của nó để nó trông giống như sau:

/etc/graylog/server/server.conf - 1 trong 4
rest_transport_uri = http://127.0.0.1:12900/ 

Tiếp theo, vì ta chỉ có một phân đoạn Elasticsearch (đang chạy trên server này), ta sẽ thay đổi giá trị elasticsearch_shards thành 1:

/etc/graylog/server/server.conf - 2/4
elasticsearch_shards = 1 

Tiếp theo, thay đổi giá trị của elasticsearch_cluster_name để “graylog-phát triển” (giống như Elasticsearch cluster.name ):

/etc/graylog/server/server.conf - 3/4
elasticsearch_cluster_name = graylog-development 

Bỏ ghi chú hai dòng này để khám phá cá thể Elasticsearch bằng cách sử dụng unicast thay vì multicast:

/etc/graylog/server/server.conf - 4/4
elasticsearch_discovery_zen_ping_multicast_enabled = false elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300 

Lưu và thoát. Bây giờ graylog-server được cấu hình và sẵn sàng khởi động.

Khởi động server Graylog bằng lệnh dịch vụ:

  • sudo systemctl start graylog-server

Bước tiếp theo là cài đặt giao diện web Graylog. Hãy làm điều đó ngay bây giờ!

Cài đặt Graylog Web

Cài đặt Graylog Web bằng lệnh này:

sudo yum -y install graylog-web 

Tiếp theo, ta muốn cấu hình khóa bí mật của giao diện web, tham số application.secret trong web.conf . Ta sẽ tạo một khóa khác, như ta đã làm với cấu hình server Graylog và chèn nó bằng sed, như sau:

  • SECRET=$(pwgen -s 96 1)
  • sudo -E sed -i -e 's/application\.secret=""/application\.secret="'$SECRET'"/' /etc/graylog/web/web.conf

Bây giờ hãy mở file cấu hình giao diện web bằng lệnh sau:

  • sudo vi /etc/graylog/web/web.conf

Bây giờ ta cần cập nhật cấu hình của giao diện web để chỉ định tham số graylog2-server.uris . Đây là danh sách được phân tách bằng dấu phẩy của các URI REST của server . Vì ta chỉ có một nút server Graylog, nên giá trị phải trùng với giá trị của rest_listen_uri trong cấu hình server Graylog (tức là “ http://127.0.0.1:12900/” ).

/etc/graylog/web/web.conf đoạn trích
graylog2-server.uris="http://127.0.0.1:12900/" 

Giao diện web Graylog hiện đã được cấu hình . Khởi động giao diện web Graylog:

  • sudo systemctl restart graylog-web

Bây giờ ta có thể sử dụng giao diện web Graylog. Hãy làm điều đó ngay bây giờ.

Cấu hình Graylog để nhận thông báo log hệ thống

Đăng nhập vào Giao diện Web Graylog

Trong trình duyệt web yêu thích của bạn, hãy truy cập cổng 9000 của địa chỉ IP công cộng của server của bạn:

In a web browser:
http://graylog_public_IP:9000/

Bạn sẽ thấy một màn hình đăng nhập. Nhập admin làm tên user của bạn và password administrator mà bạn đã đặt trước đó.

Sau khi đăng nhập, bạn sẽ thấy như sau:

 Control panel  Graylog

Số màu đỏ ở trên cùng là thông báo. Nếu bạn nhấp vào nó, bạn sẽ thấy một thông báo cho biết bạn có một nút mà không có bất kỳ đầu vào đang chạy nào. Hãy thêm đầu vào để nhận thông báo log hệ thống qua UDP ngay bây giờ.

Tạo đầu vào UDP Syslog

Để thêm đầu vào để nhận thông báo log hệ thống, hãy nhấp vào menu thả xuống Hệ thống ở menu trên cùng.

Bây giờ, từ menu thả xuống, hãy chọn Đầu vào .

Chọn Syslog UDP từ menu thả xuống và nhấp vào nút Chạy đầu vào mới .

Cửa sổ phương thức “ Chạy đầu vào mới: Syslog UDP ” sẽ bật lên. Nhập thông tin sau (thay thế bằng địa chỉ IP riêng của server của bạn cho địa chỉ liên kết):

  • Tiêu đề: syslog
  • Cổng : 8514
  • Địa chỉ ràng buộc: graylog_private_IP

Sau đó nhấp vào Chạy .

Đến đây bạn sẽ thấy một đầu vào có tên “nhật ký hệ thống” trong phần Đầu vào cục bộ (và nó sẽ có một hộp màu xanh lục cho biết “đang chạy” bên cạnh), như sau:

Đầu vào log  hệ thống Graylog

Bây giờ server Graylog của ta đã sẵn sàng nhận thông báo log hệ thống trên cổng 8514 từ server của bạn. Hãy cấu hình server của bạn để gửi thông báo log hệ thống của chúng tới Graylog ngay bây giờ.

Cấu hình Rsyslog để Gửi Syslog tới Server Graylog

Trên tất cả các server khách hàng của bạn, các server mà bạn muốn gửi thông báo log hệ thống tới Graylog, hãy thực hiện các bước sau.

Tạo file cấu hình log rsyslog trong /etc/rsyslog.d. Ta sẽ gọi 90-graylog.conf ta :

  • sudo vi /etc/rsyslog.d/90-graylog.conf

Trong file này, hãy thêm các dòng sau để cấu hình rsyslog để gửi thông báo log hệ thống đến server Graylog của bạn (thay thế graylog_private_IP bằng địa chỉ IP riêng của server Graylog của bạn):

/etc/rsyslog.d/90-graylog.conf
$template GRAYLOGRFC5424,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n" *.* @graylog_private_IP:8514;GRAYLOGRFC5424 

Lưu và thoát. Tệp này sẽ được tải như một phần của cấu hình log rsyslog của bạn kể từ bây giờ. Đến đây bạn cần khởi động lại rsyslog để thay đổi có hiệu lực.

  • sudo systemctl restart rsyslog

Sau khi bạn hoàn tất việc cấu hình rsyslog trên tất cả các server mà bạn muốn theo dõi, hãy quay lại giao diện web Graylog.

Xem các nguồn Graylog của bạn

Trong trình duyệt web yêu thích của bạn, hãy truy cập cổng 9000 của địa chỉ IP công cộng của server của bạn:

In a web browser:
http://graylog_public_IP:9000/

Nhấp vào Nguồn ở thanh trên cùng. Bạn sẽ thấy danh sách tất cả các server mà bạn đã cấu hình rsyslog trên đó.

Tên server của các nguồn nằm ở bên trái, với số lượng tin nhắn mà Graylog nhận được ở bên phải.

Tìm kiếm dữ liệu Graylog của bạn

Sau khi để Graylog thu thập thư một thời gian, bạn có thể tìm kiếm trong các thư. Ví dụ: hãy tìm kiếm “sshd” để xem loại hoạt động SSH nào đang diễn ra trên server của ta . Đây là một đoạn kết quả của ta :

Tìm kiếm ví dụ về Graylog

Như bạn thấy , kết quả tìm kiếm mẫu của ta đã tiết lộ log sshd cho các server khác nhau và rất nhiều lần đăng nhập root không thành công. Kết quả của bạn có thể khác nhau, nhưng nó có thể giúp bạn xác định nhiều vấn đề, bao gồm cả cách user lạ đang cố gắng truy cập vào server của bạn.

Ngoài chức năng tìm kiếm cơ bản trên tất cả các nguồn của bạn, bạn có thể tìm kiếm log của một server lưu trữ cụ thể hoặc trong một khung thời gian cụ thể.

Tìm kiếm thông qua dữ liệu trong Graylog rất hữu ích, chẳng hạn, nếu bạn muốn xem lại log của một server hoặc một số server sau khi sự cố xảy ra. Ghi log tập trung giúp dễ dàng xác định các sự cố liên quan hơn vì bạn không cần phải đăng nhập vào nhiều server để xem tất cả các sự kiện đã xảy ra.

Để biết thêm thông tin về cách thanh tìm kiếm hoạt động, hãy xem tài liệu chính thức: Tìm kiếm Graylog

Kết luận

Đến đây bạn đã cài đặt xong Graylog, hãy thoải mái khám phá các chức năng khác mà nó cung cấp. Bạn có thể gửi các loại log khác vào Graylog và cài đặt trình extract (hoặc định dạng lại log bằng phần mềm như logstash) để làm cho log có cấu trúc hơn và có thể tìm kiếm được. Bạn cũng có thể xem xét việc mở rộng môi trường Graylog của bạn bằng cách tách các thành phần và thêm dự phòng để tăng hiệu suất và tính khả dụng.

Chúc may mắn!


Tags:

Các tin liên quan

Cách cài đặt Puppet 4 trong Thiết lập Master-Agent trên CentOS 7
2016-03-08
Cách thiết lập Jenkins để tích hợp phát triển liên tục trên CentOS 7
2016-03-03
Cách thiết lập hệ thống bàn trợ giúp với OTRS trên CentOS 7
2016-03-02
Cách cài đặt ứng dụng khách Dropbox làm dịch vụ trên CentOS 7
2016-02-25
Cách thiết lập một cụm sản xuất Elasticsearch trên CentOS 7
2016-02-23
Cách bảo vệ SSH bằng Fail2Ban trên CentOS 7
2016-01-27
Cách bảo mật HAProxy bằng Let's Encrypt trên CentOS 7
2016-01-26
Cách tạo thiết lập tính khả dụng cao với Pacemaker, Corosync và IP nổi trên CentOS 7
2015-12-22
Cách sử dụng Prometheus để giám sát server CentOS 7 của bạn
2015-11-06
Cách cài đặt Elasticsearch 1.7, Logstash 1.5 và Kibana 4.1 (ELK Stack) trên CentOS 7
2015-11-04