Hướng dẫn cài đặt Graylog trên Ubuntu 22.04 chi tiết nhất
Hướng dẫn chi tiết cách cài đặt Graylog trên Ubuntu 22.04, cùng với cấu hình và tối ưu Graylog để quản lý, phân tích log hiệu quả trên hệ thống của bạn.
Graylog là một nền tảng mạnh mẽ cho phép quản lý log tập trung dễ dàng. Graylog nhận dữ liệu từ các máy khách được cài đặt trên các máy chủ khác nhau. Có giao diện web, trực quan hóa dữ liệu và cho phép làm việc với các bản ghi được tổng hợp bởi máy chủ chính. Trong bài này, mình sẽ hướng dẫn cho bạn cách cấu hình cài đặt Graylog 5.2 trên Ubuntu 22.04 chi tiết, đảm bảo bạn sẽ thực hiện thành công.
1. Yêu cầu và thiết lập môi trường
- Yêu cầu về hệ thống
- HĐH : Ubuntu 22.04
- RAM : Tối thiểu 4GB RAM cho môi trường LAB và 8GB RAM cho môi trường thực tế
- CPU : Tối thiểu 2 CPU cho môi trường LAB và 4 CPU cho môi trường thực tế
- DISK : Tối thiểu 10GB
- Yêu cầu phần mềm
- Java: Graylog yêu cầu Java 8 hoặc Java 11. Hãy đảm bảo cài đặt OpenJDK hoặc Oracle JDK. OpenJDK 17 (Cái này được nhúng trong Graylog và không cần cài đặt riêng.)
- Elasticsearch: Graylog sử dụng Elasticsearch để lập chỉ mục và tìm kiếm dữ liệu log. Elasticsearch 7.x là phiên bản được khuyến nghị.
- MongoDB: Graylog sử dụng MongoDB để lưu trữ cấu hình và metadata. MongoDB 5.x hoặc 6.x.
- Yêu cầu firewall
- Cổng 9000: Để truy cập vào giao diện web của Graylog.
- Cổng 9200 và 9300: Để Elasticsearch hoạt động.
- Cổng 27017: Để MongoDB hoạt động.
2. Cài đặt các gói phụ trợ cần thiết
Đầu tiên ta cần cập nhật các gói để tránh xung đột khi cài đặt.
sudo apt update |
Tiếp theo cài đặt các gói phụ thưộc cần thiết trong quá trình cài đặt máy chủ gray log.
sudo apt install curl wget apt-transport-https |
Trước khi cài đặt Graylog chúng ta cần cài đặt Java. Chúng ta sẽ cài đặt OpenJDK một triển khai Java mã nguồn mở và miễn phí hiện đang được Oracle duy trì. Gray log 5.2 yêu cầu ít nhất OpenJDK 17.
Để cài đặt OpenJDK 17, hãy chạy lệnh:
sudo apt install openjdk-17-jre-headless -y |
Sau khi cài đặt, bạn có thể xác nhận phiên bản Java đã cài đặt.
root@Quang-Graylog:~# java -version openjdk version "17.0.10" 2024-01-16 OpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-122.04.1) OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-122.04.1, mixed mode, sharing) |
>>> Xem thêm: Cài đặt và cấu hình mạng bridge trong KVM trên Ubuntu 22.04
3. Cài đặt ElasticSearch
Trong Graylog, Elaticsearch lưu trữ, tìm kiếm và phân tích nhật ký cũng như tin nhắn từ các nguồn bên ngoài.
Elaticsearch không được lưu trữ trên kho chính thức của Ubuntu. Do đó, chúng tôi sẽ cài đặt nó từ kho lưu trữ Elaticsearch. Để làm như vậy, trước tiên, hãy tải xuống và thêm Khóa GPG của Elaticsearch.
root@Quang-Graylog:~# curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). OK |
thêm kho lưu trữ Elaticsearch vào hệ thống
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list |
Cập nhật lại kho lưu trữ mới thêm vào
apt update |
Bây giờ ta có thể cài đặt Elaticsearch bằng apt rồi.
apt install elasticsearch -y |
Sau khi cài đặt hoàn tất bạn cần chỉnh sửa lại file cấu hình chính.
vi /etc/elasticsearch/elasticsearch.yml |
Thêm vào nội dung sau:
cluster.name: graylog action.auto_create_index: false |
Để lưu những that đổi ta cần tải lại systemd.
systemctl daemon-reload systemctl start elasticsearch systemctl enable elasticsearch |
Kiểm tra lại trạng thái elasticsearch
systemctl status elasticsearch |
Bạn có thể sử dụng lệnh "curl" gửi yêu cầu GET để xem thông tin chi tiết về Elaticsearch.
curl -X GET http://localhost:9200 |
4. Cài đặt MongoDB trong Graylog trên Ubuntu
Trong máy chủ Graylog, cơ sở dữ liệu MongoDB lưu trữ thông tin cấu hình và dữ liệu người dùng. Phiên bản mới nhất của Graylog yêu cầu bản phát hành MongoDB 5.x và 6.x. Đối với hướng dẫn này, chúng tôi sẽ cài đặt MongoDB 6.0 từ kho lưu trữ MongoDB.
thêm khóa ký GPG MongoDB.
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \ sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-server-6.0.gpg |
thêm kho lưu trữ MongoDB vào sources.list.thư mục trên hệ thống.
echo "deb [ arch=amd64,arm64 signed=/etc/apt/trusted.gpg.d/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list |
Cập nhật lại kho lưu trữ
apt update |
Cài đặt máy chủ cơ sở dữ liệu MongoDB.
apt install mongodb-org -y |
Mặc đình thì khi cài đặt xong thì MongoDB sẽ tạo ra 1 user và group mới tên mongodb.
Để xác minh phiên bản đã cài đặt, hãy chạy lệnh.
mongod --version |
Ta tiến hành bật mongodb-org.
systemctl start mongod systemctl enable mongod systemctl status mongod |
5. Cài đặt máy chủ Graylog trên Ubuntu 22.04
Theo mặc định, gói máy chủ Graylog không có sẵn trên kho Ubuntu. Do đó, chúng tôi sẽ cài đặt Graylog từ kho Graylog chính thức.
tải xuống gói Graylog Debian
wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb |
chạy lệnh dpkg để chạy gói
dpkg -i graylog-5.2-repository_latest.deb |
Update lại apt
apt-get update |
Cài đặt lại Gray log Server
apt install graylog-server -y |
Khi bạn đã cài đặt máy chủ Graylog, bạn cần tạo một bí mật để bảo mật mật khẩu người dùng và mật khẩu được mã hóa cho người dùng quản trị viên.Để tạo mật khẩu bí mật để bảo mật mật khẩu người dùng, hãy chạy lệnh sau:
< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo; |
Tiếp theo, tạo mật khẩu được mã hóa cho người dùng đăng nhập quản trị viên Graylog
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1 |
Sao chép và dán hai mật khẩu được mã hóa vào đâu đó và mở tệp cấu hình Graylog.
vi /etc/graylog/server/server.conf |
Thêm vào nội dung sau
password_secret = hTRdp0JxNLeuxKXFeTjNYzOMpM-6zdBPalK4eKbsEhxSlxkIFgTcUBzPmhj21Hc89OmyW1NqitmROHXtgqJqwGte4t7PBwi0 root_password_sha2 = bfe4814665ab5c23359f7114d289110e7c725a1528fa2cd68c601a0a5d6c05108 |
Đổi timezone cho graylog sang Việt Nam
root_timezone = Asia/Ho_Chi_Minh |
chỉ định địa chỉ IP mà giao diện Graylog HTTP sẽ lắng nghe bằng tệp http_bind_address và http_publish_uri
http_bind_address = 0.0.0.0:9000 http_publish_uri = http://172.16.66.55:9000/ |
Dưới đây là toàn bộ nội dung của file cấu hình của tôi
root@Quang-Graylog:~# grep -vE '^#|^$' /etc/graylog/server/server.conf is_leader = true node_id_file = /etc/graylog/server/node-id password_secret = 99lR1Edkx9dPFwhMoFjhMgKvqvDHhLgEcQduarwjLnmXp1xnftlcJJPpQJlYbfU9y5Zi76JTU183eYELRnTBC0yr9RiQzPDq root_username = admin root_password_sha2 = b8fd054ea0d56f5662463a37f53bfe2cf530500df267b7efcde984eb59b2415e root_timezone = Asia/Ho_Chi_Minh bin_dir = /usr/share/graylog-server/bin data_dir = /var/lib/graylog-server plugin_dir = /usr/share/graylog-server/plugin http_bind_address = 0.0.0.0:9000 http_publish_uri = http://172.16.66.55:9000/ stream_aware_field_types=false disabled_retention_strategies = none allow_leading_wildcard_searches = false allow_highlighting = false field_value_suggestion_mode = on output_batch_size = 500 output_flush_interval = 1 output_fault_count_threshold = 5 output_fault_penalty_seconds = 30 processbuffer_processors = 5 outputbuffer_processors = 3 processor_wait_strategy = blocking ring_size = 65536 inputbuffer_ring_size = 65536 inputbuffer_processors = 2 inputbuffer_wait_strategy = blocking message_journal_enabled = false lb_recognition_period_seconds = 3 mongodb_uri = mongodb://localhost/graylog mongodb_max_connections = 1000 |
Lưu lại cấu hình và load lại dịch vụ
systemctl daemon-reload systemctl start graylog-server systemctl enable graylog-server systemctl status graylog-server |
>>> Xem thêm: Passbolt là gì? Hướng dẫn cài đặt Passbolt trên Ubuntu 22.04
6. Nginx và seft certificates
Tải xuống nginx
apt install nginx |
Tạo key để ký chứng chỉ cho domain
openssl genrsa -out CA.key 2048 openssl req -x509 -sha256 -new -nodes -days 3650 -key CA.key -out CA.pem openssl genrsa -out localhost.key 2048 openssl req -new -key localhost.key -out localhost.csr |
Tạo ra 1 file chứa thông tin mở rộng của chứng chỉ. Để khi ký chứng chỉ phải tuân theo điều kiện trong file. Lưu ý đúng IP và tên miền máy của bạn
vi localhost.ext |
authorityKeyIdentifier = keyid,issuer basicConstraints = CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = graylog.thanhquang.local IP.1 = 172.16.66.55 |
Bắt đầu ký chứng chỉ
openssl x509 -req -in localhost.csr -CA CA.pem -CAkey CA.key -CAcreateserial -days 365 -sha256 -extfile localhost.ext -out localhost.crt |
Tạo ra thư mục lưu trữ các chứng chỉ để nginx sử dung
mkdir /etc/nginx/ssl-certificate mv localhost.crt localhost.key /etc/nginx/ssl-certificate |
Tạo file cấu hình nginx cho gray log
vi /etc/nginx/sites-available/graylog.conf |
server { listen 80; listen [::]:80; server_name 172.16.66.55; return 301 https://$host$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name 172.16.66.55; # root /var/www/html; index index.html index.htm index.nginx-debian.html; # SSL Configuration ssl_certificate /etc/nginx/ssl-certificate/localhost.crt; ssl_certificate_key /etc/nginx/ssl-certificate/localhost.key; # Logs Locations access_log /var/log/nginx/graylog_access.log; error_log /var/log/nginx/graylog_error.log; location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Graylog-Server-URL https://$server_name/; proxy_pass http://127.0.0.1:9000; } } |
Tạo symlink để file cấu hình mới sửa có thể được áp dụng
ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/ |
Khởi động dịch vụ nginx
systemctl start nginx systemctl restart nginx systemctl enable nginx |
Bây giờ ta đã có thể tiến hành truy cập vào graylog thông qua trình duyệt https://graylog.thanhquang.local .Lưu ý rằng bạn cần phải khai báo lại file host của window đang dùng nhé vì chúng ta đang dùng tên miền local mà.
Tài khoản mặc định của graylog là admin với password là lúc bạn thiết lập quản trị viên Graylog (hãy gõ password chưa mã hóa nhé).
Lưu ý rằng nếu lần đầu mà bạn đăng nhập thì có thể gặp tình trạng graylog yêu cầu mật khẩu đăng nhập lần đầu tiên chứ không phải mật khẩu admin mà bạn đã thiết lập từ trước
Password này ta có thể tìm thấy ở file /var/log/graylog-server/server.log
```
head -n 50 /var/log/graylog-server/server.log
```
Như vậy là SunCloud đã hướng dẫn bạn cài đặt và cấu hình thành công Graylog 5.2 trên Ubuntu 22.04. Mọi thứ đều là chi tiết nhất chúc các bạn thành công!