NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
11/06/2023
Lượt xem

Hướng dẫn cài đặt Graylog 1.x trên CentOS 7

11/06/2023
16 phút đọc
Lượt xem

Đánh giá

5/5 - (141 bình chọn)

Graylog là một công cụ quản lý và phân tích log được dựa trên Elasticsearch, Java và MongoDB cho phép lưu trữ và tìm kiếm log với tốc độ và khả năng mở rộng cao. Mỗi component đóng vai trò quan trọng để đảm bảo việc thu thập và lưu trữ log hiệu quả và tiện lợi. Bài viết sẽ hướng dẫn cài đặt Graylog 1.x trên CentOS 7 chi tiết nhất.

Giới thiệu về Graylog 1.x trên CentOS 7

Trong bài hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Graylog v1.3.x (thường được gọi là Graylog2) trên CentOS 7 và cấu hình để thu thập các syslog của hệ thống.

Giới thiệu về Graylog 1.x trên CentOS 7
Giới thiệu về Graylog 1.x trên CentOS 7

Graylog có 4 thành phần chính đó là:

  1. Graylog Server nodes: Tiếp nhận và xử lí messages, giao tiếp với các thành phần non-server khác. Hiệu suất của thành phần này sẽ phụ thuộc vào CPU.
  2. Elasticsearch nodes: Lưu trữ tất cả logs/messages. Hiệu suất sẽ phụ thuộc vào RAM và đĩa I/O.
  3. MongoDB: Lưu trữ metadata và không nên để quá tải.
  4. Web Interface: giao diện người dùng.

Dưới đây sẽ là sơ đồ của các Graylog component (lưu ý rằng các message được gửi từ server khác):

Sơ đồ của các Graylog component
Sơ đồ của các Graylog component

Ở bài viết này sẽ hướng dẫn cài đặt cơ bản Graylog, với tất cả các component được cài đặt trên cùng một server. Đối với các cài đặt nâng cao, thì bạn nên thiết lập các component trên các server riêng biệt để đảm bảo hiệu suất.

Yêu cầu để cài đặt Graylog 1.x trên CentOS 7

Để thực hiện bài hướng dẫn này bạn cần đáp ứng những yêu cầu sau:

  • Cần có ít nhất 2GB RAM ở CentOS 7 server của bạn.
  • Đồng thời cần truy cập với tài khoản root hoặc super user.
  • Nếu bạn còn ít hơn 2GB RAM, bạn sẽ không thể sử dụng được tất cả các thành phần.

Cài đặt MongoDB

Việc cài đặt MongoDB rất đơn giản và nhanh chóng. Bạn hãy thực thi lệnh sau để đưa public GPG key từ MongoDB vào rpm:

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

Sau đó hãy tạo danh sách MongoDB source:

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

Tiếp theo, bạn sẽ dùng lệnh dưới đây để cài đặt phiên bản mới nhất của MongoDB:

sudo yum install -y mongodb-org

Bây giờ bạn hãy khởi động MongoDB:

sudo systemctl restart mongod

Sau khi hoàn tất cài đặt MongoDB, tiếp theo bạn sẽ cài đặt Java.

Cài đặt Java

Do cả Elasticsearch và Logstash đều cần Java, nên bạn sẽ cần cài đặt ngay. Elasticsearch khuyến khích bạn nên cài đặt Oracle Java 8 ở phiên bản mới nhất. Tuy nhiên bạn cũng có thể cài đặt OpenJDK vì Java cũng tương thích với phiên bản này. Khi bạn thực hiện theo các bước trong bài hướng dẫn này, thì bạn đã chấp thuận Oracle Binary License Agreement cho JavaSE.

Đi đến thư mục home của bạn và tải RPM JDK Java 8 của Oracle (bản Update 73 là phiên bản mới nhất ở thời điểm của viết bài này) bằng lệnh này:

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 đó, sử dụng yum để cài đặt RPM (nếu bạn đã tải xuống một phiên bản khác, hãy thay thế bản đó vào tên tệp ở đây):

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

Bây giờ, Java đã được cài đặt ở /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 đã cài đặt trước đó:

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

Tiếp theo, bạn sẽ cài đặt Elasticsearch.

Cài đặt Elasticsearch

Graylog 1.x chỉ hoạt động với các phiên bản Elasticsearch 2.0 trở xuống, do đó chúng ta sẽ cài đặt Elasticsearch 1.7.x. Elasticsearch được cài đặt bằng trình quản lý gói bằng cách thêm danh sách source package của Elastic.

Bạn hãy thực thi lệnh sau để import public GPG key từ  Elasticsearch vào rpm:

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

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

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

Sau đó, sử dụng lệnh dưới đây để cài đặt Elasticsearch:

sudo yum -y install elasticsearch

Hiện tại, Elasticsearch đã được cài đặt, tiếp theo hãy chỉnh sửa cấu hình như sau:

sudo vi /etc/elasticsearch/elasticsearch.yml

Tìm đến phần hiển thị cluster.name. Sau đó bạn hãy bỏ comment và thay thế bằng giá trị mặc định “graylog-development” như sau:

cluster.name: graylog-development

Nếu bạn muốn hạn chế truy cập từ bên ngoài vào Elasticsearch của mình (port 9200), để người khác không thể đọc dữ liệu của bạn hoặc tắt Elasticsearch cluster thông qua API HTTP. Hãy tìm dòng chứa network.host, bỏ comment và thay giá trị bằng “localhost” như sau:

network.host: localhost

Sau đó hãy lưu và thoát tệp elasticsearch.yml.

Bây giờ bạn hãy khởi động Elasticsearch:

sudo systemctl restart elasticsearch

Thực thi lệnh sau để Elasticsearch khởi động đồng thời với hệ thống:

sudo systemctl enable elasticsearch

Bạn có thể chạy lệnh sau để kiểm tra Elasticsearch có đang hoạt động hay không:

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

Bây giờ Elaticsearch đã hoạt động, hãy cài đặt Graylog Server.

Cài đặt Graylog Server

Ở bước này, bạn sẽ thực hiện cài đặt server component của Graylog Server, graylog-server.

Đầu tiên, tải gói Graylog RPM bằng lệnh sau:

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

Sau đó, thực thi lệnh dưới đây để cài đặt gói graylog-server:

sudo yum -y install graylog-server

Tiếp theo bạn hãy tải pwgen để tạo các password secret keys:

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

Bây giờ, bạn cần cài đặt mật khẩu admin và secret key. Password secret keys được cấu hình thông qua tham số password_secret trong file server.conf. Sau đó, bạn có thể tạo một key ngẫu nhiên và chèn nó vào cấu hình của 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

Mật khẩu admin được chỉ định bằng cách tạo một shasum từ mật khẩu mà bạn muốn đặt, sau đó gán cho root_password_sha2 trong file cấu hình Graylog. Bạn sẽ dùng lệnh dưới đây để tạo shasum, và hãy nhớ thay cụm “password” bằng mật khẩu của bạn. Lệnh sed sẽ chèn giá trị shasum vào file cấu hình Graylog:

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

Hiện tại, mật khẩu admin đã được thiết lập. Tiếp theo, bạn mở file cấu hình Graylog để thực hiện một số thay đổi:

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

Lúc này, hai giá trị của password_secret và root_password_sha2 sẽ là một chuỗi ngẫu nhiên do bạn đã thực thi các lệnh ở trên.

Sau đó, bạn sẽ cấu hình rest_transport_uri, để Graylog web interface (giao diện web Graylog) có thể giao tiếp với server. Tìm và uncomment dòng rest_transport_uri, và thay đổi giá trị thành 127.0.0.1 hoặc localhost vì các component đều cài đặt trên một server:

rest_transport_uri = http://127.0.0.1:12900/

Tiếp theo, đổi giá trị của elasticsearch_shards thành 1, vì bạn chỉ có một Elasticsearch shard đang chạy trên server:

elasticsearch_shards = 1

Kế đó, đổi giá trị của elasticsearch_cluster_name thành “graylog-development” ( giống với Elasticsearch cluster.name):

elasticsearch_cluster_name = graylog-development

Tiến hành uncomment hai dòng sau để tìm kiếm các trường hợp Elasticsearch bằng cách sử dụng unicast thay vì multicast:

elasticsearch_discovery_zen_ping_multicast_enabled = false elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300

Sau khi hoàn tất, hãy lưu và thoát tệp. graylog-server hiện đã được cấu hình đầy đủ và sẵn sàng để sử dụng.

Chạy dòng lệnh sau để khởi động Graylog server:

sudo systemctl start graylog-server

Sang bước tiếp theo, bạn sẽ cài đặt Graylog web interface.

Cài đặt Graylog Web

Sử dụng lệnh sau để cài đặt Graylog Web:

sudo yum -y install graylog-web

Tiếp theo, bạn sẽ cấu hình secret key của web interface (giao diện web), là tham số application.secret trong file web.conf. Bạn sẽ tạo một secret key khác, như những gì đã làm với cấu hình Graylog server, sau đó dùng sed để chèn vào, như sau:

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

Bạn hãy mở file cấu hình web interface bằng lệnh dưới đây:

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

Bây giờ, bạn cần cập nhật cấu hình web interface để chỉ định tham số graylog2-server.uris. Đây là danh sách chứa REST URI của server và được cách nhau bởi dấu phẩy. Vì bạn chỉ có một Graylog server node, do đó giá trị của tham số này phải khớp với giá trị của rest_listen_uri trong cấu hình Graylog server (ví dụ: “http://127.0.0.1:12900/”).

graylog2-server.uris="http://127.0.0.1:12900/"

Sau đó, bạn sẽ khởi động web interface của Graylog như sau:

sudo systemctl restart graylog-web

Đến đây, bạn đã hoàn tất việc cài đặt và cấu hình Graylog Web. Hãy cùng sang phần tiếp theo để tìm hiểu về cách sử dụng của Graylog Web Interface.

Cấu hình Graylog để nhận các syslog messages

Đăng nhập vào Graylog Web Interface

Bạn hãy truy cập vào port 9000 của địa chỉ public IP ở server bằng trình duyệt web của mình:

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

Màn hình đăng nhập sẽ được hiển thị. Nhập admin vào cả hai trường username và password để có thể đăng nhập vào trang web.

Sau khi đăng nhập thành công, bạn sẽ nhìn thấy giao diện như sau:

Giao diện Graylog
Giao diện Graylog

Chữ số màu trắng nền đỏ ở trên cùng là một thông báo. Nếu click vào số này, bạn sẽ được thông báo rằng bạn có một node mà không có bất kỳ running input (đầu vào đang hoạt động) nào. Vì vậy hãy thêm một input để nhận syslog messages thông qua UDP.

Tạo Syslog UDP Input

Bạn hãy click vào drop-down của System ở phía trên cùng ngay cạnh chữ số ban nãy để thêm input cho việc nhận các syslog messages .

Sau đó, từ bảng menu drop-down này, hãy chọn Inputs.

Tiếp tục chọn Syslog UDP từ menu drop-down kế tiếp và click chuột vào nút Launch new input.

Một màn hình giao diện “Launch a new input: Syslog UDP ” được hiển thị. Nhập vào các thông tin sau (ở mục bind address bạn sẽ điền địa chỉ private IP ở server của bạn):

  • Titlesyslog
  • Port8514
  • Bind addressgraylog_private_IP

Sau đó click vào Launch.

Lúc này bạn sẽ thấy một input có tên là “syslog” trong phần Local inputs (và kèm theo là chữ “running” được đặt trong nền xanh lá ngay bên cạnh), như sau:

Tạo Syslog UDP Input
Tạo Syslog UDP Input

Bây giờ, Graylog serve đã có thể nhận các syslog messages ở port 8514 từ servers của bạn. Sau đây, bạn sẽ cấu hình các server để gửi syslog messages đến Graylog.

Cấu hình Rsyslog để gửi Syslogs đến Graylog Server

Hãy thực hiện các bước sau đây trên tất cả các client servers mà bạn muốn gửi syslog messages đến Graylog.

Tạo file cấu hình rsyslog trong /etc/rsyslog.d. Bạn có thể đặt tên là 90-graylog.conf:

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

Tại file này, thêm các dòng lệnh sau để cấu hình rsylog gửi các syslog messages đến Graylog server(thay đổi graylog_private_IP thành địa chỉ private IP của Graylog server):

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

Sau đó lưu và thoát file. Từ bây giờ, file này sẽ được tải vào cấu hình rsyslog. Bạn cần khởi động lại rsyslog để áp dụng các thay đổi vừa rồi của mình.

sudo systemctl restart rsyslog

Sau khi bạn hoàn tất cấu hình rsylog trên tất cả server mà bạn muốn theo dõi, bạn hãy quay lại web interface của Graylog.

Xem các nguồn trong Graylog

Bạn hãy truy cập vào port 9000 của địa chỉ public IP ở server bằng trình duyệt web của mình:

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

Click vào mục Sources ở thanh trên cùng. Bạn sẽ thấy danh sách các server mà bạn đã cấu hình rsyslog.

Hostname của các sources (nguồn ) sẽ được hiển thị ở bên trái, còn ở bên phải sẽ là số lượng của messages được nhận bởi Graylog.

Tìm kiếm Graylog Data

Sau khi Graylog nhận các message, bạn có thể tìm kiếm thông qua các message. Ví dụ, khi tìm kiếm “sshd” để xem các hoạt động của SSH đang diễn ra trên server. Dưới đây là kết quả của ví dụ được đề cập như sau:

Tìm kiếm Graylog Data
Tìm kiếm Graylog Data

Từ kết quả trên, bạn có thể thấy các sshd log được hiển thị cho các server khác nhau và các lần đăng nhập root không thành công. Ở kết quả trên thiết bị của bạn có thể hiển thị khác, tuy nhiên việc này có thể giúp bạn trong rất nhiều tình huống, bao gồm cách mà người dùng không xác định cố gắng truy cập trái phép vào server của bạn.

Ngoài chức năng tìm kết trên tất cả các source, bạn cũng có thể tìm kiếm các log của một host cụ thể hoặc ở một khung giờ cụ thể

Việc tìm kiếm data trong Graylog rất hữu ích, chẳng hạn như sau khi sự cố nào đó xảy ra, bạn có thể xem log của một hoặc một số server để kiểm tra. Bạn cũng không cần phải đăng nhập vào nhiều server để xem tất cả các events đã diễn ra vì các thông tin từ log ở các server đều được gửi về một vị trí tập trung để dễ quản lý và phân tích.

Bên cạnh đó, nếu bạn đang có nhu cầu sử dụng VPS để phát triển ứng dụng, website,… có thể liên hệ với Vietnix để được tư vấn gói VPS tốc độ cao phù hợp. Hiện tại Vietnix đang cung cấp các gói VPS tốc độ cao, đa dạng cấu hình, tính năng hiện đại, bảo mật cao gồm: VPS NVMe, VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS GPU với nhiều mức giá khác nhau.

Vietnix với hơn 10 năm hoạt động đã đồng hành với hơn 50.000 khách hàng cá nhân và doanh nghiệp. Đến năm 2022 Vietnix vinh dự được nhận giải Thương hiệu Việt Nam xuất sắc. Đồng thời, với tỷ lệ 97% khách hàng sau khi sử dụng dịch vụ tại Vietnix đã giới thiệu đến bạn bè, đồng nghiệp cũng là một minh chứng cho chất lượng dịch vụ luôn đáp ứng được mọi nhu cầu của khách hàng.

Đăng ký VPS Vietnix ngay và trải nghiệm dịch vụ ổn định, tốc độ cao, hỗ trợ nhanh chóng với nhiều ưu đãi hấp dẫn nhất.

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn

Lời kết

Đến đây, bạn đã cài đặt thành công Graylog, hãy tìm hiểu các chức năng khác mà Graylog cung cấp. Bạn có thể gửi các loại log khác đến Graylog và thiết lập các trích xuất (extractor) (hoặc định dạng lại log với các phần mềm khác như logstash) để các log trở nên có cấu trúc và dễ dàng tìm kiếm hơn. Chia sẻ bài viết đến mọi người để cùng nhau trau dồi thêm kiến thức nhé. Chúc bạn thành công.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG